我有一个模板,允许用户定义S3 Bucket . 在同一模板中,我可以选择添加Lambda触发器,SQS触发器和SNS触发器 .
为了使用可选触发器成功创建S3 Bucket,我需要为所选触发器创建策略 .
我面临的问题是,有时它会起作用,有时它不会因竞争条件而产生 . 如果在策略之前创建了Bucket,则堆栈创建将失败 .
我试图在S3 Bucket资源上添加条件DependsOn属性,但DependsOn只接受字符串 .
这就是我的DependsOn属性的样子:
"S3Bucket": {
"Type": "AWS::S3::Bucket",
"DependsOn": [{
"Fn::If": ["DoCreateQueueTrigger",
"SQSMessagePermission",
""]
}],
}
我唯一能想到的是在模板到达Bucket创建之前暂停模板执行 .
有办法吗?
1 回答
您可以通过声明两个具有相同名称的互惠条件资源来完成此任务:一个声明可选触发器,另一个'null resource'在实际未创建实际资源时接受
DependsOn
声明: