我正试图通过CloudFormation实现以下目标。
由于使用Cloudfront,我希望从欧盟地区创建的堆栈中,针对US-EAST-1
中的Route53创建(并验证(公共证书。目标是在控制台或AWS CLI中执行零操作。
CloudFormation对ACM的新支持上周有点粗略,但现在似乎正在发挥作用。
Certifcate
Resources:
Certificate:
Type: AWS::CertificateManager::Certificate
Properties:
DomainName: !Sub "${Env}.domain.cloud"
ValidationMethod: DNS
DomainValidationOptions:
-
DomainName: !Sub "${Env}.domain.cloud"
HostedZoneId: !Ref HostedZoneId
我所需要做的就是使用Cloudformation将其从不同区域的堆栈部署到US-EAST-1
区域。其他一切都准备好了。
我认为使用Codepipeline的跨区域支持会很好,所以我开始研究[本文档][1]。在我的模板中设置好东西后,我遇到了以下错误消息。。。An error occurred while validating the artifact bucket {...} The bucket named is not located in the `us-east-1` AWS region.
对我来说,这毫无意义,因为你似乎已经需要至少几个资源来存在于目标区域,让它发挥作用。本末倒置的行为。为了测试这一点,我在目标区域手动创建了一个工件桶,一切都很顺利,但当我的目标是基于CloudFormation的解决方案时,需要使用CLI或控制台。
注意:我没有时间写这个了,所以我会在几个小时后更新它。在我能做到这一点之前,任何帮助都将是伟大的,尽管
遗憾的是,这是跨区域CodePipeline所必需的。来自文档:
创建或编辑管道时,必须在管道区域中有一个工件存储桶,然后必须在计划执行操作的每个区域中有一个工件存储桶。
如果您想通过CloudFormation完全自动化这一点,您必须使用自定义资源提前在所有区域中创建bucket,或者查看堆栈集在多个区域中部署一个模板bucket。
p.s.
你的链接不起作用,所以我不确定你是否引用了同一个文档页面。