Azure Logic Apps를 사용 하 여 들어오는 HTTPS 호출 받기 및 응답Receive and respond to incoming HTTPS calls by using Azure Logic Apps

Azure Logic Apps 및 기본 제공 요청 트리거 또는 응답 작업을 사용 하 여 들어오는 HTTPS 요청을 수신 하 고 응답 하는 자동화 된 작업 및 워크플로를 만들 수 있습니다.With Azure Logic Apps and the built-in Request trigger or Response action, you can create automated tasks and workflows that receive and respond to incoming HTTPS requests. 예를 들어 논리 앱을 사용할 수 있습니다.For example, you can have your logic app:

  • 온-프레미스 데이터베이스에서 데이터에 대 한 HTTPS 요청을 수신 하 고 응답 합니다.Receive and respond to an HTTPS request for data in an on-premises database.
  • 외부 webhook 이벤트가 발생 하는 경우 워크플로를 트리거합니다.Trigger a workflow when an external webhook event happens.
  • 다른 논리 앱에서 HTTPS 호출을 받고 응답 합니다.Receive and respond to an HTTPS call from another logic app.

요청 트리거는 HTTPS 지원 합니다.The Request trigger supports only HTTPS. 대신 나가는 HTTP 또는 HTTPS 호출을 수행 하려면 기본 제공 http 트리거 또는 작업을 사용 합니다.To make outgoing HTTP or HTTPS calls instead, use the built-in HTTP trigger or action.

사전 요구 사항Prerequisites

요청 트리거 추가Add Request trigger

이 기본 제공 트리거 는 들어오는 https 요청만 수신할 수 있는 수동으로 호출할 수 있는 https 끝점을 만듭니다.This built-in trigger creates a manually callable HTTPS endpoint that can receive only incoming HTTPS requests. 이 이벤트가 발생 하면 트리거가 발생 하 고 논리 앱을 실행 합니다.When this event happens, the trigger fires and runs the logic app. 트리거의 기본 JSON 정의 및이 트리거를 호출 하는 방법에 대 한 자세한 내용은 요청 트리거 형식Azure Logic Apps에서 HTTP 끝점을 사용 하 여 워크플로 호출, 트리거 또는 중첩을 참조 하세요.For more information about the trigger's underlying JSON definition and how to call this trigger, see the Request trigger type and Call, trigger, or nest workflows with HTTP endpoints in Azure Logic Apps.

  1. Azure Portal에 로그인합니다.Sign in to the Azure portal. 빈 논리 앱을 만듭니다.Create a blank logic app.

  2. 논리 앱 디자이너가 열리면 검색 상자에 "http 요청"을 필터로 입력 합니다.After Logic App Designer opens, in the search box, enter "http request" as your filter. 트리거 목록에서 논리 앱 워크플로의 첫 단계인 HTTP 요청을 받을 때 트리거를 선택 합니다.From the triggers list, select the When an HTTP request is received trigger, which is the first step in your logic app workflow.

    요청 트리거 선택

    요청 트리거는 다음과 같은 속성을 표시 합니다.The Request trigger shows these properties:

    요청 트리거

    속성 이름Property name JSON 속성 이름JSON property name 필요한 공간Required 설명Description
    HTTP 게시 URLHTTP POST URL {없음}{none} Yes 논리 앱을 저장 한 후에 생성 되 고 논리 앱을 호출 하는 데 사용 되는 끝점 URL입니다.The endpoint URL that's generated after you save the logic app and is used for calling your logic app
    요청 본문 JSON 스키마Request Body JSON Schema schema 아니요No 들어오는 요청 본문의 속성 및 값을 설명 하는 JSON 스키마입니다.The JSON schema that describes the properties and values in the incoming request body
  3. 필요에 따라 본문 Json 스키마 요청 상자에서 들어오는 요청의 본문을 설명 하는 JSON 스키마를 입력 합니다. 예를 들면 다음과 같습니다.In the Request Body JSON Schema box, optionally enter a JSON schema that describes the body in the incoming request, for example:

    JSON 스키마 예제

    디자이너는이 스키마를 사용 하 여 요청에서 속성에 대 한 토큰을 생성 합니다.The designer uses this schema to generate tokens for the properties in the request. 이렇게 하면 논리 앱에서 트리거를 통해 요청에서 데이터를 구문 분석 하 고, 사용 하 고, 전달할 수 있습니다.That way, your logic app can parse, consume, and pass along data from the request through the trigger into your workflow.

    샘플 스키마는 다음과 같습니다.Here is the sample schema:

    {
       "type": "object",
       "properties": {
          "account": {
             "type": "object",
             "properties": {
                "name": {
                   "type": "string"
                },
                "ID": {
                   "type": "string"
                },
                "address": {
                   "type": "object",
                   "properties": {
                      "number": {
                         "type": "string"
                      },
                      "street": {
                         "type": "string"
                      },
                      "city": {
                         "type": "string"
                      },
                      "state": {
                         "type": "string"
                      },
                      "country": {
                         "type": "string"
                      },
                      "postalCode": {
                         "type": "string"
                      }
                   }
                }
             }
          }
       }
    }
    

    JSON 스키마를 입력 하면 요청에 헤더를 Content-Type 포함 하 고 해당 헤더 값을로 application/json설정 하는 미리 알림이 디자이너에 표시 됩니다.When you enter a JSON schema, the designer shows a reminder to include the Content-Type header in your request and set that header value to application/json. 자세한 내용은 콘텐츠 형식 처리를 참조 하세요.For more information, see Handle content types.

    "Content-type" 헤더를 포함 하는 미리 알림

    JSON 형식의이 헤더는 다음과 같습니다.Here's what this header looks like in JSON format:

    {
       "Content-Type": "application/json"
    }
    

    예상 페이로드 (데이터)를 기반으로 하는 JSON 스키마를 생성 하려면 JSONSchema.net와 같은 도구를 사용 하거나 다음 단계를 수행할 수 있습니다.To generate a JSON schema that's based on the expected payload (data), you can use a tool such as JSONSchema.net, or you can follow these steps:

    1. 요청 트리거에서 샘플 페이로드를 사용하여 스키마 생성을 선택합니다.In the Request trigger, select Use sample payload to generate schema.

      페이로드에서 스키마 생성

    2. 샘플 페이로드를 입력 하 고 완료를 선택 합니다.Enter the sample payload, and select Done.

      페이로드에서 스키마 생성

      샘플 페이로드는 다음과 같습니다.Here is the sample payload:

      {
         "account": {
            "name": "Contoso",
            "ID": "12345",
            "address": { 
               "number": "1234",
               "street": "Anywhere Street",
               "city": "AnyTown",
               "state": "AnyState",
               "country": "USA",
               "postalCode": "11111"
            }
         }
      }
      
  4. 추가 속성을 지정 하려면 새 매개 변수 추가 목록을 열고 추가 하려는 매개 변수를 선택 합니다.To specify additional properties, open the Add new parameter list, and select the parameters that you want to add.

    속성 이름Property name JSON 속성 이름JSON property name 필요한 공간Required 설명Description
    메서드Method method 아니요No 들어오는 요청에서 논리 앱을 호출 하는 데 사용 해야 하는 메서드입니다.The method that the incoming request must use to call the logic app
    상대 경로Relative path relativePath 아니요No 논리 앱의 끝점 URL에서 수락할 수 있는 매개 변수의 상대 경로입니다.The relative path for the parameter that the logic app's endpoint URL can accept

    이 예제에서는 메서드 속성을 추가 합니다.This example adds the Method property:

    메서드 매개 변수 추가

    메서드 속성은 목록에서 메서드를 선택할 수 있도록 트리거에 표시 됩니다.The Method property appears in the trigger so that you can select a method from the list.

    방법 선택

  5. 이제 워크플로의 다음 단계로 다른 작업을 추가 합니다.Now, add another action as the next step in your workflow. 트리거 아래에서 추가 하려는 작업을 찾을 수 있도록 다음 단계 를 선택 합니다.Under the trigger, select Next step so that you can find the action that you want to add.

    예를 들어 사용자 지정 된 응답을 반환 하는 데 사용할 수 있으며이 항목의 뒷부분에서 설명 하는 응답 작업을 추가하 여 요청에 응답할 수 있습니다.For example, you can respond to the request by adding a Response action, which you can use to return a customized response and is described later in this topic.

    논리 앱은 1 분 동안만 들어오는 요청을 열어 둡니다.Your logic app keeps the incoming request open only for one minute. 논리 앱 워크플로에 응답 작업이 포함 되어 있다고 가정 하면 논리 앱이이 시간 경과 후 응답을 반환 하지 않는 경우 논리 앱은를 504 GATEWAY TIMEOUT 호출자에 게 반환 합니다.Assuming that your logic app workflow includes a Response action, if the logic app doesn't return a response after this time passes, your logic app returns a 504 GATEWAY TIMEOUT to the caller. 그렇지 않고 논리 앱에 응답 동작이 포함 되지 않은 경우 논리 앱은 즉시 호출자에 게 202 ACCEPTED 응답을 반환 합니다.Otherwise, if your logic app doesn't include a Response action, your logic app immediately returns a 202 ACCEPTED response to the caller.

  6. 완료되면 논리 앱을 저장합니다.When you're done, save your logic app. 디자이너 도구 모음에서 저장을 선택합니다.On the designer toolbar, select Save.

    이 단계에서는 논리 앱을 트리거하는 요청을 보내는 데 사용할 URL을 생성 합니다.This step generates the URL to use for sending the request that triggers the logic app. 이 URL을 복사 하려면 URL 옆에 있는 복사 아이콘을 선택 합니다.To copy this URL, select the copy icon next to the URL.

    논리 앱을 트리거하는 데 사용할 URL

  7. 논리 앱을 트리거하려면 생성 된 URL에 HTTP POST를 보냅니다.To trigger your logic app, send an HTTP POST to the generated URL. 예를 들어 Postman과 같은 도구를 사용할 수 있습니다.For example, you can use a tool such as Postman.

트리거 출력Trigger outputs

요청 트리거의 출력에 대 한 자세한 내용은 다음과 같습니다.Here's more information about the outputs from the Request trigger:

JSON 속성 이름JSON property name 데이터 형식Data type 설명Description
headers ObjectObject 요청의 헤더를 설명 하는 JSON 개체입니다.A JSON object that describes the headers from the request
body ObjectObject 요청의 본문 콘텐츠를 설명 하는 JSON 개체입니다.A JSON object that describes the body content from the request

응답 동작 추가Add a Response action

응답 작업을 사용 하 여 들어오는 HTTPS 요청에 대 한 페이로드 (데이터)에 응답 하 고 HTTPS 요청에 의해 트리거되는 논리 앱 에서만 응답을 받을 수 있습니다.You can use the Response action to respond with a payload (data) to an incoming HTTPS request but only in a logic app that's triggered by an HTTPS request. 워크플로의 어떤 지점에서 든 응답 작업을 추가할 수 있습니다.You can add the Response action at any point in your workflow. 이 트리거에 대 한 기본 JSON 정의에 대 한 자세한 내용은 응답 작업 형식을 참조 하세요.For more information about the underlying JSON definition for this trigger, see the Response action type.

논리 앱은 1 분 동안만 들어오는 요청을 열어 둡니다.Your logic app keeps the incoming request open only for one minute. 논리 앱 워크플로에 응답 작업이 포함 되어 있다고 가정 하면 논리 앱이이 시간 경과 후 응답을 반환 하지 않는 경우 논리 앱은를 504 GATEWAY TIMEOUT 호출자에 게 반환 합니다.Assuming that your logic app workflow includes a Response action, if the logic app doesn't return a response after this time passes, your logic app returns a 504 GATEWAY TIMEOUT to the caller. 그렇지 않고 논리 앱에 응답 동작이 포함 되지 않은 경우 논리 앱은 즉시 호출자에 게 202 ACCEPTED 응답을 반환 합니다.Otherwise, if your logic app doesn't include a Response action, your logic app immediately returns a 202 ACCEPTED response to the caller.

  1. 논리 앱 디자이너에서 응답 작업을 추가 하려는 단계 아래에 있는 새 단계를 선택 합니다.In the Logic App Designer, under the step where you want to add a Response action, select New step.

    예를 들어 앞에서 요청 트리거를 사용 합니다.For example, using the Request trigger from earlier:

    새 단계 추가

    단계 사이에 작업을 추가 하려면 해당 단계 사이의 화살표 위로 포인터를 이동 합니다.To add an action between steps, move your pointer over the arrow between those steps. 표시 되는 더하기 기호 + ()를 선택 하 고 작업 추가를 선택 합니다.Select the plus sign (+) that appears, and then select Add an action.

  2. 작업 선택아래의 검색 상자에 "응답"을 필터로 입력 하 고 응답 작업을 선택 합니다.Under Choose an action, in the search box, enter "response" as your filter, and select the Response action.

    응답 작업을 선택 합니다.

    이 예제에서는 편의상 요청 트리거가 축소 되어 있습니다.The Request trigger is collapsed in this example for simplicity.

  3. 응답 메시지에 필요한 값을 추가 합니다.Add any values that are required for the response message.

    일부 필드에서 상자 내부를 클릭 하면 동적 콘텐츠 목록이 열립니다.In some fields, clicking inside their boxes opens the dynamic content list. 그런 다음 워크플로의 이전 단계에서 사용 가능한 출력을 나타내는 토큰을 선택할 수 있습니다.You can then select tokens that represent available outputs from previous steps in the workflow. 이전 예제에 지정 된 스키마의 속성은 이제 동적 콘텐츠 목록에 표시 됩니다.Properties from the schema specified in the earlier example now appear in the dynamic content list.

    예를 들어 헤더 상자의 경우이 항목의 Content-Type 앞부분에서 설명한 대로 키 이름으로를 포함 하 고 application/json 키 값을로 설정 합니다.For example, for the Headers box, include Content-Type as the key name, and set the key value to application/json as mentioned earlier in this topic. 본문 상자의 동적 콘텐츠 목록에서 트리거 본문 출력을 선택할 수 있습니다.For the Body box, you can select the trigger body output from the dynamic content list.

    응답 작업 세부 정보

    JSON 형식의 헤더를 보려면 텍스트 뷰로 전환을 선택 합니다.To view the headers in JSON format, select Switch to text view.

    머리글-텍스트 뷰로 전환

    응답 작업에서 설정할 수 있는 속성에 대 한 자세한 내용은 다음과 같습니다.Here is more information about the properties that you can set in the Response action.

    속성 이름Property name JSON 속성 이름JSON property name 필요한 공간Required 설명Description
    상태 코드Status Code statusCode Yes 응답에 반환할 상태 코드The status code to return in the response
    헤더Headers headers 아니요No 응답에 포함할 하나 이상의 헤더를 설명 하는 JSON 개체입니다.A JSON object that describes one or more headers to include in the response
    본문Body body 아니요No 응답 본문The response body
  4. 응답 본문에 대 한 JSON 스키마와 같은 추가 속성을 지정 하려면 새 매개 변수 추가 목록을 열고 추가 하려는 매개 변수를 선택 합니다.To specify additional properties, such as a JSON schema for the response body, open the Add new parameter list, and select the parameters that you want to add.

  5. 완료되면 논리 앱을 저장합니다.When you're done, save your logic app. 디자이너 도구 모음에서 저장을 선택합니다.On the designer toolbar, select Save.

다음 단계Next steps