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
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
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
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
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:
- Criar o recurso do Azure Databricks
- Iniciar a área de trabalho
- 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:
- Criar um Novo Cluster
- Criar um Novo Bloco de Notas
- Preencha os campos correspondentes no script 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()
Passos seguintes
Certifique-se de que a sua Key Vault é recuperável: