Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве вы узнаете, как получить доступ к хранилищу BLOB-объектов Azure из Azure Databricks с помощью секрета, хранящегося в Azure Key Vault.
В этом руководстве вы узнаете, как:
- Создайте учетную запись хранения и контейнер объектов BLOB с помощью Azure CLI
- Создание Key Vault и установка секрета
- Создание рабочей области Azure Databricks и добавление области секрета Key Vault
- Доступ к контейнеру объектов BLOB из рабочей области Azure Databricks
Предпосылки
Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
Перед началом работы с этим руководством установите Azure CLI.
Создайте учетную запись хранения и контейнер объектов BLOB с помощью Azure CLI
Сначала необходимо создать учетную запись хранения общего назначения, чтобы использовать объекты Blob. Если у вас нет группы ресурсов, создайте ее перед выполнением команды. Следующая команда создает и отображает метаданные контейнера хранилища. Скопируйте идентификатор.
az storage account create --name <storage-account-name> --resource-group <resource-group> --location <location> --sku Standard_ZRS --encryption-services blob
Прежде чем создать контейнер для загрузки blob, вам потребуется назначить роль Storage Blob Data Contributor себе. В этом примере роль будет назначена учетной записи хранения, которую вы создали ранее.
az role assignment create --role "Storage Blob Data Contributor" --assignee <user-principal-name> --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>
Теперь, когда вы назначили роль аккаунта хранилища, вы можете создать контейнер для блоба.
az storage container create --account-name <storage-account-name> --name <container-name> --auth-mode login
После создания контейнера вы можете загрузить блоб (выбранный вами файл) в этот контейнер. В этом примере загружается файл .txt с программой helloworld.
az storage blob upload --account-name <storage-account-name> --container-name <container-name> --name helloworld --file helloworld.txt --auth-mode login
Перечислите объекты BLOB в контейнере, чтобы убедиться, что они в нём присутствуют.
az storage blob list --account-name <storage-account-name> --container-name <container-name> --output table --auth-mode login
Получите значение key1 контейнера хранилища с помощью следующей команды. Скопируйте значение вниз.
az storage account keys list -g <resource-group> -n <storage-account-name>
Создание Key Vault и установка секрета
Вы создадите Key Vault с помощью следующей команды. Эта команда также отображает метаданные Key Vault. Скопируйте ID и vaultUri.
az keyvault create --name <vault-name> --resource-group <resource-group> --location <location> --enable-rbac-authorization true --enable-purge-protection true
Чтобы создать секрет, используйте следующую команду. Задайте значение секрета для значения key1 из учетной записи хранения.
az keyvault secret set --vault-name <vault-name> --name storageKey --value "value of your key1"
Создание рабочей области Azure Databricks и добавление области секрета Key Vault
Этот раздел не может быть завершен с помощью командной строки. Чтобы получить доступ к порталу Azure , вам потребуется:
- Создание ресурса Azure Databricks
- Запуск рабочей области
- Создание области секрета, поддерживаемой Key Vault
Доступ к контейнеру объектов BLOB из рабочей области Azure Databricks
Этот раздел не может быть завершен с помощью командной строки. Вам потребуется использовать рабочую область Azure Databricks для:
- Создание нового кластера
- Создать новую записную книжку
- Заполнение соответствующих полей в скрипте Python
- выполнение скрипта Python.
dbutils.fs.mount(
source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net",
mount_point = "/mnt/<mount-name>",
extra_configs = {"<conf-key>":dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")})
df = spark.read.text("/mnt/<mount-name>/<file-name>")
df.show()
Дальнейшие шаги
Убедитесь, что Хранилище ключей можно восстановить: