다음을 통해 공유


단방향 요청 전송

적용 대상: 모든 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>

특성

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

요소들

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

사용

사용 현황 정보

  • 아웃바운드 섹션에서 여러 send-one-way-request 정책을 사용하는 것은 자체 호스팅 게이트웨이에서 지원되지 않습니다.

예시

이 예제에서는 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>

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