我有一个cloudformation堆栈模板,该模板包含区域资源(lambda,api,主题等)和全局资源(用户,策略,route53,cloudfront,dynamodb全局表等),并希望将其部署到多个区域在同一个AWS帐户中。
我无法在多个区域中直接部署此堆栈模板,因为在首次创建后,全局资源将已经存在。
我知道我可以将所有内容拆分为两个单独的堆栈模板,但我希望避免这种情况,并将所有内容保留在同一单个堆栈模板中。
我发现我可能可以使用CF Conditions +参数来仅在首次创建时切换全局资源创建,但这看起来并不好...
我想知道我是否可以利用某些CloudFormation功能(例如StackSets或其他功能)来实现这一目标。
关于执行此操作的正确方法的任何想法?
答案 0 :(得分:2)
解决方案就在您手中。我建议您执行以下操作:
AWS::SSM::Parameter::Value<String>
或dynamic reference,例如{{resolve:ssm:S3AccessControl:2}}
)您可以使用StackSets
进行区域堆栈部署,也可以创建一个参数化的构建脚本,该脚本一次部署一个区域堆栈(可以在本地执行,或者最好由CI / CD服务器执行)。