Поделиться через


Урок: Доступ к хранилищу BLOB-объектов Azure с помощью Azure Databricks и Azure Key Vault

В этом руководстве вы узнаете, как получить доступ к хранилищу 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 contosoblobstorage5 --resource-group contosoResourceGroup --location eastus --sku Standard_ZRS --encryption-services blob

Выходные данные консоли приведенной выше команды. Идентификатор выделен зеленым цветом для просмотра конечным пользователем.

Прежде чем создать контейнер для загрузки blob, вам потребуется назначить роль Storage Blob Data Contributor себе. В этом примере роль будет назначена учетной записи хранения, которую вы создали ранее.

az role assignment create --role "Storage Blob Data Contributor" --assignee [email protected] --scope "/subscriptions/{subscription-id}/resourceGroups/contosoResourceGroup5/providers/Microsoft.Storage/storageAccounts/contosoblobstorage5

Теперь, когда вы назначили роль учетной записи хранения, вы можете создать контейнер для BLOB.

az storage container create --account-name contosoblobstorage5 --name contosocontainer5 --auth-mode login

После создания контейнера вы можете загрузить блоб (выбранный вами файл) в этот контейнер. В этом примере загружается файл .txt с программой helloworld.

az storage blob upload --account-name contosoblobstorage5 --container-name contosocontainer5 --name helloworld --file helloworld.txt --auth-mode login

Перечислите объекты BLOB в контейнере, чтобы убедиться, что они в нём присутствуют.

az storage blob list --account-name contosoblobstorage5 --container-name contosocontainer5 --output table --auth-mode login

Выходные данные консоли приведенной выше команды. В нем отображается файл, который был только что сохранен в контейнере.

Получите значение key1 контейнера хранилища с помощью следующей команды. Скопируйте значение вниз.

az storage account keys list -g contosoResourceGroup5 -n contosoblobstorage5

Выходные данные консоли приведенной выше команды. Значение key1 выделено в зеленом поле.

Создание Key Vault и установка секрета

Вы создадите Key Vault с помощью следующей команды. Эта команда также отображает метаданные Key Vault. Скопируйте ID и vaultUri.

az keyvault create --name contosoKeyVault10 --resource-group contosoResourceGroup5 --location eastus

Изображение Вывод консольной команды, указанной выше. Идентификатор и хранилище Uri выделены зеленым цветом для удобства пользователя.

Чтобы создать секрет, используйте следующую команду. Задайте значение секрета для значения key1 из учетной записи хранения.

az keyvault secret set --vault-name contosoKeyVault10 --name storageKey --value "value of your key1"

Создание рабочей области Azure Databricks и добавление области секрета Key Vault

Этот раздел не может быть завершен с помощью командной строки. Чтобы получить доступ к порталу Azure , вам потребуется:

  1. Создание ресурса Azure Databricks
  2. Запуск рабочей области
  3. Создание области секрета, поддерживаемой Key Vault

Доступ к контейнеру BLOB в рабочей области Azure Databricks

Этот раздел не может быть завершен с помощью командной строки. Вам потребуется использовать рабочую область Azure Databricks для:

  1. Создание нового кластера
  2. Создать новую записную книжку
  3. Заполнение соответствующих полей в скрипте Python
  4. выполнение скрипта Python.
dbutils.fs.mount(
source = "wasbs://<your-container-name>@<your-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()

Дальнейшие шаги

Убедитесь, что Хранилище ключей можно восстановить: