ARM 模板 API 管理部署策略内容
ARM Template API Management Deploy PolicyContent
我正在尝试使用 ARM 模板来部署我的 API 管理服务并使除 policyContent 之外的所有内容都正常工作。基本上它想要 policyContent 作为 "Json escaped Xml Encoded contents of the Policy." 这很难维护,并且试图找到一种方法来获取 XML 文件并将内容注入到这个字符串中,或者更好的方法。我希望不必编写程序来维护这些字符串,因为感觉不应该那么复杂。
{
"name": "policy",
"type": "Microsoft.ApiManagement/service/apis/policies",
"apiVersion": "2017-03-01",
"properties": {
"policyContent": "string"
}
}
好吧,我唯一能想到的(因为 arm 模板中的原生内容无法帮助您)是从文件中读取输入并将其转换为 JSON:
$xml = (Get-Content file -Raw).ToString()
($xml | ConvertTo-Json -Compress) -replace '\u003c','<' ) -replace '\u003e','>'
如果不将这些 unicode 替换回 <>
,它可能会起作用,不知道。
您可以将您的策略维护到一个 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>
我正在尝试使用 ARM 模板来部署我的 API 管理服务并使除 policyContent 之外的所有内容都正常工作。基本上它想要 policyContent 作为 "Json escaped Xml Encoded contents of the Policy." 这很难维护,并且试图找到一种方法来获取 XML 文件并将内容注入到这个字符串中,或者更好的方法。我希望不必编写程序来维护这些字符串,因为感觉不应该那么复杂。
{
"name": "policy",
"type": "Microsoft.ApiManagement/service/apis/policies",
"apiVersion": "2017-03-01",
"properties": {
"policyContent": "string"
}
}
好吧,我唯一能想到的(因为 arm 模板中的原生内容无法帮助您)是从文件中读取输入并将其转换为 JSON:
$xml = (Get-Content file -Raw).ToString()
($xml | ConvertTo-Json -Compress) -replace '\u003c','<' ) -replace '\u003e','>'
如果不将这些 unicode 替换回 <>
,它可能会起作用,不知道。
您可以将您的策略维护到一个 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>