Tutoriel : Accéder au Stockage Blob Azure en utilisant Azure Databricks et Azure Key Vault
Dans ce tutoriel, vous allez découvrir comment accéder à Stockage Blob Azure à partir d’Azure Databricks en utilisant un secret stocké dans Azure Key Vault.
Dans ce tutoriel, vous allez apprendre à :
- Créer un compte de stockage et un conteneur d’objets blob avec Azure CLI
- Créer un coffre de clés et définir un secret
- Créer un espace de travail Azure Databricks et ajouter une étendue de secrets Key Vault
- Accéder à votre conteneur d’objets blob à partir de l’espace de travail Azure Databricks
Prérequis
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Avant de commencer ce tutoriel, installez l’interface de ligne de commande Azure.
Créer un compte de stockage et un conteneur d’objets blob avec Azure CLI
Pour pouvoir utiliser des objets blob, vous devez d’abord créer un compte de stockage universel. Si vous n’avez pas de groupe de ressources, créez-en un avant d’exécuter la commande. La commande suivante crée et affiche les métadonnées du conteneur de stockage. Copiez la valeur d’ID.
az storage account create --name contosoblobstorage5 --resource-group contosoResourceGroup --location eastus --sku Standard_ZRS --encryption-services blob
Avant de pouvoir créer un conteneur dans lequel charger l’objet blob, vous devez vous attribuer le rôle Contributeur aux données Blob du stockage. Pour cet exemple, le rôle est attribué au compte de stockage que vous avez créé précédemment.
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
Dès lors que vous avez affecté le rôle au compte de stockage, vous pouvez créer un conteneur pour votre objet blob.
az storage container create --account-name contosoblobstorage5 --name contosocontainer5 --auth-mode login
Une fois le conteneur créé, vous pouvez charger un objet blob (fichier de votre choix) dans le conteneur. Dans cet exemple, un fichier .txt nommé helloworld est chargé.
az storage blob upload --account-name contosoblobstorage5 --container-name contosocontainer5 --name helloworld --file helloworld.txt --auth-mode login
Vérifiez qu’il se trouve dans le conteneur en listant les objets blob contenus dans ce dernier.
az storage blob list --account-name contosoblobstorage5 --container-name contosocontainer5 --output table --auth-mode login
Obtenez la valeur de key1 de votre conteneur de stockage à l’aide de la commande suivante. Copiez la valeur.
az storage account keys list -g contosoResourceGroup5 -n contosoblobstorage5
Créer un coffre de clés et définir un secret
Vous allez créer un coffre de clés à l’aide de la commande suivante. Cette commande présente aussi les métadonnées du coffre de clés. Copiez la valeur d’ID et de vaultUri.
az keyvault create --name contosoKeyVault10 --resource-group contosoResourceGroup5 --location eastus
Pour créer le secret, utilisez la commande suivante. Attribuez au secret la valeur de key1 de votre compte de stockage.
az keyvault secret set --vault-name contosoKeyVault10 --name storageKey --value "value of your key1"
Créer un espace de travail Azure Databricks et ajouter une étendue de secrets Key Vault
La procédure décrite dans cette section ne peut pas être effectuée via la ligne de commande. Vous aurez besoin d’accéder au portail Azure pour :
- Créer votre ressource Azure Databricks
- Lancer votre espace de travail
- Créer une étendue de secrets reposant sur Key Vault
Accéder à votre conteneur d’objets blob à partir de l’espace de travail Azure Databricks
La procédure décrite dans cette section ne peut pas être effectuée via la ligne de commande. Vous devrez utiliser l’espace de travail Azure Databricks pour :
- Créer un Nouveau cluster
- Créer un Nouveau Notebook
- Compléter les champs correspondants dans le script Python
- Exécuter le script 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()
Étapes suivantes
Vérifiez que le coffre de clés est récupérable :