【问题标题】:Get Cosmos DB account primary account key/primary connection string with Azure cli/PowerShell使用 Azure cli/PowerShell 获取 Cosmos DB 帐户主帐户密钥/主连接字符串
【发布时间】:2021-11-06 15:59:32
【问题描述】:

我正在创建一个 Azure DevOps 发布管道,我想在其中获取 cosmos db 帐户的主帐户密钥/主连接字符串作为 Azue CLI 任务的一部分,并将其发布为任务变量,以便我可以使用它作为数据工厂 ARM 部署活动的参数,该活动是同一管道中的后续任务。 我用来获取密钥的代码是:

az cosmosdb keys list \
   --name <db_account_name> \
   --resource-group <resource_group_name> \
   --subscription <subscription_name> \
   --type connection-strings \
   --query 'connectionStrings[0].connectionString' \
   --output tsv

代码返回

AccountEndpoint=https://<db_account_name>.documents.azure.com:443/;AccountKey=***;

但它不显示帐户密钥内的字符串内容。

当我将其存储为任务变量并将其用于 ARM 任务时,我得到了错误。

  1. 如何通过属于 azure devops 管道的 Azure cli/tasks 获取 cosmos db 帐户主连接字符串/帐户密钥的文本内容?
  2. 是否需要更改用于从 Azure 管道访问 cosmos db 帐户的配置文件的 RBAC 角色?

【问题讨论】:

    标签: azure azure-devops azure-cosmosdb


    【解决方案1】:

    如何通过作为 azure devops 管道一部分的 azure cli/tasks 获取 cosmos db 帐户主连接字符串/帐户密钥的文本内容?

    我无法重现您的问题,它在我这边工作正常,AccountKey 以纯文本形式输出。

    我的内联脚本:

    $a = az cosmosdb keys list --name joycosmostest --resource-group <groupname> --subscription <subscription-id> --type connection-strings --query 'connectionStrings[0].connectionString' --output tsv
    
    echo "##vso[task.setvariable variable=connectionString;isOutput=true]$a"
    

    我是否需要更改用于从 azure 管道访问 cosmos db 帐户的配置文件的 RBAC 角色?

    在 Azure CLI 任务中,它使用 Azure 资源管理器服务连接来验证 Azure 服务,因此您应该确保服务连接中使用的服务主体在您的 cosmos db 帐户中具有正确的 RBAC 角色,例如Contributor.

    【讨论】:

      猜你喜欢
      • 2018-08-25
      • 2020-04-21
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 2022-01-02
      • 2021-05-12
      • 2018-12-20
      • 2017-05-01
      相关资源
      最近更新 更多