Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
在本教程中,你将使用存储在Azure 密钥保管库中的存储帐户密钥从Azure Databricks访问Azure Blob 存储。
Important
存储帐户密钥访问是旧模式。 对于新工作负载,请通过 Azure Databricks(通过 Unity 目录凭据或使用 OAuth 的 ABFS 装载)使用Microsoft Entra ID授权,并在存储帐户上禁用共享密钥授权。 Entra ID授权无需存储或轮换存储帐户密钥并提供精细审核。 本文中的步骤对于仍使用共享密钥访问的存储帐户仍然有效。
在本教程中,你将了解:
- 使用Azure CLI创建存储帐户和 Blob 容器。
- 创建密钥保管库并设置机密。
- 创建Azure Databricks工作区并添加密钥保管库机密范围。
- 从Azure Databricks工作区访问 blob 容器。
先决条件
如果没有 Azure 订阅,请在开始前创建一个试用版订阅。
在开始学习本教程之前,请安装 Azure CLI。
使用 Azure CLI 创建存储帐户和 Blob 容器
创建常规用途存储帐户以使用 Blob。 如果没有资源组,请在运行该命令之前创建一个资源组。 以下命令创建存储帐户并显示其元数据。 复制 ID 值。
az storage account create --name <storage-account-name> --resource-group <resource-group> --location <location> --sku Standard_ZRS --encryption-services blob
在创建用于上传 Blob 的容器之前,请先为自己分配 存储 Blob 数据参与者 角色。 对于此示例,角色是在前面创建的存储帐户上分配的。
az role assignment create --role "Storage Blob Data Contributor" --assignee <user-principal-name> --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>
分配角色后,请为 Blob 创建容器:
az storage container create --account-name <storage-account-name> --name <container-name> --auth-mode login
创建容器后,将 Blob(所选文件)上传到该容器。 在此示例中,上传了一个带有 helloworld 的 .txt 文件。
az storage blob upload --account-name <storage-account-name> --container-name <container-name> --name helloworld --file helloworld.txt --auth-mode login
列出容器中的 blob 以进行验证:
az storage blob list --account-name <storage-account-name> --container-name <container-name> --output table --auth-mode login
使用以下命令获取存储帐户的 key1 值。 复制值。
az storage account keys list -g <resource-group> -n <storage-account-name>
创建密钥保管库并设置机密
使用以下命令创建密钥保管库。 该命令还显示密钥保管库的元数据。 复制 ID 和 vaultUri 值。
az keyvault create --name <vault-name> --resource-group <resource-group> --location <location> --enable-rbac-authorization true --enable-purge-protection true
若要创建机密,请使用以下命令。 将机密的值设置为从您的存储帐户中获取的 key1 值。
az keyvault secret set --vault-name <vault-name> --name storageKey --value "value of your key1"
创建Azure Databricks工作区并添加密钥保管库机密范围
本部分需要Azure门户。 使用它可执行以下操作:
- 创建Azure Databricks资源。
- 打开工作区。
- 创建由 密钥保管库 提供支持的机密作用域。
从 Azure Databricks 工作区访问 Blob 容器
本部分在Azure Databricks工作区中完成。 在工作区中:
- 创建新群集。
- 创建新笔记本。
- 填写Python脚本中的相应字段。
- 运行 Python 脚本。
dbutils.fs.mount(
source = "wasbs://<container-name>@<storage-account-name>.blob.core.chinacloudapi.cn",
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()
后续步骤
确保你的 密钥保管库 可恢复: