我有一个 Terraform 数据源:
data "external" src {
program = ["bash", "my_script.sh"]
}
在
my_script.sh
中,我断言环境变量SOME_ENV
已设置,如果是这样,脚本会执行一些逻辑:
#!/bin/bash
if [ -z $SOME_ENV ]; then
echo "Env SOME_ENV is missed"
exit 1
fi
# do some work...
否则,我想在
terraform apply
期间强调 env 被错过了。
当前行为: 以下消息将打印到控制台:
...
│ The data source received an unexpected error while attempting to execute the program.
│
│ The program was executed, however it returned no additional error messaging.
│
│ Program: /bin/bash
│ State: exit status 1
申请时是否有任何选项可以传递错误消息?
谢谢
您可以通过将错误消息写入标准错误 (stderr) 流,将错误消息从脚本传递到
Terraform
。在脚本中,您可以使用 ">&2" 重定向运算符将错误消息写入 stderr。例如:>&2 echo "Error: Environment variable SOME_ENV is missing
”
#!/bin/bash
if [ -z $SOME_ENV ]; then
>&2 echo "Error: Environment variable SOME_ENV is missing"
exit 1
fi
provider "azurerm" {
features {}
}
data "external" src {
program = ["bash", "my_script.sh"]
}
Terraform 应用