0

我正在尝试通过 CloudFormation 实现以下目标。

由于使用 Cloudfront,我想从在欧盟地区创建的堆栈中创建(并验证)针对 US-EAST-1 中的 Route53 的公共证书。旨在在控制台或 AWS CLI 中执行零操作。

上周对 ACM 的新 CloudFormation 支持有点粗略,但现在似乎正在发挥作用。

证书

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 的跨区域支持会很棒,所以在我的模板中进行设置后我开始研究 [this documentation][1] 我遇到了以下错误消息... An error occurred while validating the artifact bucket {...} The bucket named is not located in the us-east-1 AWS region.

对我来说,这毫无意义,因为您似乎已经在目标区域中至少需要一些资源才能使其工作。本末倒置的那种行为。为了测试这一点,我在目标区域手动创建了一个工件桶,一切正常,但是当我瞄准基于 CloudFormation 的解决方案时需要使用 CLI 或控制台。

注意:我的时间不多了,所以我会在几个小时内更新它。在我能做到这一点之前,任何帮助都会很棒

4

1 回答 1

1

可悲的是,这是跨区域 CodePipeline 所必需的。来自文档

当您创建或编辑管道时,您必须在管道区域中有一个工件存储桶,然后您计划在其中执行操作的每个区域必须有一个工件存储桶。

如果您想通过 CloudFormation 完全自动化,您要么必须使用自定义资源提前在所有区域中创建存储桶,要么查看堆栈集以在多个区域中部署一个模板存储桶。

ps

您的链接不起作用,因此我不确定您是否引用了相同的文档页面。

于 2020-07-20T21:13:24.687 回答