Как получить доступ к секретам в блоках данных initscript
Я попытался получить доступ к секрету {{secrets / secrectScope / Key}} на расширенной вкладке кластера блоков данных, и он работает нормально. Но когда я пытаюсь использовать то же самое в сценарии инициализации databricks, он не работает.
Что для этого нужно сделать?
2 ответа
Другой ответ верен относительно синтаксиса ссылки на секреты (так называемые « секретные пути »), но он не будет работать для сценариев инициализации, хотя он будет работать для самого кода Spark.
Чтобы передать секрет в сценарий инициализации, вам необходимо поместить путь секретов в разделы «Переменные среды» на вкладке конфигурации Spark, например:
И после этого вы можете использовать переменную по имени внутри скрипта инициализации :
if [ -n "$SECRET_VAR" ]; then
do_something_with_it
fi
Вот шаги для доступа к секретам в databricks initscript:
- Перейти в кластер
- Щелкните Изменить рядом с информацией о кластере.
- На странице «Настроить кластер» щелкните « Дополнительные параметры» .
- На вкладке Spark введите следующую конфигурацию Spark:
Пример кода ini:
fs.azure.account.auth.type.<storage-account-name>.dfs.core.windows.net OAuth
fs.azure.account.oauth.provider.type.<storage-account-name>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
fs.azure.account.oauth2.client.id.<storage-account-name>.dfs.core.windows.net secrets/<secret-scope-name>/<secret-name>
fs.azure.account.oauth2.client.secret.<storage-account-name>.dfs.core.windows.net secrets/<secret-scope-name>/<secret-name>
fs.azure.account.oauth2.client.endpoint.<storage-account-name>.dfs.core.windows.net https://login.microsoftonline.com/<directory-id>/oauth2/token
Дополнительные сведения см. В разделе Azure Databricks - настройте кластер для чтения секретов из секретной области .