在创建 lambda 之前 Terraform 执行脚本

Fed*_*Opp 10 aws-lambda terraform

我有一个 terraform 配置,可以在 aws 上正确创建一个 lambda 函数,并提供一个 zip 文件。

我的问题是我总是必须先打包 lambda(为此我使用无服务器打包方法),所以我想执行一个脚本来打包我的函数并将 zip 移动到正确的目录,然后 terraform 创建 lambda 函数。

那可能吗?也许使用 null_resource 和 local-exec 的组合?

DJA*_*Pee 11

您已经提出了最佳答案:)

当您将 a 添加depends_on = ["null_resource.serverless_execution"]到您的 lambda 资源时,您可以确保在上传 zip 文件之前完成打包。

例子:

resource "null_resource" "serverless_execution" {
  provisioner "local-exec" {
    command = "serverless package ..."
  }
}

resource "aws_lambda_function" "update_lambda" {
  depends_on = ["null_resource.serverless_execution"]
  filename   = "${path.module}/path/to/package.zip"
  [...]
}
Run Code Online (Sandbox Code Playgroud)

https://www.terraform.io/docs/provisioners/local-exec.html