0

我在 us-east-2 中有一个 lambda 支持的自定义资源。当我在 us-east-2 中运行 cloudformation 模板时,它工作得很好。当我去 us-east-1 并尝试相同的 cloudformation 模板时,我收到一个错误:

Function not found: arn:aws:lambda:us-east-1:account-id:function:func_name (Service: AWSLambda; Status Code: 404; Error Code: ResourceNotFoundException;

两个 VPC 之间存在 VPC 对等互连,但这似乎没有任何区别。而当我尝试在不同区域的同一个账户中部署相同的功能时,我得到一个错误,我需要找到一个解决方案。

4

3 回答 3

0

看起来现在可以使用新的 AWS 堆栈集。

堆栈集允许您使用单个 AWS CloudFormation 模板在跨区域的 AWS 账户中创建堆栈。每个堆栈中包含的所有资源均由堆栈集的 AWS CloudFormation 模板定义

参考: https ://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html

于 2020-01-03T06:46:10.203 回答
0

我认为一个区域中的 CloudFormation 模板不可能引用另一个区域中的 Lambda 自定义资源。

您需要在希望将其用作自定义资源的任何区域中复制该功能。

于 2020-01-03T00:14:39.187 回答
0

我认为您不能这样做,但唯一的方法是在多个区域复制完全相同的资源(通过 cfn)。我相信最好的选择是使用云形成以通用方式配置所有资源,以便您可以在需要时将其简单地部署到多个区域。

我所说的泛型的意思是,不要对任何与 aws 环境相关的细节或系统级变量进行硬编码,而是在尝试创建堆栈时通过 cli 命令将这些变量的值传递到模板中。

于 2020-01-03T06:20:54.107 回答