【问题标题】:How you do use Secrets in a Connection String Azure Release Pipeline - Using Azure App Service Settings Task如何在连接字符串中使用机密 Azure 发布管道 - 使用 Azure 应用服务设置任务
【发布时间】:2021-06-17 14:58:11
【问题描述】:

我在 Web 应用的发布管道中使用 Azure 应用服务设置任务。我需要设置连接字符串。

根据帮助图标,它需要 JSON 语法

 {
    "name": "key1",
    "value": "valueabcd",
    "type": "MySql",
    "slotSetting": false
   }

我想从我已链接到 Azure Key Vault 的变量组或从 KeyVault 甚至只是一个管道变量中提取“值”。我只是希望它是安全的。

我遇到的问题是如何将一个变量传递给 JSON,如果它是一个秘密。如果我做这样的事情

   {
    "name": "ConnectionStringName",
    "value": "$(DBConnectionString)",
    "type": "SQLAzure",
    "slotSetting": false
   }

那么连接字符串实际上就是 $(DBConnectionString)。您不能删除引号,因为它不是正确的 JSON。它与它的秘密有关,因为它与常规变量一起工作得很好。我已经阅读了几篇关于如何以不同方式使用秘密的文章,但我无法将它们应用到我正在做的事情中。

我提供了一个屏幕截图来帮助解释我在哪里看到的。

【问题讨论】:

    标签: azure azure-devops azure-pipelines-release-pipeline


    【解决方案1】:

    我用这个运行发布管道:

    [
            {
              "name": "MysqlCredentials",
              "value": "$(MySQl_ConnectionString)",
              "type": "MySql",
              "slotSetting": false
            }
          ]
    

    在变量中设置变量:

    然后我得到:

    因此,如果您没有替换它,则可能意味着您没有定义变量。

    我把它保密了:

    它仍然有效:

    【讨论】:

    • 如果您将该变量设置为“安全”,它将无法工作。尝试单击变量上的锁,然后运行它。对我来说,当它成为秘密时,它不会改变,这是我所读到的设计
    • 嗯,我想知道为什么我的不工作。马上回去试试
    • 你是 100% 正确的。我尝试了多次,但一定是在此过程中犯了一个小错误或拼写错误,使问题看起来比实际更大。感谢您的帮助和健全性检查
    • @washburnj 不用担心。我很高兴能帮助你。如果我的回复对您有帮助,您是否也可以考虑点赞?
    【解决方案2】:

    我想出了一个适用于我的场景的解决方案。我将连接字符串放在 Vault 中,并在我的 Azure App Service Settings 任务之前添加了 Azure Key Vault 任务,然后标准变量 sub 起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多