Azure Databricks монтирует хранилище BLOB-объектов - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь сопоставить хранилище BLOB-объектов из своей учетной записи хранения в кластер блоков данных. Я перехожу по этой ссылке и здесь, очевидно, мне просто нужно выполнить этот код в своей записной книжке:

Код 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>")})

Я застрял в параметрах: (scope = "<scope-name>", key = "<key-name>"). Я знаю, что для создания области я могу перейти по этой ссылке , позже я предполагаю провести свой клистер по CLI Databricks и поймать <scope-name> и <key-name>. Однако, когда я проверяю свой кластер, я просто получаю имя области и не могу найти нигде имя ключа, или на lkeast, я не знаю, как его получить.

Пробовал на CLI для блоков данных:

enter image description here

Где я могу сгенерировать или найти <key-name>

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

Обратите внимание, что источник blobEndpoint должен иметь формат:

wasbs://container@storageaccount.blob.core.windows.net

Затем вы устанавливаете свои переменные:

blobEndpoint = dbutils.secrets.get("blob-secret","blob-endpoint")

blobKey = dbutils.secrets.get("blob-secret","blobl-access-key")

    dbutils.fs.mount(
  source = blobEndpoint,
  mount_point = "/mnt/blobmountsecret",
  extra_configs = `{"fs.azure.account.key.<storageaccountname>.blob.core.windows.net":blobKey})`
0 голосов
/ 16 января 2019

Насколько я понимаю, имя ключа - это "вещь", которую вы пытаетесь извлечь из секретной области.

Полагаю, вы создали секретную область с поддержкой блоков данных, а не секретную область с хранилищем ключей Azure?

Тогда вы должны были на самом деле хранить секрет в секретной области. Этот секрет хранится в «ключе» (запутанная терминология).

https://docs.azuredatabricks.net/user-guide/secrets/secrets.html#create-a-secret-in-a-databricks-backed-scope

Код, который вы имеете, пытается извлечь этот секрет из области секрета и назначить его <conf-key> в этом json.

Посмотрите на этот пример https://docs.azuredatabricks.net/user-guide/secrets/example-secret-workflow.html#use-the-secrets-in-a-notebook

val jdbcUsername = dbutils.secrets.get(scope = "jdbc", key = "username")

Перед этим вам необходимо создать хранилище ключей, внутри которого есть секретное имя имя пользователя , которое вы уже заполнили. Затем этот код идет и извлекает его

Итак ... вам нужно, во-первых, знать, что вы хотите противопоставить, и поместить это в секретную область.

Например, вы можете сделать свой код проще, но очень небезопасным, просто жестко закодировав этот параметр в своем коде

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...