我正在尝试使用ARM模板来部署我的应用程序接口管理服务,并使除policyContent之外的所有内容都正常工作。基本上,它希望policyContent为“策略的Json转义Xml编码内容”。这很难维护,并且试图找到一种方法来获取XML文件并将内容注入到这个字符串中,或者更好的方法。我希望不必编写程序来维护这些字符串,因为这感觉不应该如此复杂。
{ "name": "policy", "type": "Microsoft.ApiManagement/service/apis/policies", "apiVersion": "2017-03-01", "properties": { "policyContent": "string" } }
发布于 2018-06-26 14:46:21
您可以将策略维护到XML文件中,并按如下方式引用它:
{
"apiVersion": "2018-01-01",
"name": "policy",
"type": "Microsoft.ApiManagement/service/policies",
"properties": {
"policyContent": "[concat(parameters('repoBaseUrl'), '/policy.xml')]",
"contentFormat": "rawxml-link"
},
"dependsOn": [
"[resourceId('Microsoft.ApiManagement/service/', parameters('ApimServiceName'))]"
]
}您的policy.xml文件必须联机可用,并且如下所示:
<policies>
<inbound>
<rate-limit calls="3" renewal-period="10" />
<base />
</inbound>
<outbound>
<base />
</outbound>
<backend>
<base />
</backend>
<on-error>
<base />
</on-error>
</policies>发布于 2018-02-18 05:08:24
好吧,我能想到的唯一一件事(因为arm模板中的原生内容无法帮助您)就是从文件中读取输入并将其转换为JSON:
$xml = (Get-Content file -Raw).ToString()
($xml | ConvertTo-Json -Compress) -replace '\\u003c','<' ) -replace '\\u003e','>'不需要把这些独居代码替换回<>,它可能也能工作,我不知道。
https://stackoverflow.com/questions/48845321
复制相似问题