用于管理在一个以上区域中拥有资源的工作负载的AWS CloudFormation最佳实践是什么?
假设我有以下要求:
我需要触发Lambda @ Edge函数的CloudFront发行版。
我的工作负载中还需要其他资源,这些资源位于eu-west-1(这是离我的用户最近的区域)中。
我需要使用CodePipeline来部署资源。
我的第一种方法是创建一个包含所有内容的SAM模板,并制作一个将其部署到eu-west-1的CodePipeline。但是,这将失败,因为Lambda函数需要驻留在us-east-1 due to a CloudFront/Lambda limitation中。因此,我被迫将SAM模板一分为二:一个用于us-east-1中的Lambda函数,另一个用于eu-west-1中的其余函数。这带来了新的挑战,例如:
我无法在SAM / CloudFormation中跨区域引用资源。
我的CodePipeline变得复杂,因为它需要创建/更新两个CloudFormation堆栈。
我不认为StackSet是解决方案,因为它会将相同的堆栈部署到多个区域。 使用AWS API的CloudFormation中的自定义资源可以使用,但无法达到CloudFormation的目的。
您如何管理此类要求?