我嘗試使用terraform實現aws lambda函數。如何在data.archive_file之前運行命令zip文件夾在Terraform中?
我只是有null_resource
有本地供應商和resource.archive_file
拉鍊源代碼完成所有準備工作。
resource "null_resource" "deps" {
triggers = {
package_json = "${base64sha256(file("${path.module}/src/package.json"))}"
}
provisioner "local-exec" {
command = "cd ${path.module}/src && npm install"
}
}
resource "archive_file" "function" {
type = "zip"
source_dir = "${path.module}/src"
output_path = "${path.module}/function.zip"
depends_on = [ "null_resource.deps" ]
}
最近發生的變化對terraform棄用resource.archive_file
,所以data.archive_file
應改爲使用。不幸的是,data
在資源之前執行,因此在創建zip之後調用依賴資源的本地調配器。所以下面的代碼不會再發出警告,但是根本不工作。
resource "null_resource" "deps" {
triggers = {
package_json = "${base64sha256(file("${path.module}/src/package.json"))}"
}
provisioner "local-exec" {
command = "cd ${path.module}/src && npm install"
}
}
data "archive_file" "function" {
type = "zip"
source_dir = "${path.module}/src"
output_path = "${path.module}/function.zip"
depends_on = [ "null_resource.deps" ]
}
我錯過了什麼嗎?用最新版本做這件事的正確方法是什麼?
Terraform:v0.7.11 OS:Win10
我認爲你是對的,不可能只使用Terraform。 –