2

我正在尝试将 Blob 存储从我的存储帐户映射到我的 databricks 集群。我正在关注此链接,显然我只需要在我的笔记本中执行此代码:

代码蟒蛇:

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>")})

我被困在参数中:(scope = "<scope-name>", key = "<key-name>")。我知道为了创建一个范围,我可以点击这个链接,稍后我想在整个 Databricks CLI 中导航我的集群并捕获<scope-name>and <key-name>。但是,当我检查我的集群时,我只获得了范围名称,并且在任何地方或 lkeast 都找不到密钥名称,我不知道如何获得它。

在 Databricks CLI 上试过:

在此处输入图像描述

我在哪里可以生成或找到<key-name>

4

2 回答 2

2

我的理解是,密钥名称是您试图从秘密范围中检索的“事物”。

我猜您创建了一个数据块支持的秘密范围,而不是 Azure 密钥保管库支持的秘密范围?

然后,您应该已经在秘密范围内实际存储了一个秘密。该秘密是针对“密钥”(令人困惑的术语)存储的。

https://docs.azuredatabricks.net/user-guide/secrets/secrets.html#create-a-secret-in-a-databricks-backed-scope

您拥有的代码正在尝试从秘密范围中检索该秘密并将其分配给<conf-key>该 json 中的 。

看看这个例子https://docs.azuredatabricks.net/user-guide/secrets/example-secret-workflow.html#use-the-secrets-in-a-notebook

val jdbcUsername = dbutils.secrets.get(scope = "jdbc", key = "username")

在此之前,您需要创建一个密钥保管库,其中包含您已经填充的秘密名称用户名。然后这段代码去检索它

所以....你首先需要知道你想要反对什么,然后把它放在秘密范围内。

例如,您可以通过简单地硬编码代码中的设置来使您的代码更简单但非常不安全

于 2019-01-16T00:15:01.863 回答
-1

请注意,blobEndpoint 源的格式必须为:

wasbs://container@storageaccount.blob.core.windows.net

然后你设置你的变量:

blobEndpoint = dbutils.secrets.get("blob-secret","blob-endpoint")

blobKey = dbutils.secrets.get("blob-secret","blobl-access-key")

    dbutils.fs.mount(
  source = blobEndpoint,
  mount_point = "/mnt/blobmountsecret",
  extra_configs = `{"fs.azure.account.key.<storageaccountname>.blob.core.windows.net":blobKey})`
于 2019-07-11T02:31:12.310 回答