serverless: functionAddress.startsWith is not a function when destinations is used
Bug Report
Description
When destinations property defined in serverless.yml it fails to deploy.
What did you do?
Add destination to my serverless.yml
What happened?
sls deploy failed with error TypeError: functionAddress.startsWith is not a function
What should’ve happened?
Lambda function is deployed.
What’s the content of your serverless.yml file?
service:
name: my-lambda
plugins:
- serverless-webpack
provider:
name: aws
runtime: nodejs12.x
functions:
my-function:
handler: handler.sqsHannlder
events:
- sqs:
batchSize: 1
arn:
Fn::GetAtt:
- TriggerQueue
- Arn
destinations:
onFailure:
Fn::GetAtt:
- DeadLetterQueue
- Arn
resources:
Resources:
TriggerQueue:
Type: "AWS::SQS::Queue"
DeadLetterQueue:
Type: "AWS::SQS::Queue"
What’s the output you get when you use the SLS_DEBUG=* environment variable (e.g. SLS_DEBUG=* serverless deploy)
Serverless: Load command interactiveCli
Serverless: Load command config
Serverless: Load command config:credentials
Serverless: Load command config:tabcompletion
Serverless: Load command config:tabcompletion:install
Serverless: Load command config:tabcompletion:uninstall
Serverless: Load command create
Serverless: Load command install
Serverless: Load command package
Serverless: Load command deploy
Serverless: Load command deploy:function
Serverless: Load command deploy:list
Serverless: Load command deploy:list:functions
Serverless: Load command invoke
Serverless: Load command invoke:local
Serverless: Load command info
Serverless: Load command logs
Serverless: Load command metrics
Serverless: Load command print
Serverless: Load command remove
Serverless: Load command rollback
Serverless: Load command rollback:function
Serverless: Load command slstats
Serverless: Load command plugin
Serverless: Load command plugin
Serverless: Load command plugin:install
Serverless: Load command plugin
Serverless: Load command plugin:uninstall
Serverless: Load command plugin
Serverless: Load command plugin:list
Serverless: Load command plugin
Serverless: Load command plugin:search
Serverless: Load command config
Serverless: Load command config:credentials
Serverless: Load command rollback
Serverless: Load command rollback:function
Serverless: Load command upgrade
Serverless: Load command uninstall
Serverless: Load command webpack
Serverless: Load command login
Serverless: Load command logout
Serverless: Load command generate-event
Serverless: Load command test
Serverless: Load command dashboard
Serverless: Load command output
Serverless: Load command output:get
Serverless: Load command output:list
Serverless: Load command param
Serverless: Load command param:get
Serverless: Load command param:list
Serverless: Load command studio
Serverless: Load command dev
Serverless: Invoke deploy
Serverless: Invoke package
Serverless: Invoke aws:common:validate
Serverless: Invoke aws:common:cleanupTempDir
Serverless: Invoke webpack:validate
Serverless: Invoke webpack:compile
Serverless: Bundling with Webpack...
Time: 7155ms
Built at: 04/26/2020 5:20:44 PM
Asset Size Chunks Chunk Names
handler.js 4.51 MiB 0 [emitted] handler
handler.js.map 1.54 MiB 0 [emitted] [dev] handler
Entrypoint handler = handler.js handler.js.map
[0] ./node_modules/aws-sdk/lib/core.js 2.43 KiB {0} [built]
[1] ./node_modules/aws-sdk/lib/node_loader.js 3.81 KiB {0} [built]
[2] ./node_modules/aws-sdk/lib/util.js 31.6 KiB {0} [built]
[4] ./node_modules/aws-sdk/clients/sts.js 573 bytes {0} [built]
[6] external "fs" 42 bytes {0} [built]
[8] ./node_modules/aws-sdk/lib/model/shape.js 11.6 KiB {0} [built]
[9] ./node_modules/aws-sdk/lib/protocol/rest.js 4.45 KiB {0} [built]
[10] external "stream" 42 bytes {0} [built]
[23] ./node_modules/aws-sdk/lib/protocol/json.js 2.17 KiB {0} [built]
[24] ./node_modules/aws-sdk/lib/json/builder.js 1.51 KiB {0} [built]
[66] ./node_modules/aws-sdk/lib/aws.js 159 bytes {0} [built]
[67] ./handler.ts 4.93 KiB {0} [built]
[149] ./node_modules/aws-sdk/clients/all.js 8.76 KiB {0} [built]
[893] ./node_modules/source-map-support/register.js 25 bytes {0} [built]
[894] ./node_modules/source-map-support/source-map-support.js 19.3 KiB {0} [built]
+ 890 hidden modules
Serverless: Invoke webpack:package
Serverless: Packaging service...
Type Error ---------------------------------------------
TypeError: functionAddress.startsWith is not a function
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/aws/package/compile/functions/index.js:604:28
at AwsCompileFunctions.ensureTargetExecutionPermission (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/aws/package/compile/functions/index.js:611:7)
at AwsCompileFunctions.memoized [as ensureTargetExecutionPermission] (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/node_modules/lodash/lodash.js:10552:27)
at AwsCompileFunctions.compileFunctionDestinations (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/aws/package/compile/functions/index.js:587:12)
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/aws/package/compile/functions/index.js:555:56
at ReadStream.<anonymous> (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/aws/package/compile/functions/index.js:465:15)
at ReadStream.emit (events.js:210:5)
at ReadStream.EventEmitter.emit (domain.js:475:20)
at internal/fs/streams.js:218:14
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/node_modules/graceful-fs/graceful-fs.js:57:14
at FSReqCallback.oncomplete (fs.js:146:23)
From previous event:
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/aws/package/compile/functions/index.js:555:40
From previous event:
at AwsCompileFunctions.compileFunction (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/aws/package/compile/functions/index.js:121:25)
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/aws/package/compile/functions/index.js:635:62
From previous event:
at AwsCompileFunctions.compileFunctions (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/aws/package/compile/functions/index.js:635:22)
From previous event:
at Object.package:compileFunctions [as hook] (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/aws/package/compile/functions/index.js:32:12)
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/classes/PluginManager.js:490:55
From previous event:
at PluginManager.invoke (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/classes/PluginManager.js:490:22)
at PluginManager.spawn (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/classes/PluginManager.js:510:17)
at Deploy.<anonymous> (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/deploy/deploy.js:115:50)
From previous event:
at Object.before:deploy:deploy [as hook] (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/plugins/deploy/deploy.js:100:30)
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/classes/PluginManager.js:490:55
From previous event:
at PluginManager.invoke (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/classes/PluginManager.js:490:22)
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/classes/PluginManager.js:525:24
From previous event:
at PluginManager.run (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/classes/PluginManager.js:525:8)
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/Serverless.js:133:33
at processImmediate (internal/timers.js:439:21)
at process.topLevelDomainCallback (domain.js:130:23)
From previous event:
at Serverless.run (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/lib/Serverless.js:120:74)
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/bin/serverless.js:82:30
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/node_modules/graceful-fs/graceful-fs.js:136:16
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/node_modules/graceful-fs/graceful-fs.js:57:14
at FSReqCallback.oncomplete (fs.js:146:23)
From previous event:
at /Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/bin/serverless.js:82:8
at processImmediate (internal/timers.js:439:21)
at process.topLevelDomainCallback (domain.js:130:23)
From previous event:
at Object.<anonymous> (/Users/ivan.strahovsky/.nvm/versions/node/v12.14.0/lib/node_modules/serverless/bin/serverless.js:71:4)
at Module._compile (internal/modules/cjs/loader.js:959:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
at Module.load (internal/modules/cjs/loader.js:815:32)
at Function.Module._load (internal/modules/cjs/loader.js:727:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10)
at internal/main/run_main_module.js:17:11
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Issues: forum.serverless.com
Your Environment Information ---------------------------
Operating System: darwin
Node Version: 12.14.0
Framework Version: 1.66.0
Plugin Version: 3.6.8
SDK Version: 2.3.0
Components Version: 2.30.1
If I remove destinations property it works fine. Tried on version 1.68.0 fails with same error.
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 2
- Comments: 17 (11 by maintainers)
Commits related to this issue
- ☠ Zoopla: add DLQ for failures when capturing upstream content. Serverless currently doesn't support referencing CF resources for destinations.onFailure (see serverless/serverless#7627). The workaro... — committed to theipster/property-data by theipster 4 years ago
- ☠ Zoopla: add DLQ for failures when capturing upstream content. (#28) Serverless currently doesn't support referencing CF resources for destinations.onFailure (see serverless/serverless#7627). Th... — committed to theipster/property-data by theipster 4 years ago
@Ivan-Strahovsky thanks for report. The issue is in error reporting (which will be fixed once we have https://github.com/serverless/serverless/issues/6562 addressed, with corresponding schema provided).
Currently there’s no support for CloudFormation instructions in destinations configuration. It either has to be ARN input literally (or referenced via Serverless variables), or name of a function also deployed with same stack which we want to point
@ceoworks no, as no one really requested this feature. If you feel it’s valuable, please open feature request (as I stated in linked comment)