У меня есть источник данных 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...
В противном случае я хочу подчеркнуть, что 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
Есть ли какие-либо варианты передачи сообщения об ошибке при подаче заявления?
Спасибо
@VenkatV Спасибо! Это заставляет скрипт работать так, как ожидалось
Вы можете передать сообщение об ошибке из сценария в Terraform
, записав сообщение об ошибке в стандартный поток ошибок (stderr). В вашем сценарии вы можете записать сообщение об ошибке в stderr, используя оператор перенаправления «>&2». Пример: >&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, записав сообщение об ошибке в стандартный поток ошибок (stderr). В вашем сценарии вы можете записать сообщение об ошибке в stderr, используя оператор перенаправления «>&2». Пример: >&2 echo «Ошибка: переменная среды SOME_ENV отсутствует». Вот результат