-
Notifications
You must be signed in to change notification settings - Fork 69
Description
I just tried to deploy my project with the plugin enabled but it fails with this error message:
Serverless: Packaging service...
Serverless: Preparing alias ...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading CloudFormation alias file to S3...
Serverless: Validating template...
Error --------------------------------------------------
The CloudFormation template is invalid: Template format error: Unresolved resource dependencies [ApiGatewayDeployment1499436937655] in the Resources block of the template
For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
Stack Trace --------------------------------------------
Error: The CloudFormation template is invalid: Template format error: Unresolved resource dependencies [ApiGatewayDeployment1499436937655] in the Resources block of the template
at provider.request.catch (/usr/local/lib/node_modules/serverless/lib/plugins/aws/deploy/lib/validateTemplate.js:25:13)
From previous event:
at AwsDeploy.validateTemplate (/usr/local/lib/node_modules/serverless/lib/plugins/aws/deploy/lib/validateTemplate.js:20:12)
From previous event:
at Object.aws:deploy:deploy:validateTemplate [as hook] (/usr/local/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:102:10)
at BbPromise.reduce (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:233:55)
From previous event:
at PluginManager.invoke (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:233:22)
at PluginManager.spawn (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:245:17)
at AwsDeploy.BbPromise.bind.then (/usr/local/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:88:48)
From previous event:
at Object.deploy:deploy [as hook] (/usr/local/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:84:10)
at BbPromise.reduce (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:233:55)
From previous event:
at PluginManager.invoke (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:233:22)
at PluginManager.run (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:252:17)
at variables.populateService.then (/usr/local/lib/node_modules/serverless/lib/Serverless.js:104:33)
at runCallback (timers.js:800:20)
at tryOnImmediate (timers.js:762:5)
at processImmediate [as _immediateCallback] (timers.js:733:5)
From previous event:
at Serverless.run (/usr/local/lib/node_modules/serverless/lib/Serverless.js:91:74)
at serverless.init.then (/usr/local/lib/node_modules/serverless/bin/serverless:23:50)
at
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Forums: forum.serverless.com
Chat: gitter.im/serverless/serverless
Your Environment Information -----------------------------
OS: darwin
Node Version: 8.1.2
Serverless Version: 1.14.0
Activity
oleschaper commentedon Jul 7, 2017
I don't know which template I could take a look into, I guess it is generated?
If I disable the plugin it works again.
Thank you for your help!
HyperBrain commentedon Jul 8, 2017
Can you give me more information about your service configuration? The alias plugin moves the APIG deployment to a separate stack (the alias stack). Can you check if there is a reference to the APIG deployment in the
cloudformation-template-update-stack.json
(located in S3)?This might be missing support for a specific feature of Serverless you use (e.g. API keys are not yet supported).
Maybe you can post your serverless.yml here, so that I can try to reproduce and fix the issue.
HyperBrain commentedon Jul 8, 2017
Additionally you can use the
--verbose
switch, which will enable more detailed output, also for the alias plugin.oleschaper commentedon Jul 8, 2017
Hi,
your instincts are right, I am using api keys.
I removed them but now I get another error:
Serverless: Stack update finished...
Serverless: Updating alias stack...
Serverless Error ---------------------------------------
[/Resources/UserGetLambdaPermissionApiGateway/DependsOn/0] 'null' values are not allowed in templates
Stack Trace --------------------------------------------
ServerlessError: [/Resources/UserGetLambdaPermissionApiGateway/DependsOn/0] 'null' values are not allowed in templates
at Response.req.send (/usr/local/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:163:20)
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:360:18)
at Request.callListeners (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:678:14)
at Request.transition (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:38:9)
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:680:12)
at Request.callListeners (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:678:14)
at Request.transition (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:38:9)
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:680:12)
at Request.callListeners (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
at callNextListener (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:95:12)
at Request.RESET_RETRY_STATE (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/event_listeners.js:426:9)
at Request.callListeners (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:101:18)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:678:14)
at Request.transition (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:38:9)
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:680:12)
at Request.callListeners (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:678:14)
at Request.transition (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:38:9)
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:680:12)
at Request.callListeners (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:678:14)
at Request.transition (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:38:9)
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:680:12)
at Request.callListeners (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:678:14)
at Request.transition (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:38:9)
at Request. (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/request.js:680:12)
at Request.callListeners (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
at callNextListener (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/sequential_executor.js:95:12)
at IncomingMessage.onEnd (/usr/local/lib/node_modules/serverless/node_modules/aws-sdk/lib/event_listeners.js:256:13)
at emitNone (events.js:110:20)
at IncomingMessage.emit (events.js:207:7)
at endReadableNT (_stream_readable.js:1047:12)
at _combinedTickCallback (internal/process/next_tick.js:102:11)
at process._tickDomainCallback (internal/process/next_tick.js:198:9)
From previous event:
at persistentRequest (/usr/local/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:151:14)
at doCall (/usr/local/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:130:9)
at BbPromise (/usr/local/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:141:14)
From previous event:
at persistentRequest (/usr/local/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:128:38)
at AwsProvider.request (/usr/local/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:144:12)
at AwsAlias.updateAlias (/Users/oleschaper/dev/sviper/projects/superspellsaga/superspellsaga_backend/node_modules/serverless-aws-alias/lib/updateAliasStack.js:82:25)
at runCallback (timers.js:800:20)
at tryOnImmediate (timers.js:762:5)
at processImmediate [as _immediateCallback] (timers.js:733:5)
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Forums: forum.serverless.com
Chat: gitter.im/serverless/serverless
Your Environment Information -----------------------------
OS: darwin
Node Version: 8.1.2
Serverless Version: 1.14.0
I checked the file cloudformation-template-update-alias-stack.json for the resource UserGetLambdaPermissionApiGateway and the DependsOn looks like this (also all the others look like this):
If needed I could send you my serverless.yml per mail.
Thank you!
HyperBrain commentedon Jul 8, 2017
That looks indeed strange. The dependency array should never ever contain null values.
Could you do come tests using my example repo (https://github.com/HyperBrain/serverless-aws-alias-example)?. A plain checkout and deploy of one of the branches should work out of the box.
You could try to configure the API within there step by step to the configuration you're actually using. There must be one step where the issue happens.
If that does not help, I'll have a look at your service definition and try to reproduce it.
oleschaper commentedon Jul 8, 2017
Thank you @HyperBrain
I stripped down my serverless.yml but I can not figure out what is wrong.
cloudformation-resources.json.txt
cloudformation-template-update-alias-stack.json.txt
serverless.yml.txt
HyperBrain commentedon Jul 9, 2017
@oleschaper Thank you for the files 👍 . I'll have a look and try to figure out, what exactly is missing in the plugin and if there's some edge case triggered here.
HyperBrain commentedon Jul 10, 2017
It seems the error is located here:
The permissions object is not created correctly in your case. Additionally to the null dependencies, there is also an issue with the FunctionName property which is set to an empty object here.
Honestly, I did not try the plugin with Java based code, only JavaScript/Node code. Maybe the SLS compile plugin generates something differently for Java packages. I'll try to setup a system where I can reproduce it.
In the mean-time I'll add the help-wanted tag. Maybe someone using Java can comment on the issue.
oleschaper commentedon Jul 10, 2017
Thank you @HyperBrain
HyperBrain commentedon Aug 17, 2017
Sorry that we did not have any feedback here since now 😢 . I'm not sure how many people use Java and the plugin or tried it. Just let's keep it some more time open.
killthrush commentedon Sep 22, 2017
I'm getting the same error on a set of python 3.6 lambdas. I'm also using Gateway w/ keys. I'll try digging into this a bit more and see what I can find.
HyperBrain commentedon Sep 22, 2017
Oh. it's the APIKeys. I did not add support for them yet 🤔 . Maybe I should push that and do an update release soon.
killthrush commentedon Sep 22, 2017
That would be awesome - I'd be happy to test it out for you!
HyperBrain commentedon Sep 23, 2017
I'll come back to you as soon as there is anything to test 😄
14 remaining items