serverless-nested-stack icon indicating copy to clipboard operation
serverless-nested-stack copied to clipboard

Cannot read property '0' of undefined on sls deploy

Open kevboutin opened this issue 6 years ago • 3 comments

... Serverless: Invoke aws:common:validate Serverless: Invoke aws:common:cleanupTempDir Serverless: Packaging service... Serverless: Excluding development dependencies... Serverless: Invoke aws:package:finalize Serverless: Invoke aws:common:moveArtifactsToPackage Serverless: Invoke aws:common:validate Serverless: Invoke aws:deploy:deploy Serverless: Invoke nestedPlugin:data Serverless: Split stack started......

Type Error ---------------------------------------------

Cannot read property '0' of undefined

 For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

Stack Trace --------------------------------------------

TypeError: Cannot read property '0' of undefined at ServerlessNestedPlugin.addPermissionParameters (/Users/kevinboutin/IdeaProjects/diyz-core-serverless/node_modules/serverless-nested-stack/index.js:229:84) at ServerlessNestedPlugin.splitStack (/Users/kevinboutin/IdeaProjects/diyz-core-serverless/node_modules/serverless-nested-stack/index.js:78:14) From previous event: at PluginManager.invoke (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:372:22) at PluginManager.spawn (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:390:17) at AwsDeploy.BbPromise.bind.then (/usr/local/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:101:48) From previous event: at Object.deploy:deploy [as hook] (/usr/local/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:97:10) at BbPromise.reduce (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:372:55) From previous event: at PluginManager.invoke (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:372:22) at PluginManager.run (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:403:17) at variables.populateService.then (/usr/local/lib/node_modules/serverless/lib/Serverless.js:102:33) at runCallback (timers.js:781:20) at tryOnImmediate (timers.js:743:5) at processImmediate [as _immediateCallback] (timers.js:714:5) From previous event: at Serverless.run (/usr/local/lib/node_modules/serverless/lib/Serverless.js:89:74) at serverless.init.then (/usr/local/lib/node_modules/serverless/bin/serverless:42:50) at

kevboutin avatar Mar 14 '18 18:03 kevboutin

I added this line to /serverless-nested-stack/index.js:229 console.log('Kevin: ', resource.Properties);

It logged the following before exploding:

Kevin:  { FunctionName: { 'Fn::GetAtt': [ 'ScheduledjobLambdaFunction', 'Arn' ] },
  Action: 'lambda:InvokeFunction',
  Principal: 'events.amazonaws.com',
  SourceArn: { 'Fn::GetAtt': [ 'ScheduledjobEventsRuleSchedule1', 'Arn' ] } }
Kevin:  { FunctionName: 'arn:aws:lambda:us-east-1:blahblahredacted:function:blah-serverless-dev-authorize',
  Action: 'lambda:InvokeFunction',
  Principal: 'apigateway.amazonaws.com' }

So looking at the code I realized that you will need to verify that 'Fn::GetAtt' exists first.

kevboutin avatar Mar 14 '18 18:03 kevboutin

Over a year and no response? Does anyone know if there's a workaround?

jkaldon-rebellabs avatar Jul 31 '19 22:07 jkaldon-rebellabs

2 years, no response? This is still a problem

ggdx avatar May 13 '20 17:05 ggdx