gpt4 book ai didi

使用 KeyVault 进行 Azure 应用服务 JSON 转换

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

我正在考虑将 .Net Core WebApi 服务部署到 Azure 应用服务,作为部署的一部分,我希望使用 CosmosDb 连接字符串更新 appsettings.json 中的连接字符串。我有一个 Azure KeyVault,其中将连接字符串作为 secret 存储在其中。

使用 YAML 构建管道进行 CI/CD 我的管道中有以下内容(片段)

          - task: AzureKeyVault@1
inputs:
azureSubscription: '<service-principal>'
KeyVaultName: '<keyvault-name>'
SecretsFilter: '*'
RunAsPreJob: true

- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: '<service-principal>'
appType: 'webApp'
WebAppName: '<ci-resource-group>'
VirtualApplication: '/'
packageForLinux: '$(System.DefaultWorkingDirectory)/**/*.zip'
JSONFiles: '**/appsettings.json'

这两个任务处于从下载前一阶段已发布的工件开始的阶段。

因此,Azure 应用服务部署任务可以进行 JSON 转换,但我需要定义一个格式为 ConnectionStrings:CosmosDb 的变量,其中包含存储在 keyvault 中的 secret 值,但我不确定该怎么做!

  • 首先,这是正确的方法吗?我看过有关在 keyvault 中使用 key 引用的文章,这是正确的方法吗?
  • keyvault secret 可使用 $(secret) 供管道使用,如何为上述 AzureRmWebAppDeployment@4 任务创建变量?

到目前为止,我发现的所有内容都指向经典发布管道,并使用变量组,但这需要成为 YAML 管道的一部分。

最佳答案

遵循 docs

To substitute values in nested levels of the file, concatenate the names with a period (.) in hierarchical order.

但是您的 secret 名称中不能有点,因此您必须在这两个步骤之间进行小重写:

- powershell: |
echo "##vso[task.setvariable variable=ConnectionStrings.CosmosDb;]$(ConnectionStrings-CosmosDb)"

你的 secret 在哪里ConnectionStrings-CosmosDb

关于使用 KeyVault 进行 Azure 应用服务 JSON 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63630797/

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