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

Azure API Management Extractor工具无法提取含Key Vault值的命名值

解决Azure API Management Extractor工具忽略Key Vault类型命名值的问题

问题分析

当前你使用的extractor工具默认仅处理secret类型的命名值,对于存储在Key Vault中的命名值(ARM模板中表现为properties.value包含keyVault对象的结构),工具的逻辑未覆盖这类场景,导致提取时被过滤跳过。

修复方案

1. 修改Extractor工具源码适配Key Vault类型

如果你使用的是官方Azure API Management DevOps Resource Kit中的extractor:

  • 定位到工具源码的src/Extractor/Extractors目录下处理命名值的模块文件
  • 查找过滤命名值的逻辑代码,找到判断类型的条件分支
  • 修改条件,将Key Vault类型的命名值纳入提取范围(识别properties.value.keyVault字段的存在)
  • 重新编译工具后使用

2. 用自定义脚本直接提取所有命名值

若不想修改官方工具,可通过Azure Management API编写脚本直接获取全量命名值:

  • 调用API:GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/namedValues
  • 遍历返回结果,导出为所需格式
  • 示例PowerShell代码片段:
$apiMgmtName = "你的APIM实例名"
$resourceGroup = "你的资源组名"
$subId = "你的订阅ID"

$namedValues = az rest --method get --uri "/subscriptions/$subId/resourceGroups/$resourceGroup/providers/Microsoft.ApiManagement/service/$apiMgmtName/namedValues?api-version=2023-03-01-preview" | ConvertFrom-Json

# 导出为ARM模板格式
$armTemplate = @{
    "$schema" = "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#"
    contentVersion = "1.0.0.0"
    resources = $namedValues.value
}

$armTemplate | ConvertTo-Json -Depth 10 | Out-File "named-values-all.json"

3. 向官方仓库反馈或提交修复

确认是工具bug后,可到官方仓库提交Issue,说明Key Vault类型命名值被忽略的问题并附上相关模板结构信息;若已完成代码修复,可提交Pull Request协助官方完善功能。

验证方式

修改后重新运行提取流程,检查生成的输出文件,确认Key Vault类型的命名值被正确包含且结构与原资源一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 13:09:58