Tutorial: Zugreifen auf Azure Blob Storage über Azure Databricks und Azure Key Vault
In diesem Tutorial erfahren Sie, wie Sie unter Verwendung eines in Azure Key Vault gespeicherten Geheimnisses von Azure Databricks aus auf Azure Blob Storage zugreifen.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen eines Speicherkontos und eines Blobcontainers mithilfe der Azure-Befehlszeilenschnittstelle
- Erstellen einer Key Vault-Instanz und Festlegen eines Geheimnisses
- Erstellen eines Azure Databricks-Arbeitsbereichs und Hinzufügen eines Key Vault-Geheimnisbereichs
- Zugreifen auf Ihren Blobcontainer über den Azure Databricks-Arbeitsbereich
Voraussetzungen
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Installieren Sie die Azure CLI, bevor Sie mit diesem Tutorial beginnen.
Erstellen eines Speicherkontos und eines Blobcontainers mithilfe der Azure-Befehlszeilenschnittstelle
Erstellen Sie für die Verwendung von Blobs zunächst ein universelles Speicherkonto. Sollten Sie über keine Ressourcengruppe verfügen, erstellen Sie eine, bevor Sie den Befehl ausführen. Mit dem folgenden Befehl werden die Metadaten des Speichercontainers erstellt und angezeigt. Notieren Sie sich die ID.
az storage account create --name contosoblobstorage5 --resource-group contosoResourceGroup --location eastus --sku Standard_ZRS --encryption-services blob
Weisen Sie sich selbst die Rolle Mitwirkender an Storage-Blobdaten zu, um einen Container zum Hochladen des Blobs erstellen zu können. In diesem Beispiel wird die Rolle dem weiter oben erstellten Speicherkonto zugewiesen.
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
Nachdem Sie dem Speicherkonto die Rolle zugewiesen haben, können Sie einen Container für Ihr Blob erstellen.
az storage container create --account-name contosoblobstorage5 --name contosocontainer5 --auth-mode login
Nach Erstellung des Containers kann ein Blob (Datei Ihrer Wahl) in diesen Container hochgeladen werden. In diesem Beispiel wird eine TXT-Datei mit „helloworld“ hochgeladen.
az storage blob upload --account-name contosoblobstorage5 --container-name contosocontainer5 --name helloworld --file helloworld.txt --auth-mode login
Listen Sie die Blobs im Container auf, um sich zu vergewissern, dass es im Container enthalten ist.
az storage blob list --account-name contosoblobstorage5 --container-name contosocontainer5 --output table --auth-mode login
Rufen Sie mithilfe des folgenden Befehls den Wert von key1 für Ihren Speichercontainer ab. Notieren Sie sich den Wert.
az storage account keys list -g contosoResourceGroup5 -n contosoblobstorage5
Erstellen einer Key Vault-Instanz und Festlegen eines Geheimnisses
Der folgende Befehl dient zum Erstellen einer Key Vault-Instanz. Durch diesen Befehl werden auch die Metadaten der Key Vault-Instanz angezeigt. Notieren Sie sich die Werte für ID und vaultUri.
az keyvault create --name contosoKeyVault10 --resource-group contosoResourceGroup5 --location eastus
Verwenden Sie den folgenden Befehl, um das Geheimnis zu erstellen. Legen Sie den Wert des Geheimnisses auf den Wert von key1 aus Ihrem Speicherkonto fest.
az keyvault secret set --vault-name contosoKeyVault10 --name storageKey --value "value of your key1"
Erstellen eines Azure Databricks-Arbeitsbereichs und Hinzufügen eines Key Vault-Geheimnisbereichs
Die Schritte in diesem Abschnitt können nicht über die Befehlszeile durchgeführt werden. Für Folgendes muss das Azure-Portal verwendet werden:
- Erstellen Ihrer Azure Databricks-Ressource
- Starten Ihres Arbeitsbereichs
- Erstellen eines Key Vault-basierten Geheimnisbereichs
Zugreifen auf Ihren Blobcontainer über den Azure Databricks-Arbeitsbereich
Die Schritte in diesem Abschnitt können nicht über die Befehlszeile durchgeführt werden. Für Folgendes muss der Azure Databricks-Arbeitsbereich verwendet werden:
- Erstellen eines neuen Clusters
- Erstellen eines neuen Notebooks
- Ausfüllen der entsprechenden Felder im Python-Skript
- Ausführen des Python-Skripts
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()
Nächste Schritte
Stellen Sie sicher, dass Ihre Key Vault-Instanz wiederherstellbar ist: