다음을 통해 공유


Azure Logic Apps의 워크플로에서 REST API 엔드포인트 호출

적용 대상: Azure Logic Apps(사용량 + 표준)

Azure Logic Apps의 논리 앱 워크플로에서 REST API 엔드포인트를 호출하려면 기본 제공 HTTP + Swagger 작업을 사용하여 Swagger 파일을 통해 REST API 엔드포인트를 호출할 수 있습니다. HTTP + Swagger 트리거 및 작업은 HTTP 트리거 및 작업과 동일하게 작동하지만 Swagger 파일에서 설명하는 API 구조 및 출력을 노출하여 워크플로 디자이너에 더 나은 환경을 제공합니다. 폴링 트리거를 구현하려면 논리 앱 워크플로에서 다른 API, 서비스 및 시스템을 호출하기 위한 사용자 지정 API 만들기에 설명된 폴링 패턴을 따릅니다.

제한 사항

HTTP + Swagger 기본 제공 작업은 현재 OpenAPI 3.0이 아닌 OpenAPI 2.0만 지원합니다.

필수 조건

  • Azure 계정 및 구독 Azure 구독이 없는 경우 체험 Azure 계정에 등록합니다.

  • 호출하려는 대상 REST API 엔드포인트를 설명하는 Swagger 파일의 URL

    일반적으로 REST 엔드포인트에서 트리거 또는 작업이 작동하려면 다음 조건을 충족해야 합니다.

    • Swagger 파일은 공개적으로 액세스할 수 있는 HTTPS URL에 호스팅해야 합니다.

    • Swagger 파일에는 정의의 각 작업에 대한 operationID 속성이 포함되어야 합니다. 그렇지 않으면 커넥터가 Swagger 파일의 마지막 작업만 표시합니다.

    • Swagger 파일은 CORS(원본 간 리소스 공유)를 사용해야 합니다.

    참고 항목

    호스트되지 않았거나 보안 및 원본 간 요구 사항을 충족하지 않는 Swagger 파일을 참조하려면 Azure Storage 계정의 Blob 컨테이너에 Swagger 파일을 업로드하고 이 스토리지 계정에서 CORS를 사용하도록 설정하여 해당 파일을 참조할 수 있습니다.

  • 대상 엔드포인트를 호출하려는 사용량 또는 표준 논리 앱 워크플로입니다. HTTP + Swagger 웹후크 트리거를 시작하려면 빈 워크플로가 있는 논리 앱 리소스를 만듭니다. HTTP + Swagger 작업을 사용하려면 원하는 트리거를 사용하여 워크플로를 시작합니다. 이 예제에서는 첫 번째 작업으로 HTTP + Swagger 트리거를 사용합니다.

HTTP + Swagger 트리거 추가

이 기본 제공 트리거는 REST API를 설명하는 Swagger 파일의 URL에 HTTP 요청을 보냅니다. 그런 다음, 트리거는 해당 파일의 콘텐츠를 포함하는 응답을 반환합니다.

  1. Azure Portal에서 디자이너에서 논리 앱 리소스 및 빈 워크플로를 엽니다.

  2. 소비 또는 표준 워크플로가 있는지 여부에 따라 다음 일반적인 단계에 따라 HTTP + Swagger라는 HTTP 트리거를 추가합니다.

  3. Swagger 엔드포인트 상자에 원하는 Swagger 파일의 URL을 입력하고 작업 추가를 선택합니다.

    다음 예제에서는 작동하지 않는 Swagger URL을 사용합니다. URL은 다른 형식을 사용할 수 있습니다.

    스크린샷은 HTTP + Swagger 트리거에 대한 트리거 셰이프 및 정보 창 추가가 선택된 워크플로 디자이너를 보여줍니다. Swagger 엔드포인트 속성은 예제 URL로 설정됩니다.

  4. 디자이너가 Swagger 파일에 설명된 작업을 표시한 후 사용하려는 작업을 선택합니다.

  5. 선택한 작업에 따라 달라지는 트리거 매개 변수에 대해 엔드포인트 호출에 포함하려는 값을 제공합니다.

  6. 트리거에서 실행 일정을 지정해야 하는 경우 트리거가 엔드포인트를 호출할 빈도에 대한 되풀이를 지정합니다.

  7. 다른 사용 가능한 매개 변수를 추가하려면 고급 매개 변수 목록을 열고 원하는 매개 변수를 선택합니다.

    HTTP + Swagger에 사용 가능한 인증 유형에 대한 자세한 내용은 아웃바운드 호출에 인증 추가를 참조하세요.

  8. 트리거가 발생할 때 실행되는 작업을 사용하여 워크플로를 계속 작성합니다.

  9. 완료되면 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

HTTP + Swagger 동작 추가

이 기본 제공 작업은 REST API를 설명하는 Swagger 파일의 URL에 HTTP 요청을 보냅니다. 그런 다음, 작업은 해당 파일의 콘텐츠가 포함된 응답을 반환합니다.

  1. Azure Portal의 디자이너에서 논리 앱 리소스와 워크플로를 엽니다.

  2. 소비 또는 표준 워크플로가 있는지 여부에 따라 다음 일반적인 단계에 따라 HTTP + Swagger라는 HTTP 작업을 추가합니다.

  3. Swagger 엔드포인트 상자에 원하는 Swagger 파일의 URL을 입력하고 작업 추가를 선택합니다.

    다음 예제에서는 작동하지 않는 Swagger URL을 사용합니다. URL은 다른 형식을 사용할 수 있습니다.

    스크린샷은 Fabrikam API - HTTP + Swagger 작업에 대한 주문 만들기 및 정보 열기 창이라는 트리거가 있는 워크플로 디자이너를 보여줍니다. Swagger 엔드포인트 속성이 URL로 설정됩니다.

  4. 디자이너가 Swagger 파일에 설명된 작업을 표시한 후 사용하려는 작업을 선택합니다.

  5. 선택한 작업에 따라 달라지는 동작 매개 변수에 대해 엔드포인트 호출에 포함하려는 값을 제공합니다.

  6. 다른 사용 가능한 매개 변수를 추가하려면 고급 매개 변수 목록을 열고 원하는 매개 변수를 선택합니다.

    HTTP + Swagger에 사용 가능한 인증 유형에 대한 자세한 내용은 아웃바운드 호출에 인증 추가를 참조하세요.

  7. 실행하려는 다른 작업으로 워크플로를 계속 빌드합니다.

  8. 완료되면 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

Azure Storage에서 Swagger 호스트

호스트되지 않았거나 보안 및 원본 간 요구 사항을 충족하지 않는 Swagger 파일을 계속 참조할 수 있습니다. Azure 스토리지 계정의 Blob 컨테이너에 Swagger 파일을 업로드하고 해당 스토리지 계정에서 CORS를 사용하도록 설정합니다. Azure Storage에서 Swagger 파일을 만들고 설정하고 저장하려면 다음 단계를 수행합니다.

  1. Azure 스토리지 계정을 만듭니다.

  2. 이제 Blob에 CORS를 사용하도록 설정합니다. 스토리지 계정 메뉴에서 CORS를 선택합니다. Blob 서비스 탭에서 이러한 값을 지정하고 저장을 선택합니다.

    속성
    허용된 원본 *
    허용된 메서드 GET, , HEADPUT
    허용된 헤더 *
    노출된 헤더 *
    최대 기간(초) 200

    이 예제에는 Azure Portal을 사용하지만 Azure Storage Explorer 등의 도구를 사용하거나, 이 샘플 PowerShell 스크립트를 사용하여 이 설정을 자동으로 구성할 수 있습니다.

  3. Blob 컨테이너를 만듭니다. 컨테이너의 개요 창에서 액세스 수준 변경을 선택합니다. 공용 액세스 수준 목록에서 Blob(Blob에 대해서만 익명 읽기 액세스)을 선택하고 확인을 선택합니다.

  4. Azure Portal 또는 Azure Storage Explorer를 통해 Swagger 파일을 Blob 컨테이너에 업로드합니다.

  5. Blob 컨테이너에서 파일을 참조하려면 Azure Storage Explorer에서 대/소문자를 구분하는 다음 형식의 HTTPS URL을 가져옵니다.

    https://<storage-account-name>.blob.core.windows.net/<blob-container-name>/<complete-swagger-file-name>?<query-parameters>

커넥터 기술 참조

이 섹션에서는 HTTP + Swagger 트리거 및 작업의 출력에 대한 자세한 정보를 제공합니다.

출력

HTTP + Swagger 호출은 다음 정보를 반환합니다.

Property name 형식 설명
headers Object 요청의 헤더
body Object 요청의 본문 콘텐츠가 포함된 개체
상태 코드 정수 요청의 상태 코드
상태 코드 Description
200 OK
202 Accepted
400 Bad request
401 Unauthorized
403 금지
404 Not Found
500 내부 서버 오류입니다. 알 수 없는 오류 발생.