Я пытаюсь реализовать лямбда-функцию aws с помощью 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 ОС: Win10
working_dir
вместо префиксаcd
. - person Yep_It's_Me   schedule 20.07.2019