You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure多环境App Service间共享应用程序设置?

在Azure中跨App Service共享应用设置的几种方案

我之前也碰到过一模一样的需求——每次改个通用配置还要挨个点App Service去修改,实在太折腾了。Azure里有几个成熟的方案,能实现类似Octopus变量集那样的集中式共享配置,给你详细说说:

1. Azure App Configuration(最适合非敏感的共享配置)

这是Azure专门为集中管理应用配置推出的服务,完美匹配你的场景:

  • 先创建一个App Configuration实例,在里面添加你的通用键值对(比如密钥A);
  • 给每个App Service配置引用这个实例:可以在App Service的「配置」->「应用程序设置」里添加连接字符串(或者用托管标识更安全,不用暴露连接串),然后通过应用代码或App Service的配置扩展读取App Configuration里的配置;
  • 后续要修改密钥A的值,直接在App Configuration里改一次,所有关联的App Service都会自动获取最新值(还能设置刷新间隔,不用重启服务);
  • 另外还能结合标签、环境分层,比如通用配置放在根路径,不同环境的专属配置加环境标签,兼顾共享和个性化需求。

2. Azure Key Vault(适合敏感密钥的共享管理)

如果你的密钥A是敏感信息(比如API密钥、数据库密码),用Key Vault会更安全:

  • 创建一个Key Vault实例,把密钥A作为机密存储进去;
  • 给每个App Service启用系统分配的托管标识,然后在Key Vault的「访问策略」里给这些标识授予「机密读取」权限;
  • 回到每个App Service的「应用程序设置」,添加设置项,值用@Microsoft.KeyVault(SecretUri=https://你的vault名称.vault.azure.net/secrets/密钥A的名称/)这种格式引用;
  • 以后要更新密钥A,只需要在Key Vault里更新机密版本,所有App Service会自动拉取最新值,完全不用碰各个服务的配置。

3. 基础设施即代码(ARM/Bicep)

如果你用CI/CD来管理App Service的部署,用ARM模板或者Bicep统一管理变量是个高效的办法:

  • 在Bicep的变量文件(或者ARM的参数文件)里定义共享变量,比如sharedKeyA: 'xxx';
  • 每个App Service的部署模板里引用这个变量来设置应用程序设置;
  • 后续要修改密钥A的值,只需要更新变量文件,然后重新部署所有相关的App Service(可以用CI/CD流水线批量触发),就能统一完成更新。

4. CI/CD工具的变量组(比如Azure DevOps)

如果你的部署流程已经在Azure DevOps里,用变量组就能轻松实现共享:

  • 在Azure DevOps的「库」里创建一个变量组,把密钥A添加进去(可以设置为保密变量);
  • 在每个App Service的部署流水线里,引用这个变量组;
  • 部署的时候,把变量组里的密钥A映射到App Service的应用程序设置中;
  • 以后要改值,直接更新变量组里的内容,下次部署时就会同步到所有服务;如果需要即时生效,也可以手动触发所有相关流水线的部署。

这些方案各有侧重,你可以根据自己的场景选择:通用非敏感配置优先选App Configuration;敏感信息用Key Vault;如果已经用IaC或CI/CD流程,就对应选后面两种。

内容的提问来源于stack exchange,提问作者Lassi Autio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:35:02