问题描述
我的 CloudFormation 模板中有两个条件,用于根据环境选择要部署的资源。但是,稍后在模板中引用资源时,CloudFormation 会引发“未解决的资源依赖项”错误。知道出了什么问题吗?
为了便于阅读,缩短了模板。它在没有条件的情况下工作正常。
Parameters:
EnvironmentName:
Type: String
Conditions:
IsProduction: !Equals [!Ref EnvironmentName,production]
IsNotProduction: !Not [!Equals [!Ref EnvironmentName,production]]
Resources:
Lambda:
Type: AWS::Serverless::Function
Condition: IsNotProduction
Lambda:
Type: AWS::Serverless::Function
Condition: IsProduction
LogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: !Sub /aws/lambda/${Lambda}
解决方法
因此,由于模板被缩短了,因此很难判断导致此错误的原因。
不过,有一个问题是,您的两个 Lambda 都被称为 "Lambda"
。那是行不通的,您需要在资源部分以不同的方式调用它们。