我有两个 git 存储库。
存储库 A 包含我的 terraform 基础设施(DynamoDB 表、iam_roles、iam_role_policies、api_gateway_rest_api、aws_api_gateway_method、aws_api_gateway_resources)
存储库 B 是我的 lambda 存储库(lambda 代码、aws_api_gateway_integration 和 aws_lambda_permission 的 terraform 文件)
根据 api_gateway_deployment 的 terraform 文档:
当 REST API 配置涉及其他 Terraform 资源(aws_api_gateway_integration 资源等)时,可以通过触发器参数中的隐式资源引用或使用资源 dependent_on 元参数的显式资源引用来完成依赖项设置。触发器参数应该优先于depends_on,因为depends_on只能捕获依赖顺序,并且不会导致资源随着上游配置更改而重新创建(重新部署REST API)。
当存储库 A 的 aws_api_gateway_deployment 资源需要存储库 B 的基础设施时,如何部署存储库 A,然后部署存储库 B?
它特别需要 aws_api_gateway_integration
有人问了与我类似的问题。 Terraform AWS Lambda CI/CD,函数代码位于单独的存储库中
我不喜欢所提出的任何解决方案。将所有内容保留在 monorepo 中的选项 1 似乎是最简单的解决方案。
我不可能使用无服务器框架。我已经处理够了。