【发布时间】:2018-08-21 22:57:39
【问题描述】:
我有一个创建 EBS 卷的 CFT。然后我有第二个 CFT 将卷附加到实例。我使用运行 lambda 的自定义资源来查找 EbsVolumeId 和 InstanceId
这 2 个 CFT 是 jenkins 管道的一部分,使用 CFT 创建 EBS 卷的剧本可能会被跳过,因此没有 EbsVolumeId 可供参考。
所以在附加 EBS 卷的 CFT 中,我尝试添加一个 Condition
Resources:
MountPoint:
Type: AWS::EC2::VolumeAttachment
Condition: AttachEBS
Properties:
InstanceId: !GetAtt SCSHelper.InstanceId
VolumeId: !GetAtt SCSHelper.EbsVolumeId
自定义资源的样子
SCSHelper:
Type: Custom::SCSHelper
所以我必须在资源之前定义条件:
Conditions:
AttachEBS: !Not [!Equals http:// !GetAtt SCSHelper.EbsVolumeId , None ]
问题是条件失败:
调用 CreateStack 操作时发生错误(ValidationError):模板格式错误:未解决的依赖项https://forums.aws.amazon.com/。无法在模板的Conditions块中引用资源调用CreateStack操作时发生错误(ValidationError):模板格式错误:未解析的依赖项https://forums.aws.amazon.com/。
因此,SCSHelper.EbsVolumeId 属性似乎不适用于该条件。
有没有办法使这项工作或有更好的方法来有条件地运行附加 EBS 卷的 CFT?
提前谢谢...
【问题讨论】:
标签: amazon-web-services amazon-cloudformation