다음을 통해 공유


Azure Logic Apps에서 메시지 보내기, 받기 및 일괄 처리

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

특정한 방식을 사용하여 메시지를 그룹으로 함께 보내고 처리하기 위해 일괄 처리 솔루션을 만들 수 있습니다. 이 솔루션에서는 일괄 처리된 메시지를 해제하고 처리하기 전에 지정된 조건이 충족될 때까지 메시지를 ‘일괄 처리’로 수집하고 대기합니다. 일괄 처리는 논리 앱에서 메시지를 처리하는 빈도를 줄일 수 있습니다.

이 방법 가이드에서는 동일한 Azure 구독, Azure 지역 내에서 다음 순서로 두 개의 논리 앱을 만들어 일괄 처리 솔루션을 빌드하는 방법을 보여 줍니다.

  1. "일괄 처리 수신자" 논리 앱은 해당 메시지 해제 및 처리에 대해 지정된 조건을 충족할 때까지 메시지를 허용하고 일괄 처리로 수집합니다. 먼저 일괄 처리 수신자를 만들어 나중에 일괄 처리 발신자를 만들 때 일괄 처리 대상을 선택할 수 있도록 합니다.

  2. 하나 이상의 "일괄 처리 발신자" 논리 앱은 이전에 만든 일괄 처리 수신자에게 메시지를 보냅니다.

    일괄 처리 발신자는 해당 키에 따라 대상 일괄 처리를 논리적 하위 집합으로 분할하거나 나누는 고유 키를 지정할 수 있습니다. 예를 들어 고객 번호는 고유 키입니다. 이런 방식으로 수신자 앱에서 동일한 키가 있는 모든 항목을 수집하고 함께 처리할 수 있습니다.

일괄 처리 수신자와 일괄 처리 발신자는 동일한 Azure 구독 Azure 지역을 공유해야 합니다. 그렇지 않은 경우 서로 표시되지 않기 때문에 일괄 처리 발신자를 만들 때 일괄 처리 수신자를 선택할 수 없습니다.

필수 조건

제한 사항

  • 릴리스된 콘텐츠와 원본을 비교하여 공개된 이후 일괄 처리로만 콘텐츠를 확인할 수 있습니다.

  • 트리거에 여전히 일괄 처리가 있는 동안 이 가이드에 설명된 대로 일괄 처리 수신기에서 릴리스 기준을 변경해야만 일괄 처리를 조기에 릴리스할 수 있습니다. 그러나 트리거는 전송되지 않은 메시지에 대해 업데이트된 릴리스 기준을 사용합니다.

일괄 처리 수신자 만들기

메시지를 일괄 처리로 보내려면 먼저 해당 일괄 처리가 해당 메시지를 보내는 대상으로 존재해야 합니다. 따라서 먼저 Batch 트리거로 시작하는 "일괄 처리 수신기" 논리 앱 워크플로를 만들어야 합니다. 이렇게 하면 "일괄 처리 발신자" 논리 앱 워크플로를 만들 때 일괄 처리 수신자 논리 앱 워크플로를 선택할 수 있습니다. 일괄 처리 수신자는 지정된 조건이 충족되어 해당 메시지를 해제하고 처리할 때까지 메시지 수집을 계속합니다. 일괄 처리 수신자는 일괄 처리 발신자에 대해 인식하고 있을 필요가 없지만, 일괄 처리 발신자는 메시지를 보내는 대상을 인식하고 있어야 합니다.

  1. Azure Portal에서 빈 워크플로를 사용하여 논리 앱 리소스를 만듭니다.

    이 예제에서는 BatchReceiver라는 일괄 처리 수신기 논리 앱 및 워크플로를 만듭니다.

  2. 워크플로 디자이너에서 트리거 추가를 선택하고 다음 일반적인 단계에 따라 Batch 트리거라는 Batch 작업 트리거를 추가합니다.

  3. 다음 트리거 속성을 설정합니다.

    속성 설명
    모드
    (소비 워크플로만 해당)
    - 인라인: 일괄 처리 트리거 내부에 해제 조건을 정의하는 경우

    - 통합 계정: 통합 계정을 통해 여러 릴리스 조건 구성을 정의합니다. 통합 계정을 사용하면 별도의 논리 앱 리소스가 아닌 한 곳에서 이러한 구성을 모두 유지할 수 있습니다.
    일괄 처리 이름 일괄 처리의 이름입니다. 소비 워크플로에서 이 속성은 모드가 인라인으로 설정된 경우에만 나타납니다. 이 예제에서는 TestBatch를 사용합니다.
    해제 조건 각 일괄 처리를 처리하기 전에 충족할 조건입니다. 기본적으로 일괄 처리 트리거는 일괄 처리 트리거 내에서 일괄 처리 릴리스 조건을 정의하는 "인라인 모드"를 사용하여 작동합니다.

    - 메시지 수 기반: 일괄 처리에서 수집된 메시지 수를 기반으로 일괄 처리를 해제합니다.

    - 크기 기반: 해당 일괄 처리에서 수집된 모든 메시지의 총 크기(바이트)를 기반으로 일괄 처리를 해제합니다.

    - 일정 기반: 간격 및 빈도를 지정하는 되풀이 일정에 따라 일괄 처리를 해제합니다. 필요에 따라 표준 시간대를 선택하고 시작 날짜 및 시간을 제공할 수 있습니다.

    지정한 조건을 모두 사용하려면 모든 옵션을 선택합니다.
    메시지 수 일괄 처리에서 수집할 메시지 수입니다(예: 10개 메시지). 일괄 처리 메시지 제한은 8,000개의 메시지입니다.
    Batch 크기 일괄 처리에서 수집할 메시지의 총 바이트 크기(예: 10MB)입니다. 일괄 처리 크기 제한은 80MB입니다.
    되풀이 일괄 처리 해제 간의 간격 및 빈도입니다(예: 10분). 되풀이는 최소 60초 또는 1분입니다. 분의 소수 자릿수 부분은 1분으로 반올림됩니다. 필요에 따라 표준 시간대를 선택하고 시작 날짜 및 시간을 제공할 수 있습니다.

    참고 항목

    일괄 처리에 포함되었지만 전송되지 않은 메시지가 트리거에 아직 포함되어 있는 상태에서 해제 기준을 변경하면 트리거는 업데이트된 해제 기준을 사용하여 미전송 메시지를 처리합니다.

    이 예에는 모든 기준이 나와 있지만 실제 테스트에서는 기준을 하나만 사용해 보세요.

    스크린샷은 Batch 트리거에 대한 모든 조건을 보여줍니다.

  4. 이제 각 일괄 처리를 처리하는 작업을 하나 이상 추가합니다.

    이 예의 경우 일괄 처리 트리거가 발생할 때 이메일을 보내는 작업을 추가합니다. 일괄 처리에서 10개의 메시지가 있거나 10MB에 도달하거나 10분이 경과하면 트리거가 실행되고 이메일을 보냅니다.

    1. 일괄 처리 트리거에서 더하기(+) 기호 >추가 작업을 선택합니다.

    2. 전자 메일 공급자에 따라 전자 메일을 보내는 작업을 추가하려면 다음 일반적인 단계를 수행합니다.

      예를 들어 @fabrikam.com이나 @fabrikam.onmicrosoft.com과 같은 회사 또는 학교 계정이 있는 경우 Microsoft 365 Outlook 커넥터를 선택합니다. @outlook.com이나 @hotmail.com과 같은 개인 계정이 있는 경우 Outlook.com 커넥터를 선택합니다. 이 예제에서는 Microsoft 365 Outlook 커넥터를 사용합니다.

  5. 메시지가 표시되면 이메일 계정에 로그인합니다.

  6. 다음 작업 속성을 설정합니다.

    • 받는 사람 상자에 받는 사람의 이메일 주소를 입력합니다. 자신의 이메일 주소를 사용하여 테스트할 수 있습니다.

    • 제목 상자 내부를 선택하여 동적 콘텐츠 목록(번개 아이콘) 및 식 편집기(함수 아이콘)에 대한 옵션을 확인합니다. 번개 아이콘을 선택하여 동적 콘텐츠 목록을 열고 파티션 이름이라는 필드를 선택합니다.

      스크린샷은 동적 콘텐츠 목록과 파티션 이름 속성에 대해 선택한 필드를 보여줍니다.

      나중에 일괄 처리 발신자에서 메시지를 보낼 수 있는 논리적 하위 세트로 대상 일괄 처리를 분할하는 고유 파티션 키를 지정할 수 있습니다. 각 집합에는 일괄 처리 발신자 논리 앱 워크플로에 의해 생성되는 고유 번호가 있습니다. 이 기능을 사용하면 여러 하위 집합이 있는 단일 일괄 처리를 사용하고 사용자가 제공한 이름으로 각 하위 집합을 정의할 수 있습니다.

      Important

      파티션 한도는 5,000개 메시지 또는 80MB입니다. 두 조건 중 하나가 충족되면 정의된 릴리스 조건이 충족되지 않는 경우에도 Azure Logic Apps에서 일괄 처리를 릴리스할 수 있습니다.

    • 본문 상자 내부를 선택하고 번개 아이콘을 선택하여 동적 콘텐츠 목록을 열고 메시지 메시지 ID 필드를 선택합니다.

      워크플로 디자이너는 자동으로 메일 보내기 작업에 대한 For each 루프를 추가합니다. 해당 작업은 이전 작업의 출력을 일괄 처리가 아닌 컬렉션으로 처리하기 때문입니다.

      다음 예제에서는 디자이너에서 일괄 처리된 항목이 컬렉션 이름인 각 제목에 대해 선택한 후의 정보 창을 보여 줍니다.

      스크린샷은 이전 작업 출력이 있는 Batched Items 컬렉션을 보여줍니다.

  7. 워크플로를 저장합니다. 이제 일괄 처리 수신자를 만들었습니다.

    Important

    Visual Studio Code를 사용하는 경우 다음 섹션으로 계속 진행하기 전에 먼저 일괄 처리 수신기 논리 앱 리소스를 Azure에 배포해야 합니다. 그렇지 않으면 일괄 처리 발신자 논리 앱 워크플로를 만들 때 일괄 처리 수신자 논리 앱 워크플로를 선택할 수 없습니다.

일괄 처리 발신자 만들기

이제 일괄 처리 수신자 논리 앱 워크플로로 메시지를 보내는 하나 이상의 일괄 처리 발신자 논리 앱 워크플로를 만듭니다. 각 일괄 처리 발신자에서 일괄 처리 수신자와 일괄 처리 이름, 메시지 콘텐츠 및 다른 설정을 지정합니다. 필요에 따라 고유 파티션 키를 제공하여 해당 키가 있는 메시지를 수집하기 위한 논리적 하위 집합으로 일괄 처리를 나눌 수 있습니다.

  • 일괄 처리 발신자를 만들 때 기존 일괄 처리 수신자를 대상 일괄 처리로 선택할 수 있도록 이전에 일괄 처리 수신자를 만들고 배포했는지 확인합니다. 일괄 처리 수신자는 일괄 처리 발신자에 대해 인식하고 있을 필요가 없지만, 일괄 처리 발신자는 메시지를 보내는 위치를 인식하고 있어야 합니다.

  • 일괄 처리 수신자와 일괄 처리 발신자가 동일한 Azure 지역 ‘및’ Azure 구독을 공유하는지 확인합니다. 그렇지 않은 경우 서로 표시되지 않기 때문에 일괄 처리 발신자를 만들 때 일괄 처리 수신자를 선택할 수 없습니다.

  1. BatchSender라는 다른 논리 앱 리소스 및 워크플로를 만듭니다.

    참고 항목

    표준 논리 앱 리소스가 있는 경우 상태 비정상 워크플로에 되풀이 트리거를 사용할 수 없으므로 상태 비스테이션 워크플로가 아닌 상태 저장 워크플로를 만들어야 합니다.

  2. 되풀이라는 예약 트리거를 추가하려면 다음 일반 단계를 따릅니다.

    다음은 1분마다 보낸 사람 워크플로를 실행하는 간격과 빈도를 설정하는 예제입니다.

  3. 메시지를 보내는 새 작업을 일괄 처리에 추가합니다.

    1. 되풀이 트리거에서 더하기(+) 기호> 새 작업 추가를 선택합니다.

    2. 다음 일반 단계에 따라 일괄 처리 트리거 워크플로로 보내기(소비 워크플로) 또는 일괄 처리로 보내기(표준 워크플로)라는 Batch 작업 작업을 추가 합니다.

    3. 소비 워크플로 또는 표준 워크플로가 있는지 여부에 따라 해당 단계를 수행합니다.

      사용량 워크플로

      일괄 처리로 보내기 트리거 워크플로 작업을 추가하면 목록이 나타나고 일괄 처리 발신자 논리 앱 리소스와 동일한 Azure 구독 Azure 지역에 있는 일괄 처리 트리거가 있는 논리 앱 리소스만 표시됩니다.

      1. 논리 앱 목록에서 이전에 만든 논리 앱을 선택하여 일괄 처리 수신기로 사용합니다. 사용 가능한 트리거가 나타나면 Batch_messages 트리거를 선택합니다.

        스크린샷은 일괄 처리 수신기 논리 앱 리소스 및 트리거를 선택하는 되풀이 트리거 및 일괄 처리 발신자 작업이 있는 소비 워크플로를 보여줍니다.

        Important

        Visual Studio Code를 사용하고 있고 선택할 일괄 처리 수신기가 표시되지 않는 경우 이전에 일괄 처리 수신기를 만들고 Azure에 배포했는지 확인합니다. 아직 배포하지 않은 경우 Azure에 일괄 처리 수신기 논리 앱 리소스를 배포하는 방법을 알아봅니다.

      2. 완료되면 작업 추가를 선택합니다.

      표준 워크플로

      일괄 처리에 보내기 작업을 추가한 후 작업 창에는 일괄 처리 이름, 메시지 콘텐츠, 워크플로 이름 및 트리거 이름을 지정할 수 있는 다음 단계의 다음 속성이 표시됩니다. 일괄 처리 발신자 논리 앱과 동일한 Azure 구독 Azure 지역에 있는 일괄 처리 트리거를 사용하여 일괄 처리 수신자 논리 앱 워크플로에 대한 정보만 지정할 수 있습니다.

      스크린샷은 되풀이 트리거와 일괄 처리로 보내기라는 작업이 포함된 표준 워크플로를 보여줍니다.

  4. 다음 일괄 처리 수신기 작업 속성을 설정합니다.

    속성 설명
    일괄 처리 이름 수신기 논리 앱에서 정의한 일괄 처리 이름(이 예제의 TestBatch)입니다.

    중요: 일괄 처리 이름은 런타임에 유효성을 검사하며 일괄 처리 수신기 논리 앱에서 지정한 이름과 일치해야 합니다. 일괄 처리 이름을 변경하면 일괄 처리 발신자가 실패하게 됩니다.
    메시지 콘텐츠 보낼 메시지의 콘텐츠입니다. 사용할 값은 다음 예제를 참조하세요.
    워크플로 이름
    (표준 워크플로에만 해당)
    일괄 처리 트리거가 있는 워크플로의 이름입니다.
    트리거 이름 일괄 처리 수신기 논리 앱 워크플로의 일괄 처리 트리거 이름입니다. 소비 워크플로에서 이 값은 선택한 일괄 처리 수신기 논리 앱에서 자동으로 채워집니다.
    워크플로 ID 일괄 처리 트리거 이름 일괄 처리 수신자 논리 앱 워크플로가 있는 워크플로의 ID입니다. 소비 워크플로에서 이 값은 선택한 일괄 처리 수신기 논리 앱에서 자동으로 채워집니다.

    이 예제에서는 메시지 콘텐츠 속성 값에 대해 현재 날짜와 시간을 일괄 처리로 보내는 메시지 콘텐츠에 삽입하는 다음 식을 추가합니다.

    1. 메시지 콘텐츠 상자 내에서 선택하여 동적 콘텐츠(번개 아이콘) 및 식 편집기(함수 아이콘)에 대한 옵션을 확인합니다.

    2. 함수 아이콘을 선택하여 식 편집기를 엽니다.

    3. 편집기에서 utcnow()라는 함수를 입력하고 추가를 선택합니다.

      사용량 워크플로

      스크린샷은 소비 워크플로, 일괄 처리 발신자 작업 창, 커서가 있는 메시지 콘텐츠 상자, utcNow 함수가 있는 식 편집기 및 기타 세부 정보를 보여줍니다.

      표준 워크플로

      스크린샷은 표준 워크플로, 일괄 처리 발신자 작업 창, 커서가 있는 메시지 콘텐츠 상자, utcNow 함수가 있는 식 편집기 및 기타 세부 정보를 보여줍니다.

  5. 이제 일괄 처리에 대한 파티션을 설정합니다.

    1. 일괄 처리 발신자 작업 창의 고급 매개 변수 목록에서 다음 속성을 선택합니다.

      속성 설명
      파티션 이름 대상 일괄 처리를 논리적 하위 집합으로 나누고 해당 키를 기반으로 메시지를 수집하는 데 사용할 선택적 고유 파티션 키입니다.

      이 예제에서는 1에서 5 사이의 난수를 생성하는 식을 추가하려면 다음 단계를 참조하세요.
      메시지 ID 비어 있는 경우 생성된 GUID(Globally Unique Identifier)인 선택적 메시지 식별자입니다. 이 예제에서는 이 값을 비워 둡니다.
    2. 파티션 이름 상자 내에서 선택하고 식 편집기(함수 아이콘)에 대한 옵션을 선택합니다.

    3. 식 편집기에서 함수 rand(1,6)를 입력하고 추가를 선택합니다.

      이 예제에서는 1에서 5 사이의 숫자를 생성합니다. 따라서 이 식이 동적으로 설정하는 번호가 지정된 5개 파티션으로 이 일괄 처리를 나눕니다.

      스크린샷은 일괄 처리를 파티션으로 나누기 위해 rand라는 함수를 보여줍니다.

      완료되면 이제 논리 앱 워크플로 유형에 따라 일괄 처리 보낸 사람 워크플로가 다음 예제와 유사하게 표시됩니다.

      사용량 워크플로

      스크린샷은 완료된 일괄 처리 발신자 소비 논리 앱 워크플로를 보여줍니다.

      표준 워크플로

      스크린샷은 완료된 일괄 처리 발신자 표준 논리 앱 워크플로를 보여줍니다.

  6. 워크플로를 저장합니다.

워크플로 테스트

일괄 처리 솔루션을 테스트하려면 논리 앱 워크플로를 몇 분 동안 실행 상태로 둡니다. 곧 동일한 파티션 키를 사용하는 5개 그룹에서 전자 메일을 받기 시작합니다.

일괄 처리 발신자 논리 앱은 1분마다 실행되고 1과 5 사이의 난수를 생성합니다. 일괄 처리 발신자는 메시지를 보내는 대상 일괄 처리의 파티션 키로 이 난수를 사용합니다. 일괄 처리에 동일한 파티션 키가 있는 5개 항목이 있을 때마다 일괄 처리 수신자 논리 앱이 실행되고 각 메시지에 대한 메일을 보냅니다.

Important

테스트를 완료하면 BatchSender 논리 앱 워크플로를 사용하지 않도록 설정하거나 삭제하여 메시지 전송을 중지하고 받은 편지함 오버로드를 방지해야 합니다.