ADF调用API更新Key Vault密钥遇BadParameter错误求助
解决ADF调用Key Vault API添加密钥时的BadParameter错误
问题根源
你请求体里的value字段是嵌套JSON结构,但直接写入时,内部双引号会和外层JSON的双引号冲突,导致整个请求体的JSON格式非法,Key Vault API无法解析,因此返回Property value has invalid value错误。
比如你原来的请求体:
{ "value":"{"Item1":"Item1Value","Item2":"Item2Value"}" }
这里内部的"Item1"双引号会和外层"value":"的双引号错误配对,破坏了JSON的结构完整性。
修复方案
方法1:手动转义嵌套JSON的双引号
把内部JSON字符串里的所有双引号前添加反斜杠\,让外层JSON识别这是字符串的一部分:
{ "value":"{\"Item1\":\"Item1Value\",\"Item2\":\"Item2Value\"}" }
方法2:用ADF表达式自动处理(更推荐)
如果嵌套JSON来自ADF变量或动态内容,不要手动拼接字符串,使用string()函数将JSON对象转换为合法的转义字符串:
假设你有一个存储目标JSON的变量@variables('mySecretValue'),请求体可写成:
{ "value": "@string(variables('mySecretValue'))" }
ADF会自动处理转义逻辑,生成符合要求的请求体。
额外注意事项
- 修正API URL:你当前的URL包含双斜杠
//,建议改为单斜杠格式https://dmkeyvault1.vault.azure.net/secrets/SecretName?api-version=7.4,避免潜在的解析问题。 - 确认Web活动的请求体格式设置为
application/json,否则Key Vault API可能无法正确解析请求内容。
内容的提问来源于stack exchange,提问作者Dmitriy Ryabin
相关产品推荐
相关产品推荐

