【发布时间】:2021-04-08 15:16:13
【问题描述】:
我正在使用 Terraform 自动部署 Lambda 函数。目标是能够部署单个 Lambda 函数或存储库中的所有函数。我可以从如下结构部署多个功能:
├── README.md
├── js
│ ├── README.md
│ ├── jsFunction1/
│ │ └── main.tf
│ └── jsFunction2/
│ └── main.tf
├── py
│ ├── README.md
│ ├── pyFunction1/
│ │ └── main.tf
│ └── pyFunction2/
│ └── main.tf
└── terraform
├── README.md
├── common/
├── global/
├── main.tf
├── modules/
├── prod/
└── stage/
目标是能够独立部署js/jsFunction1(无需为任何其他功能构建包),同时让terraform/main.tf 能够部署存储库中的所有 lambda 函数(在构建之后)。这样开发人员就可以通过对单个函数的更改来更新阶段部署,而不必担心他们可能拥有开发人员未处理的函数的不正确版本。
我希望为每个 Lambda 函数创建一个后端,以便开发人员可以在源文件夹中使用 terraform apply。我看不到如何导入从 terraform/ 模块部署的 Lambda 函数的状态。您能告诉我导入资源的状态是一种合理的方法还是推荐一种更好的方法来实现部署众多 Lambda 函数之一的能力?
这是来自js/jsFunction1的main.tf
module "jsFunction1" {
source = "../../terraform/modules/lambda"
source_path = "${path.module}/dist"
lambda_function_name = "jsFunction1"
lambda_handler = "lambdaAdapter.handler"
}
js 和py 下的每个文件夹中都有一个类似的main.tf。这是terraform 文件夹中的main.tf
module "jsFunction1" {
source = "./../js/jsFunction1"
}
module "jsFunction2" {
source = "./../js/jsFunction2"
}
module "pyFunction1" {
source = "./../py/pyFunction1"
}
module "pyFunction2" {
source = "./../py/pyFunction2"
}
【问题讨论】:
标签: aws-lambda terraform