gpt4 book ai didi

azure - 使用 dbutils.fs.mount 和 dbutils.secrets.get 将 Azure Blob 存储安装到 Databricks 时出现错误 "String is not a valid Base64-encoded string"

转载 作者:行者123 更新时间:2023-12-03 03:34:20 24 4
gpt4 key购买 nike

我按照此处的文档将 Azure Blob 存储容器安装到 Databricks:

https://docs.databricks.com/_static/notebooks/data-sources/mount-azure-blob-storage.html

但是,我在尝试此操作时遇到错误。

这是我的代码:

dbutils.fs.mount(
source = "wasbs://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7f1310183f1206520c0b100d1e181a511d13101d511c100d1a510816111b10080c51111a0b" rel="noreferrer noopener nofollow">[email protected]</a>",
mount_point = "/mnt/log/",
extra_configs = {"fs.azure.account.key.my-storage.blob.core.windows.net": dbutils.secrets.get(scope = "my-scope", key = "my-key")}
)

这是错误:

shaded.databricks.org.apache.hadoop.fs.azure.AzureException: java.lang.IllegalArgumentException: The String is not a valid Base64-encoded string.

我可以像这样运行 dbutils.secrets.get 来检索 secret :

dbutils.secrets.get(scope = "my-scope", key = "my-key")

输出:

Out[12]: '[REDACTED]'

我期望如此,因为它不应该将 secret 打印到输出中。但是,如果我无法将此值传递给 extra_configs 参数,我认为我会收到权限错误或类似错误。

此外,如果我直接将访问 key 插入到 extra_configs 参数中,我就可以轻松安装它,如下所示:

dbutils.fs.mount(
source = "wasbs://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f79b9890b79a8eda84839885969092d9959b9895d994988592d9809e9993988084d9999283" rel="noreferrer noopener nofollow">[email protected]</a>",
mount_point = "/mnt/log/",
extra_configs = {"fs.azure.account.key.my-storage.blob.core.windows.net": "my-access-key")}
)

问题是我可以在 DEV 中执行此操作,但需要在上层环境中传递 secret 。

非常感谢任何帮助!谢谢!

最佳答案

请按照以下步骤操作:

第 1 步: 创建 Azure key 保管库并使用访问 key 保存 secret 名称:

enter image description here

第 2 步:创建 Secret scope并且请遵循以下语法在 azure Databricks 中创建 secret 范围: https://<Azure_databricks_instance>#secrets/createScope并保存 DNS 名称和资源 ID。

enter image description here

enter image description here

创建安装:

dbutils.fs.mount(
source = "wasbs://<container_name>@<storage_account>.blob.core.windows.net",
mount_point = "/mnt/<mount_data>",
extra_configs = {"fs.azure.account.key.<Storage_account>.blob.core.windows.net":dbutils.secrets.get(scope = "<scope_name>", key = "scrate_key")})

输出:

enter image description here

关于azure - 使用 dbutils.fs.mount 和 dbutils.secrets.get 将 Azure Blob 存储安装到 Databricks 时出现错误 "String is not a valid Base64-encoded string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73828773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com