단방향 요청 전송

적용 대상: 모든 API Management 계층

send-one-way-request 정책은 지정된 URL에 대한 제공된 응답을 기다리지 않고 요청을 보냅니다.

참고 항목

정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.

정책 문

<send-one-way-request mode="new | copy" timeout="time in seconds">
  <set-url>request URL</set-url>
  <set-method>...</set-method>
  <set-header>...</set-header>
  <set-body>...</set-body>
  <authentication-certificate thumbprint="thumbprint" />
</send-one-way-request>

특성

특성 설명 필수 항목 기본값
mode new 요청인지, 아니면 현재 요청에 있는 헤더와 본문의 copy인지 결정합니다. 아웃바운드 정책 섹션에서 mode=copy는 요청 본문을 초기화하지 않습니다. 정책 식이 허용됩니다. 아니요 new
시간 제한 URL 호출이 실패하는 시간 초과 간격(초)입니다. 정책 식이 허용됩니다. 아니요 60

Elements

요소 설명 필수
set-url 요청의 URL입니다. 정책 식이 허용됩니다. mode=copy인 경우 아니요이고, 그렇지 않으면 예입니다.
set-method 요청 방법을 설정합니다. 정책 식은 허용되지 않습니다. mode=copy인 경우 아니요이고, 그렇지 않으면 예입니다.
set-header 요청에 헤더를 설정합니다. 여러 요청 헤더에는 여러 set-header 요소를 사용합니다. 아니요
set-body 요청 본문을 설정합니다. 아니요
인증-인증서 클라이언트 인증에 사용할 인증서thumbprint 특성에 지정됩니다. 아니요
프록시 HTTP 프록시를 통해 요청을 라우팅합니다. 아니요

사용

예시

이 예제에서는 HTTP 응답 코드가 500 이상인 경우 send-one-way-request 정책을 사용하여 Slack 대화방에 메시지를 보냅니다. 이 샘플에 대한 자세한 내용은 Azure API Management 서비스에서 외부 서비스 사용을 참조하세요.

<choose>
    <when condition="@(context.Response.StatusCode >= 500)">
      <send-one-way-request mode="new" timeout="20">
        <set-url>https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX</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>

정책 작업에 대한 자세한 내용은 다음을 참조하세요.