从源代码管理中分离ConnectionString并能够在Azure CI / CD管道中执行集成测试

问题描述 投票:0回答:2

我有一个WebAPI项目,正在使用Azure CI / CD管道将其部署在Azure中。该项目包含单元测试和集成测试。对于集成测试,它需要访问数据库。但是由于我不想将连接字符串签入到源代码管理中,因此构建管道将始终失败。

所以,问题是存在哪些解决方案/功能或变通办法可以帮助我完成此方案?

azure azure-devops database-connection azure-pipelines
2个回答
0
投票

您可以使用令牌替换任务来为配置文件提供连接字符串。为此,您需要安装并添加token replace task

并且对于此配置:

enter image description here

您需要有这样的appsettings.json

{
  "ConnectionStrings": {
    "BloggingDatabase": "#{ConnectionString}#"
  },
}

并且在您的管道中,请变量ConnectionString

Variable Azure DevOps

您还可以在Azure KeyVault中使用变量组。对于该方法,请检查this blog post


0
投票

Azure Key Vault是安全存储数据库服务器凭据之类的秘密的好地方;这使它们脱离了源代码控制。

一般方法是:

  1. 预先,将数据库服务器密码另存为密钥库密码
  2. 在管道中,使用Azure Key Vault task获取数据库服务器密码;现在可以在管道中将其用作秘密变量
  3. 在后续任务中使用数据库服务器密码;可以直接或通过替代Krzysztof Madej的答案中所述的应用设置
© www.soinside.com 2019 - 2024. All rights reserved.