0

我有几个服务被拆分,其中一些服务是 lambda + api 网关,我决定使用 AWS 提供的无服务器应用程序模型 (SAM) 工具,这样我就可以在本地处理这些服务时使用本地 start-api服务。

但是,我的主要基础设施不是用 SAM 编写的,而是用 Terraform 编写的。我知道,如果我直接在 SAM 或 Cloudformation 中编写,我的基础架构将构建为一个堆栈,这将允许我在服务的 SAM 模板中引用资源,以便我可以利用我希望使用的资源属性来构建这些服务。SAM 模板中有没有办法检索资源参数(已经存在),例如子网 ID、vpc_names 等?

我目前的解决方案是使用 CLI 检索我希望的属性并将它们作为变量传递到 SAM 模板中,有没有更优雅的解决方案?

4

1 回答 1

0

我不这么认为。鉴于您坚持使用这种技术组合,这可能是最佳选择。您当然可以切换到统一的技术堆栈,即 Terraform 或 CloudFormation。顺便说一句,我处于同样的情况,我的方法正是你所描述的。我已经协商了一个用 Terraform 编写的 API,每当我需要使用基础设施资源时,我都会从 Json 输出中解析出名称,并通过命令行参数将它们转发到 CDK 或 CloudFormation。

于 2020-06-07T15:54:25.010 回答