Что не так с отправленным односторонним запросом в управлении Azure Api

У нас возникли проблемы с выполнением нашей политики.

Мы хотим войти во внешнюю сторону (Loggly) в случае ошибок выше или равных 400. Мы думаем, что это обрабатывается в исходящем разделе и может быть достигнуто с помощью запроса send-one-way-request. Также мы попытались войти через раздел политики, посвященный ошибкам.

Код:

<policies>
    <inbound>
    </inbound>
    <backend>
    </backend>
    <outbound>
            <choose>
                <when condition="@(context.Response.StatusCode >= 400)">
                    <send-one-way-request mode="new">
                        <set-url>http://logs-01.loggly.com/inputs/<uid>/tag/Api_Azure</set-url>
                        <set-method>POST</set-method>
                        <set-body>@{
                            return new JObject(
                                    new JProperty("username","APIM Alert"),
                                    new JProperty("icon_emoji", ":ghost:"),
                                    new JProperty("text", String.Format("{0} {1}\nHost: {2}\n{3} {4}\n User: {5}",
                                                            context.Request.Method,
                                                            context.Request.Url.Path + context.Request.Url.QueryString,
                                                            context.Request.Url.Host,
                                                            context.Response.StatusCode,
                                                            context.Response.StatusReason,
                                                            context.User.Email
                                                            ))
                                    ).ToString();
                        }</set-body>
                    </send-one-way-request>
                </when>
            </choose>
        </outbound>
        <on-error>
            <send-one-way-request mode="new">
                <set-url>http://logs-01.loggly.com/inputs/<uid>/tag/Api_Azure</set-url>
                <set-method>POST</set-method>
                <set-body>TEST outbound ERROR: @(context.LastError.Message)</set-body>
            </send-one-way-request>
        </on-error>
</policies>

Результатом этой политики является то, что запрос был отправлен через send-one-way-request, но в этом случае использовался URL-адрес, а не исходный URL-адрес в теге set-url.

У кого-нибудь есть идеи, что не так?

1 ответ

Решение

Что произойдет, если вы попытаетесь выполнить тот же запрос с включенной трассировкой? https://azure.microsoft.com/en-us/documentation/articles/api-management-howto-api-inspector/

Другие вопросы по тегам