Обобщения в политике APIM нарушают Terraform - PullRequest
0 голосов
/ 26 июня 2019

Следующая политика APIM не может быть развернута через Terraform:

<policies>
    <inbound>
        <send-request mode="new" response-variable-name="xxx" timeout="20" ignore-error="true">
            <set-url>https://xxx/api/v1/xxx?code={{xxx}}</set-url>
            <set-method>GET</set-method>
        </send-request>
        <return-response>
            <set-status code="302" reason="Redirect" />
            <set-header name="Location" exists-action="override">
                <value>@{
                         var response = context;
                         IResponse variable = context.Variables["xxx"] as IResponse;
                         var content = variable.Body;
                         JObject obj = content.As<JObject>(); <------------ < and > characters
                         JProperty urlprop = obj.Property("xxx");
                         return "" + urlprop.Value;
                       }
                  </value>
            </set-header>
        </return-response>
    </inbound>
    ...
</policies>

Со следующей ошибкой: The 'JObject' start tag on line 15 position 26 does not match the end tag of 'value'. Line 18, position 4.

Это связано с content.As<JObject>.

Политика определяется как в документации Terraform .

Та же ошибка при использовании xml_content = "${file("xxx")}".

Как действовать, кроме поиска обходного путине использовать content.As<JObject>?

1 Ответ

0 голосов
/ 26 июня 2019

Многострочный оператор (@{ }) может содержать недружественные символы XML, но не через программу чтения Terraform XML.

Используйте &lt; и &gt;, если Terraform обеспечивает политику XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...