Tutorial: Acessar o Armazenamento de Blobs do Azure usando o Azure Databricks e o Azure Key Vault
Neste tutorial, você aprenderá a acessar o armazenamento de Blobs do Azure por meio do Azure Databricks usando um segredo armazenado no Azure Key Vault.
Neste tutorial, você aprenderá como:
- Criar uma conta de armazenamento e um contêiner de blobs com a CLI do Azure
- Criar um Key Vault e definir um segredo
- Criar um workspace do Azure Databricks e adicionar um escopo de segredo do Key Vault
- Acessar seu contêiner de blobs por meio do workspace do Azure Databricks
Pré-requisitos
Se você não tiver uma assinatura 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 contêiner de blobs com a CLI do Azure
Você precisará criar uma conta de armazenamento para uso geral primeiro a fim de usar os blobs. Caso não tenha um grupo de recursos, crie um antes de executar o comando. O comando a seguir cria e exibe os metadados do contêiner de armazenamento. Copie a ID.
az storage account create --name contosoblobstorage5 --resource-group contosoResourceGroup --location eastus --sku Standard_ZRS --encryption-services blob
Para criar um contêiner no qual o blob será carregado, você precisará atribuir a função Colaborador de Dados no Blob de Armazenamento a si mesmo. Para este exemplo, a função será atribuída à conta de armazenamento criada 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 você atribuiu a função à conta de armazenamento, você poderá criar um contêiner para o blob.
az storage container create --account-name contosoblobstorage5 --name contosocontainer5 --auth-mode login
Depois que o contêiner for criado, você poderá carregar um blob (um arquivo de sua escolha) nesse contêiner. Neste exemplo, um arquivo .txt com helloworld é carregado.
az storage blob upload --account-name contosoblobstorage5 --container-name contosocontainer5 --name helloworld --file helloworld.txt --auth-mode login
Liste os blobs no contêiner para verificar se o contêiner o tem.
az storage blob list --account-name contosoblobstorage5 --container-name contosocontainer5 --output table --auth-mode login
Obtenha o valor key1 do contêiner de armazenamento usando o comando a seguir. Copie o valor.
az storage account keys list -g contosoResourceGroup5 -n contosoblobstorage5
Criar um Key Vault e definir um segredo
Você criará um Key Vault usando o comando a seguir. Esse comando também exibirá os metadados do Key Vault. Copie a ID e o vaultUri.
az keyvault create --name contosoKeyVault10 --resource-group contosoResourceGroup5 --location eastus
Para criar o segredo, use o comando a seguir. Defina o valor do segredo com o valor de key1 na sua conta de armazenamento.
az keyvault secret set --vault-name contosoKeyVault10 --name storageKey --value "value of your key1"
Criar um workspace do Azure Databricks e adicionar um escopo de segredo do Key Vault
Esta seção não pode ser concluída por meio da linha de comando. Você precisará acessar o portal do Azure para:
- Criar o recurso do Azure Databricks
- Iniciar o workspace
- Criar um escopo de segredo com backup do Key Vault
Acessar seu contêiner de blobs por meio do workspace do Azure Databricks
Esta seção não pode ser concluída por meio da linha de comando. Você precisará usar o workspace do Azure Databricks para:
- Criar um Cluster
- Criar um Notebook
- Preencher os campos correspondentes no script do Python
- 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()
Próximas etapas
Garantir que o Key Vault seja recuperável: