首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用KeyVault的Azure应用服务JSON转换

使用KeyVault的Azure应用服务JSON转换
EN

Stack Overflow用户
提问于 2020-08-28 09:10:14
回答 1查看 385关注 0票数 1

我正在考虑将.Net核心WebApi服务部署到Azure,作为部署的一部分,我非常希望用CosmosDb连接字符串更新appsettings.json中的连接字符串。我有一个Azure KeyVault,它将连接字符串作为一个秘密存储在其中。

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

代码语言:javascript
复制
          - 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'

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

因此,任务可以执行JSON转换,但我需要定义一个ConnectionStrings:CosmosDb格式的变量,其中包含存储在密钥库中的秘密值,并且我不确定该如何做!

  • 第一,这做法是否正确?我看过关于在钥匙库中引用秘密的文章,这是正确的方式吗?
  • 密钥库秘密可用于使用$(secret)的管道,我如何为AzureRmWebAppDeployment@4任务创建一个变量,如前所述?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-28 09:47:13

跟随文档

若要替换文件嵌套级别中的值,请将名称与句点(.)连接起来。按等级顺序。

但是你的秘密不可能有点点滴滴的名字,所以你必须在这两步之间做一次小小的重写:

代码语言:javascript
复制
- powershell: |
     echo "##vso[task.setvariable variable=ConnectionStrings.CosmosDb;]$(ConnectionStrings-CosmosDb)"

你的秘密是ConnectionStrings-CosmosDb

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63630797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档