簡體   English   中英

ARM模板API管理部署策略內容

[英]ARM Template API Management Deploy PolicyContent

我正在嘗試使用ARM模板來部署我的API管理服務,並使除policyContent之外的所有內容正常工作。 基本上,它希望policyContent為“ Json轉義了策略的Xml編碼內容”。 這很難維護,並試圖找到一種獲取XML文件並將內容注入此字符串的方法,或者是更好的方法。 我不想寫一個程序來維護這些字符串,因為它看起來應該不太復雜。

政策參考

字符串示例

{ "name": "policy", "type": "Microsoft.ApiManagement/service/apis/policies", "apiVersion": "2017-03-01", "properties": { "policyContent": "string" } }

您可以將策略維護到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模板中的任何本機都無法幫助您)是從文件中讀取輸入並將其轉換為JSON:

$xml = (Get-Content file -Raw).ToString()
($xml | ConvertTo-Json -Compress) -replace '\\u003c','<' ) -replace '\\u003e','>'

如果不將那些unicode替換回<> ,可能會起作用,不知道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM