我有一个用例,我想在使用云形成的测试环境中创建资源。我正在尝试使用条件来实现这一点,但它失败了。
Resources:
TestClientRole:
Type: AWS::IAM::Role
Condition: NotProdStage
Properties:
AssumeRolePolicyDocument:
Statement:
- Action: <>
Effect: Allow
<>
Version: '2012-10-17'
RoleName:
"some-test-role"
它在非prod阶段工作正常,但在模板的Resources块中“未解析的资源依赖[TestClientRole]”失败“
如何使云形成忽略了生产阶段的资源?
答案 0 :(得分:2)
错误消息表明您的CloudFormation模板中的其他地方存在TestClientRole
的依赖关系。
问题是,在Prod环境中创建 ,而另一个资源则表示它依赖于正在创建的角色。
解决方案:删除模板中引用TestClientRole
的其他位置的相关性。
事实上,实际上需要依赖项非常罕见,因为CloudFormation根据资源之间的引用计算出正确的构建顺序。您需要依赖的唯一时间是您特别希望在另一个启动之前完成构建,例如让应用服务器等到数据库服务器准备就绪。通常情况下,除非您有特别需要,否则请将它们排除在外。