Variable when passed through a function returns property of value undefined. I'm passing variable ApiId
or ApiName
. Should the variable name
be wrapped some other way inside the function?
I'm using this answer method and using it inside a function.
function dimensionValue(name) {
console.log("Testing")
return sns.Trigger.Dimensions.find(dimension => dimension.name === name).value
}
If I try to console.log then it works fine.
console.log(sns.Trigger.Dimensions.find(dimension => dimension.name === 'ApiId').value)
Error:
ERROR Invoke Error
{
"errorType": "TypeError",
"errorMessage": "Cannot read property 'value' of undefined",
"stack": [
"TypeError: Cannot read property 'value' of undefined",
" at dimensionValue (/var/task/index.js:20:80)",
" at Runtime.exports.handler (/var/task/index.js:37:36)",
" at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)"
]
}
code:
function dimensionValue(name) {
console.log("Testing")
//var dimensionsValue = sns.Trigger.Dimensions.find(dimension => dimension.name === name).value
return sns.Trigger.Dimensions.find(dimension => dimension.name === name).value
}
if (sns.Trigger.Namespace == "AWS/ApiGateway") {
console.log("Testing2")
if (sns.Trigger.Dimensions.find(dimension => dimension.name === 'ApiId') && sns.Trigger.Dimensions.find(dimension => dimension.name === 'Stage')) {
console.log('ApiId and Stage')
var sns_DimensionsValue = dimensionValue('ApiId') + '_' + dimensionValue('Stage')
} else if (sns_DimensionsValue == sns.Trigger.Dimensions.find(dimension => dimension.name === 'ApiName') && sns.Trigger.Dimensions.find(dimension => dimension.name === 'Stage')) {
console.log('ApiName and Stage')
var sns_DimensionsValue = dimensionValue('ApiName') + '_' + dimensionValue('Stage')
} else if (sns_DimensionsValue == sns.Trigger.Dimensions.find(dimension => dimension.name === 'ApiId')) {
console.log('ApiId')
var sns_DimensionsValue = dimensionValue('ApiId')
} else if (sns_DimensionsValue == sns.Trigger.Dimensions.find(dimension => dimension.name === 'ApiName')) {
console.log('ApiName')
var sns_DimensionsValue = dimensionValue('ApiName')
}
}