lambda module create package = true
說明 terraform lambda module 在 create_package = true 且未指定 source_path 時出現錯誤的原因。
create_package = true 時執行 terraform plan on MSP/modules/glue-job 會遇到以下的 error
╷
│ Error: External Program Execution Failed
│
│ with module.glue_job_alarm.module.notifying-lambda.data.external.archive_prepare[0],
│ on .terraform/modules/glue_job_alarm.notifying-lambda/package.tf line 10, in data "external" "archive_prepare":
│ 10: program = [local.python, "${path.module}/package.py", "prepare"]
│
│ The data source received an unexpected error while attempting to execute the program.
│
│ Program: /opt/homebrew/bin/python3
│ Error Message: **Could not locate source_path "null".** Paths are relative to directory where `terraform plan` is being run ("/Users/repos/modules/alarm/glue-job-test")
│
│ State: exit status 1
╵
create_package = true 代表讓 module 進行 package 的打包,也就是根據使用者寫出來的 code 去安裝 dependencies,但前提是一定要指定 source_path,否則就會遇到上面的錯誤。
引發上述錯誤的情境為 create_package 及 source_path 皆未指定(create_package 預設為 true),但就算有指定 local_existing_package,module 還是會幫我們找 source_path 來進行 source code 打包。
(所以其實 typing 需要的 package 可以用 create_package 來解決)