Terraform 在创建 lambda 之前执行脚本 [英] Terraform execute script before lambda creation
问题描述
我有一个 terraform 配置,可以在 aws 上正确创建一个 lambda 函数,并提供一个 zip 文件.
I have a terraform configuration that correctly creates a lambda function on aws with a zip file provided.
我的问题是我总是必须先打包 lambda(为此我使用无服务器打包方法),所以我想在 terraform 创建 lambda 之前执行一个脚本来打包我的函数并将 zip 移动到正确的目录功能.
My problem is that I always have to package the lambda first (I use serverless package method for this), so I would like to execute a script that package my function and move the zip to the right directory before terraform creates the lambda function.
这可能吗?也许使用 null_resource 和 local-exec 的组合?
Is that possible? Maybe using a combination of null_resource and local-exec?
推荐答案
你已经提出了最佳答案:)
You already proposed the best answer :)
当您将 depends_on = ["null_resource.serverless_execution"]
添加到您的 lambda 资源时,您可以确保在上传 zip 文件之前完成打包.
When you add a depends_on = ["null_resource.serverless_execution"]
to your lambda resource, you can ensure, that packaging will be done before uploading the zip file.
例子:
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"
[...]
}
https://www.terraform.io/docs/provisioners/local-exec.html
这篇关于Terraform 在创建 lambda 之前执行脚本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!