你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:使用 Azure Databricks 和 Azure Key Vault 访问 Azure Blob 存储
在本教程中,你将了解如何使用 Azure Key Vault 中存储的机密从 Azure Databricks 访问 Azure Blob 存储。
在本教程中,你将了解如何执行以下操作:
- 使用 Azure CLI 创建存储帐户和 Blob 容器
- 创建 Key Vault 并设置机密
- 创建 Azure Databricks 工作区并添加 Key Vault 机密范围
- 从 Azure Databricks 工作区访问 Blob 容器
先决条件
如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
在开始学习本教程之前,请安装 Azure CLI。
使用 Azure CLI 创建存储帐户和 Blob 容器
需要先创建常规用途存储帐户才能使用 Blob。 如果没有资源组,请在运行该命令之前创建一个资源组。 以下命令会创建存储容器并显示其元数据。 复制 ID。
az storage account create --name contosoblobstorage5 --resource-group contosoResourceGroup --location eastus --sku Standard_ZRS --encryption-services blob
需要为自己分配存储 Blob 数据参与者角色,然后才能创建要向其上传 Blob 的容器。 在本例中,角色将分配给之前创建的存储帐户。
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
你现已将角色分配给存储帐户,接下来可为 Blob 创建容器。
az storage container create --account-name contosoblobstorage5 --name contosocontainer5 --auth-mode login
创建容器后,可将 Blob(所选文件)上传到该容器。 在本例中,上传了包含 helloworld 的 .txt 文件。
az storage blob upload --account-name contosoblobstorage5 --container-name contosocontainer5 --name helloworld --file helloworld.txt --auth-mode login
列出容器中的 Blob,以验证容器是否具有该 Blob。
az storage blob list --account-name contosoblobstorage5 --container-name contosocontainer5 --output table --auth-mode login
使用以下命令获取存储容器的 key1 值。 复制此值。
az storage account keys list -g contosoResourceGroup5 -n contosoblobstorage5
创建 Key Vault 并设置机密
将使用以下命令创建 Key Vault。 此命令也将显示 Key Vault 的元数据。 复制 ID 和 vaultUri 。
az keyvault create --name contosoKeyVault10 --resource-group contosoResourceGroup5 --location eastus
若要创建机密,请使用以下命令。 将机密的值设置为存储帐户中的 key1 值。
az keyvault secret set --vault-name contosoKeyVault10 --name storageKey --value "value of your key1"
创建 Azure Databricks 工作区并添加 Key Vault 机密范围
此部分不能通过命令行完成。 需要访问 Azure 门户来执行以下操作:
- 创建 Azure Databricks 资源
- 启动工作区
- 创建 Key Vault 支持的机密范围
从 Azure Databricks 工作区访问 Blob 容器
此部分不能通过命令行完成。 需要使用 Azure Databricks 工作区来执行以下操作:
- 创建新群集
- 创建新笔记本
- 填写 Python 脚本中的相应字段
- 运行 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()
后续步骤
确保 Key Vault 可恢复: