Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste tutorial, acede ao Armazenamento de Blobs do Azure a partir do Azure Databricks usando uma chave de conta de armazenamento armazenada no Azure Key Vault.
Importante
O acesso à chave da conta de armazenamento é um padrão legado. Para novas cargas de trabalho, utilize a autorização do Microsoft Entra ID com o Azure Databricks (através das credenciais do Unity Catalog ou de uma montagem ABFS que utilize OAuth) e desative a autorização com Chave Partilhada na conta de armazenamento. A autorização do Entra ID elimina a necessidade de armazenar ou alternar as chaves da conta de armazenamento e permite uma auditoria detalhada. Os passos deste artigo mantêm-se válidos para contas de armazenamento que ainda utilizam acesso a Chave Partilhada.
Neste tutorial, você:
- Crie uma conta de armazenamento e um contentor de blob com a CLI do Azure.
- Cria um cofre de chaves e define um segredo.
- Crie um espaço de trabalho no Azure Databricks e adicione um escopo secreto do Key Vault.
- Acede ao teu contentor de blobs a partir do espaço 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 contêiner de blob com a CLI do Azure
Cria uma conta de armazenamento de uso geral para usar blobs. Se você não tiver um grupo de recursos, crie um antes de executar o comando. O comando seguinte cria a conta de armazenamento e apresenta os seus metadados. Copie o valor de id.
az storage account create --name <storage-account-name> --resource-group <resource-group> --location <location> --sku Standard_ZRS --encryption-services blob
Antes de criar um contentor para o qual irá carregar o blob, atribua a si próprio a função Storage Blob Data Contributor. Neste exemplo, a função é atribuída à conta de armazenamento que criou anteriormente.
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>
Agora que atribuíste a função, cria um contentor para o teu blob:
az storage container create --account-name <storage-account-name> --name <container-name> --auth-mode login
Depois de criar o contentor, carrega um blob (ficheiro à tua escolha) para ele. Neste exemplo, um ficheiro .txt com helloworld é carregado.
az storage blob upload --account-name <storage-account-name> --container-name <container-name> --name helloworld --file helloworld.txt --auth-mode login
Liste os blobs no contentor para verificar:
az storage blob list --account-name <storage-account-name> --container-name <container-name> --output table --auth-mode login
Obtenha o valor key1 da sua conta de armazenamento com o seguinte comando. Copie o valor.
az storage account keys list -g <resource-group> -n <storage-account-name>
Crie um cofre de chaves e crie um segredo
Crie um cofre de chaves com o seguinte comando. O comando também apresenta os metadados do cofre de chaves. Copie os valores de id e de vaultUri.
az keyvault create --name <vault-name> --resource-group <resource-group> --location <location> --enable-rbac-authorization true --enable-purge-protection true
Para criar o segredo, use o seguinte comando. Defina o valor do segredo para o valor key1 da sua conta de armazenamento.
az keyvault secret set --vault-name <vault-name> --name storageKey --value "value of your key1"
Crie um espaço de trabalho no Azure Databricks e adicione um escopo secreto do Key Vault
Esta secção requer o portal Azure. Utilize-o para:
- Crie o seu recurso Azure Databricks.
- Inicie o seu espaço de trabalho.
- Crie um escopo secreto protegido pelo Key Vault.
Acede ao teu contentor de blob a partir do espaço de trabalho do Azure Databricks
Esta secção é completada no espaço de trabalho do Azure Databricks. No espaço de trabalho:
- Crie um novo cluster.
- Crie um novo caderno.
- Preenche os campos correspondentes no script Python.
- Executa o script 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()
Próximos passos
Certifique-se de que o Cofre da Chave esteja recuperável.