Tutorial: Access Azure Blob Storage usando Azure Databricks e Azure Key VaultTutorial: Access Azure Blob Storage using Azure Databricks and Azure Key Vault

Neste tutorial, você aprenderá a aceder ao Azure Blob Storage da Azure Databricks usando um segredo armazenado em Azure Key Vault.In this tutorial, you'll learn how to access Azure Blob Storage from Azure Databricks using a secret stored in Azure Key Vault.

Neste tutorial, ficará a saber como:In this tutorial, you learn how to:

  • Criar uma conta de armazenamento e recipiente blob com Azure CLICreate a storage account and blob container with Azure CLI
  • Crie um Cofre de Chaves e estabeleça um segredoCreate a Key Vault and set a secret
  • Crie um espaço de trabalho Azure Databricks e adicione o âmbito secreto do Key VaultCreate an Azure Databricks workspace and add Key Vault secret scope
  • Aceda ao seu recipiente blob a partir do espaço de trabalho Azure DatabricksAccess your blob container from Azure Databricks workspace

Pré-requisitosPrerequisites

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

Antes de iniciar este tutorial, instale o Azure CLI.Before you start this tutorial, install the Azure CLI.

Criar uma conta de armazenamento e recipiente blob com Azure CLICreate a storage account and blob container with Azure CLI

Primeiro, terá de criar uma conta de armazenamento para fins gerais para usar bolhas.You'll need to create a general-purpose storage account first to use blobs. Se não tiver um grupo de recursos,crie um antes de executar o comando.If you don't have a resource group, create one before running the command. O seguinte comando cria e exibe os metadados do recipiente de armazenamento.The following command creates and display the metadata of the storage container. Copie o ID.Copy down the 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.

Antes de poder criar um recipiente para carregar a bolha, terá de atribuir o papel de Contribuinte de Dados de Armazenamento a si próprio.Before you can create a container to upload the blob to, you'll need to assign the Storage Blob Data Contributor role to yourself. Para este exemplo, o papel será atribuído à conta de armazenamento que fez anteriormente.For this example, the role will be assigned to the storage account you've made earlier.

az role assignment create --role "Storage Blob Data Contributor" --assignee t-trtr@microsoft.com --scope "/subscriptions/885e24c8-7a36-4217-b8c9-eed31e110504/resourceGroups/contosoResourceGroup5/providers/Microsoft.Storage/storageAccounts/contosoblobstorage5

Agora que atribuiu o papel à conta de armazenamento, pode criar um recipiente para a sua bolha.Now that you've assign the role to storage account, you can create a container for your blob.

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

Uma vez criado o recipiente, pode enviar uma bolha (ficheiro à sua escolha) para esse recipiente.Once the container is created, you can upload a blob (file of your choice) to that container. Neste exemplo, é carregado um ficheiro .txt com helloworld.In this example, a .txt file with helloworld is uploaded.

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

Enuncie as bolhas no recipiente para verificar se o recipiente o tem.List the blobs in the container to verify that the container has it.

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

Saída da consola do comando acima.

Obtenha o valor chave1 do seu recipiente de armazenamento utilizando o seguinte comando.Get the key1 value of your storage container using the following command. Copie o valor para baixo.Copy the value down.

az storage account keys list -g contosoResourceGroup5 -n contosoblobstorage5

Saída da consola do comando acima.

Crie um Cofre de Chaves e estabeleça um segredoCreate a Key Vault and set a secret

Criará um Cofre-Chave usando o seguinte comando.You'll create a Key Vault using the following command. Este comando também mostrará os metadados do Cofre de Chaves.This command will display the metadata of the Key Vault as well. Copie o ID e o vaultUri.Copy down the ID and vaultUri.

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

Saída  da consola de imagem do comando acima.Image
Console output of the above command. O ID e o vaultUri estão ambos em destaque em verde para o utilizador ver.The ID and the vaultUri are both highlighted in green for the user to see.

Para criar o segredo, use o seguinte comando.To create the secret, use the following command. Desa cosçar o valor do segredo para o valor da chave1 da sua conta de armazenamento.Set the value of the secret to the key1 value from your storage account.

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

Crie um espaço de trabalho Azure Databricks e adicione o âmbito secreto do Key VaultCreate an Azure Databricks workspace and add Key Vault secret scope

Esta secção não pode ser completada através da linha de comando.This section can't be completed through the command line. Siga este guia.Follow this guide. Terá de aceder ao portal Azure para:You'll need to access the Azure portal to:

  1. Crie o seu recurso Azure DatabricksCreate your Azure Databricks resource
  2. Lance o seu espaço de trabalhoLaunch your workspace
  3. Criar um âmbito secreto apoiado por cofres chaveCreate a Key Vault-backed secret scope

Aceda ao seu recipiente blob a partir do espaço de trabalho Azure DatabricksAccess your blob container from Azure Databricks workspace

Esta secção não pode ser completada através da linha de comando.This section can't be completed through the command line. Siga este guia.Follow this guide. Você precisará usar o espaço de trabalho Azure Databricks para:You'll need to use the Azure Databricks workspace to:

  1. Criar um novo clusterCreate a New Cluster
  2. Criar um novo cadernoCreate a New Notebook
  3. Preencha os campos correspondentes no script PythonFill in corresponding fields in the Python script
  4. Executar o roteiro PythonRun the Python script
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 seguintesNext steps

Certifique-se de que o seu Cofre de Chaves é recuperável:Make sure your Key Vault is recoverable: