Amazon cloudformation Fn::GetAtt的无服务器CloudFormation模板错误实例引用了未定义的资源
我正试图建立一个新的回购协议,但我一直收到错误Amazon cloudformation Fn::GetAtt的无服务器CloudFormation模板错误实例引用了未定义的资源,amazon-cloudformation,serverless-framework,Amazon Cloudformation,Serverless Framework,我正试图建立一个新的回购协议,但我一直收到错误 The CloudFormation template is invalid: Template error: instance of Fn::GetAtt references undefined resource uatLambdaRole 然而,在我的uat阶段中,具有完全相同格式的开发阶段工作得很好 我为每个环境都有一个资源文件 发展 uat 在myserverless.yml中,我的角色定义为 role: ${self:custom.
The CloudFormation template is invalid: Template error: instance of Fn::GetAtt
references undefined resource uatLambdaRole
然而,在我的uat阶段中,具有完全相同格式的开发阶段工作得很好
我为每个环境都有一个资源文件
发展
uat
在myserverless.yml
中,我的角色定义为
role: ${self:custom.stage}LambdaRole
舞台设置为
custom:
stage: ${opt:stage, self:provider.stage}
运行serverless deploy--stage dev--verbose
成功,但运行serverless deploy--stage uat--verbose
失败并出现错误。有人能看出我做错了什么吗?uat资源直接从dev one复制,只更改了阶段名称
这是资源文件所在目录的屏幕截图
我没有在这里复制配置的关键部分,即对资源文件的实际引用
resources:
Resources: ${file(./serverless-resources/${self:provider.stage}-resources.yml)}
问题是,我从指南中复制了这一点,并使用了
self:provider.stage
而不是self:custom.stage
。当我改变这一点时,它就可以部署了 以相同的错误消息结束。我的问题是,我在serverless.yml
中得到了“resource”和“resource”键
正确:
资源:#
custom:
stage: ${opt:stage, self:provider.stage}
resources:
Resources: ${file(./serverless-resources/${self:provider.stage}-resources.yml)}