Я пытаюсь использовать переменные среды рабочей области для передачи маркеров доступа в мои собственные сценарии инициализации кластера.
Похоже, что есть только несколько поддерживаемых переменных среды, к которым мы можем получить доступ в наших пользовательских сценариях инициализации кластера, как описано в https://docs.databricks.com/clusters/init-scripts.html#environment-variables
Я попытался записать в базовую конфигурацию кластераиспользование
Microsoft.Azure.Databricks.Client.SparkEnvironmentVariables.Add("WORKSPACE_ID", workspaceId)
Мои сценарии инициализации по-прежнему не могут использовать эту переменную в следующей строке:
[[ -z "${WORKSPACE_ID}" ]] && LOG_ANALYTICS_WORKSPACE_ID='default' || LOG_ANALYTICS_WORKSPACE_ID="${WORKSPACE_ID}"
При использовании приведенных выше строк кода мой сценарий инициализации вызывает сбой кластера сследующая ошибка:
Spark Error: Spark encountered an error on startup. This issue can be caused by
invalid Spark configurations or malfunctioning init scripts. Please refer to the Spark
driver logs to troubleshoot this issue, and contact Databricks if the problem persists.
Internal error message: Spark error: Driver down
В журналах не говорится, что какая-то часть моего bash-скрипта дает сбой, поэтому я предполагаю, что он просто не может выбрать переменную из переменных среды.
Кто-нибудь еще сталкивался с проблемой с этим? Я понимаю, что могу записать эту информацию в dbfs, а затем прочитать ее в сценарии инициализации, но я бы хотел избежать этого, поскольку я буду передавать токены доступа. Какие еще подходы я могу попробовать?
Спасибо за любую помощь!