Tutorial: Aceder a Armazenamento de Blobs do Azure com o Azure Databricks e o Azure Key Vault

Neste tutorial, irá aprender a aceder a Armazenamento de Blobs do Azure a partir do Azure Databricks com um segredo armazenado no Azure Key Vault.

Neste tutorial, ficará a saber como:

  • Criar uma conta de armazenamento e um contentor de blobs com a CLI do Azure
  • Criar um Key Vault e definir um segredo
  • Criar uma área de trabalho do Azure Databricks e adicionar Key Vault âmbito secreto
  • Aceder ao contentor de blobs a partir da área de trabalho do Azure Databricks

Pré-requisitos

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Antes de iniciar este tutorial, instale a CLI do Azure.

Criar uma conta de armazenamento e um contentor de blobs com a CLI do Azure

Primeiro, terá de criar uma conta de armazenamento para fins gerais para utilizar blobs. Se não tiver um grupo de recursos, crie um antes de executar o comando. O seguinte comando cria e apresenta os metadados do contentor de armazenamento. Copie o ID.

az storage account create --name contosoblobstorage5 --resource-group contosoResourceGroup --location eastus --sku Standard_ZRS --encryption-services blob

Saída da consola do comando acima. O ID está realçado a verde para o utilizador final ver.

Antes de poder criar um contentor para carregar o blob, terá de atribuir a função Contribuidor de Dados do Blob de Armazenamento a si próprio. Neste exemplo, a função será atribuída à conta de armazenamento que efetuou anteriormente.

az role assignment create --role "Storage Blob Data Contributor" --assignee t-trtr@microsoft.com --scope "/subscriptions/{subscription-id}/resourceGroups/contosoResourceGroup5/providers/Microsoft.Storage/storageAccounts/contosoblobstorage5

Agora que atribuiu a função à conta de armazenamento, pode criar um contentor para o seu blob.

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

Assim que o contentor for criado, pode carregar um blob (ficheiro à sua escolha) para esse contentor. Neste exemplo, é carregado um ficheiro .txt com helloworld.

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

Liste os blobs no contentor para verificar se o contentor o tem.

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

Saída da consola do comando acima. Apresenta o ficheiro que acabou de ser armazenado no contentor.

Obtenha o valor key1 do contentor de armazenamento com o seguinte comando. Copie o valor para baixo.

az storage account keys list -g contosoResourceGroup5 -n contosoblobstorage5

Saída da consola do comando acima. O valor de key1 está realçado numa caixa verde.

Criar um Key Vault e definir um segredo

Irá criar um Key Vault com o seguinte comando. Este comando também apresentará os metadados do Key Vault. Copie o ID e o vaultUri.

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

Saídada Consola de Imagem do comando acima. O ID e o vaultUri estão ambos realçados a verde para o utilizador ver.

Para criar o segredo, utilize o seguinte comando. Defina o valor do segredo para o valor key1 da sua conta de armazenamento.

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

Criar uma área de trabalho do Azure Databricks e adicionar Key Vault âmbito secreto

Esta secção não pode ser concluída através da linha de comandos. Terá de aceder ao portal do Azure para:

  1. Criar o recurso do Azure Databricks
  2. Iniciar a área de trabalho
  3. Criar um âmbito secreto com suporte Key Vault

Aceder ao contentor de blobs a partir da área de trabalho do Azure Databricks

Esta secção não pode ser concluída através da linha de comandos. Terá de utilizar a área de trabalho do Azure Databricks para:

  1. Criar um Novo Cluster
  2. Criar um Novo Bloco de Notas
  3. Preencha os campos correspondentes no script python
  4. Executar o script do 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()

Passos seguintes

Certifique-se de que a sua Key Vault é recuperável: