我想基于环境变量的存在有条件地添加AWS资源。我尝试了serverless-cloudformation-parameter-setter
,但在部署过程中遇到了一般性错误,我看不出该如何解决
我正在尝试部署一个简单的lambda + SQS堆栈,并且如果定义了一个env var,也请将该队列订阅由env var表示的主题-否则,如果未定义var则根本不做那部分,只是lambda和队列
这是我尝试过的:
plugins:
- serverless-cloudformation-parameter-setter
provider:
name: aws
runtime: nodejs8.10
region: eu-west-1
functions:
update:
handler: index.update
events:
- sqs:
arn:
Fn::GetAtt:
- Queue
- Arn
custom:
cf-parameters:
SourceTopicArn: "${env:UPDATE_SNS_ARN}"
resources:
Parameters:
SourceTopicArn:
Type: string
Resources:
Queue:
Type: "AWS::SQS::Queue"
Subscription:
Type: "AWS::SNS::Subscription"
Condition: SourceTopicArn
Properties:
TopicArn:
Ref: SourceTopicArn
Endpoint:
Ref: Queue
我收到的错误是:The CloudFormation template is invalid: Template format error: Unrecognized parameter type: string
如果我删除所有参数,它将正常工作