创建Lambda之前Terraform执行脚本
我有一个Terraform配置,可以在提供了zip文件的aws上正确创建lambda函数.
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 :)
在向lambda资源添加 depends_on = ["null_resource.serverless_execution"]
时,可以确保在上载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"
[...]
}