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

Azure Functions(S1计划)Key Vault引用密钥刷新异常咨询

S1标准计划(VNet集成)下Key Vault密钥更新未生效的解决建议

针对你切换到S1标准应用服务计划(启用VNet集成)后,Key Vault密钥更新重启Function App仍未生效的问题,以下是具体排查和解决方向:

1. 触发应用完全回收,清除运行时缓存

S1专用计划的缓存策略和Y1动态计划不同,普通重启可能无法清除内存中的密钥缓存:

  • 通过Kudu控制台执行缓存清除操作:对于.NET应用,可运行 dotnet dev-certs https --clean;或直接删除 D:\home\site\wwwroot 下的临时缓存文件(注意不要误删业务代码)。
  • 使用Azure CLI强制重启:az functionapp restart --name <你的函数名称> --resource-group <资源组名称> --force

2. 验证VNet集成下的Key Vault访问配置

启用VNet后需确认权限和网络规则是否正常:

  • 检查Key Vault防火墙是否允许Function App所在VNet的子网访问,确保子网的网络规则已正确配置。
  • 确认Function App的身份(系统/用户分配)拥有Key Vault密钥的Get权限,且权限已生效(权限添加后可能需等待5-10分钟,或手动刷新Key Vault权限缓存)。

3. 检查Key Vault引用的版本配置

如果应用配置中指定了密钥版本:

  • 更新密钥后必须同步修改配置中的版本号,否则会一直拉取旧版本密钥;若未指定版本,默认会拉取最新版本,但缓存可能导致延迟。
    正确引用格式示例:
@Microsoft.KeyVault(SecretUri=https://<密钥库名称>.vault.azure.net/secrets/<密钥名称>)

4. 重启应用服务计划实例

S1计划的专用实例可能存在实例级缓存,仅重启Function App不够:

  • 在Azure门户进入对应的应用服务计划,选择所有实例执行重启操作。
  • 使用PowerShell命令:Restart-AzAppServicePlan -ResourceGroupName <资源组名称> -Name <计划名称>

5. 排查代码本地缓存逻辑

通过Kudu验证密钥解析状态后:

  • 如果Kudu显示密钥已更新但代码执行失败,需检查代码中是否存在本地缓存密钥的逻辑(比如存入静态变量、本地内存缓存),这类缓存不会随应用重启自动清除,需修改代码在每次使用时重新读取配置。

内容的提问来源于stack exchange,提问作者Axel Andersen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:36:18