我有一个存储库,它包含了所有的terraform代码,包括一个aws_apigatewayv2_api资源和其他相关的资源,比如阶段。我想为这个API网关的每个路由设置lambda集成,但我不希望lambda运行时代码与我的基础设施位于同一个存储库中。我希望每个lambda的代码都有自己的存储库和独立的CI/CD管道,这样对lambda的代码更改就不需要terraform来查看应用上的其他基础设施(基本上,每个lambda都有一个单独的terraform状态)。问题是,我不知道如何做到这一点,同时允许每个lambda各自的aws_apigatewayv2_integration资源同时查看它需要的aws_api_gatewayv2和aws_lambda_function。
是我唯一的选择吗?
在每个lambda的terraform中,
terraform_remote_state来查看aws_apigatewayv2_api所在的核心基础设施状态(但是,如果以破坏lambda集成的方式更新核心底层,那么lambda将无法知道,直到它获得与基础结构相同的存储库中的所有lambda代码。一个存储库,一个CI管道。我不喜欢这些选项,因为我要么失去了运行时代码和基础结构的分离,要么失去了lambdas的terraform与核心terraform保持同步的能力。是否有第三种解决方案,理想情况下允许我保持这两种所需的质量?
发布于 2021-11-08 05:37:43
第三种解决方案是使用除了Terraform之外的无服务器框架,我过去使用Terraform来管理Lambda和API网关,这并不需要它。
将infra文件夹用于Terraform和无服务器框架的serverless或app文件夹。
Mono现在越来越受欢迎。
记住:
。
示例:
https://stackoverflow.com/questions/69877655
复制相似问题