以下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>。
该策略的定义与the Terraform documentation中的相同。
使用xml_content = "${file("xxx")}"时也会出现同样的错误。
除了找到不使用content.As<JObject>的解决方法外,如何继续
发布于 2019-06-26 21:26:46
多行语句(@{ })可以包含不友好的字符,但不能通过Terraform XML阅读器。
如果XML策略是按Terraform提供,则使用<和>。
https://stackoverflow.com/questions/56773966
复制相似问题