Azure Logic Apps에서 워크플로 작업을 사용하여 병렬 분기 만들기 또는 조인

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

기본적으로 논리 앱 워크플로의 작업은 순차적으로 실행됩니다. 작업을 별도의 분기로 구성하고 해당 분기를 동시에 실행하려면 병렬 분기를 만든 다음 나중에 워크플로에서 해당 분기를 조인하면 됩니다.

이 가이드에서는 다음 개략적인 다이어그램에 표시된 대로 워크플로에서 병렬 분기를 만들고 해당 분기를 다시 조인하는 방법을 보여 줍니다.

Screenshot shows high-level conceptual diagram with parallel branches that later join in workflow.

워크플로 트리거가 배열을 수신하고 배열의 각 항목에 대해 워크플로 인스턴스 인스턴스를 실행하려는 경우 병렬 분기를 만드는 대신 SplitOn 트리거 속성을 사용하여 해당 배열을 분리할 수 있습니다.

필수 구성 요소

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

  • 트리거와 원하는 작업으로 시작하는 논리 앱 워크플로입니다. 워크플로에 병렬 분기를 추가하려는 위치 사이에 작업이 포함되어 있는지 확인합니다.

병렬 분기 작업 시 고려 사항

  • 병렬 분기는 해당 runAfter 속성 값이 부모 작업의 완료 상태와 일치하는 경우에만 실행됩니다. 예를 들어, branchAction1branchAction2로 시작하는 분기는 모두 parentAction성공 상태로 완료될 때만 실행됩니다.

  • 워크플로는 이러한 분기를 조인하는 작업을 실행하기 전에 동일한 수준의 모든 병렬 분기가 완료될 때까지 기다립니다.

병렬 분기 작업 추가

  1. Azure Portal의 디자이너에서 표준 논리 앱과 워크플로를 엽니다.

  2. 병렬 분기를 추가하려는 작업 사이에서 연결 화살표 위로 포인터를 이동합니다.

  3. 표시되는 더하기 기호(+)를 선택한 다음 병렬 분기 추가를 선택합니다.

    Screenshot shows Standard workflow with selected plus sign and selected option, Add a parallel branch.

  4. 이제 병렬 분기에서 실행하려는 작업을 추가합니다. 작업 추가 창과 검색 상자에서 원하는 작업을 찾아서 선택합니다.

    Screenshot shows Standard workflow with search box named Choose an operation.

    이제 선택한 작업이 다음과 같이 병렬 분기에 표시됩니다.

    Screenshot shows Standard workflow, parallel branch, and previously selected action.

  5. 병렬 분기에 다른 작업을 추가하려면 새 작업을 추가하려는 작업 아래에서 더하기(+) 기호를 선택한 다음 작업 추가를 선택합니다.

    Screenshot shows Standard workflow and how to add another action to the same parallel branch.

  6. 작업 선택 검색 상자에서 원하는 작업을 찾아서 선택합니다.

    이제 선택한 작업이 다음과 같이 현재 분기 내에 표시됩니다.

    Screenshot shows Standard workflow with added sequential action.

분기를 다시 병합하려면 병렬 분기를 조인합니다.

병렬 분기 정의(JSON)

코드 뷰에서 작업하는 경우 논리 앱 워크플로의 JSON 정의에서 병렬 구조를 대신 정의할 수 있습니다. 예를 들어 다음과 같습니다.

{
  "triggers": {
    "myTrigger": {}
  },
  "actions": {
    "parentAction": {
      "type": "<action-type>",
      "inputs": {},
      "runAfter": {}
    },
    "branchAction1": {
      "type": "<action-type>",
      "inputs": {},
      "runAfter": {
        "parentAction": [
          "Succeeded"
        ]
      }
    },
    "branchAction2": {
      "type": "<action-type>",
      "inputs": {},
      "runAfter": {
        "parentAction": [
          "Succeeded"
        ]
      }
    }
  },
  "outputs": {}
}

병렬 분기 조인

병렬 분기를 함께 병합하려면 모든 분기 아래에 다른 작업을 추가하면 됩니다. 이 작업은 이전의 모든 병렬 분기 실행이 완료된 후에만 실행됩니다.

  1. Azure Portal의 디자이너에서 조인하려는 병렬 분기가 있는 표준 논리 앱 및 워크플로를 엽니다.

  2. 조인하려는 병렬 분기 아래에서 더하기 기호(+)를 선택한 다음 작업 추가를 선택합니다.

    Screenshot shows Standard workflow with selected plus sign.

  3. 작업 추가 창과 검색 상자에서 분기 조인에 사용할 작업을 찾아 선택합니다.

    Screenshot shows Standard workflow, search box named Choose an operation, and available actions for joining parallel branches.

  4. 디자이너에서 이전에 추가한 작업을 선택합니다. 작업 정보 창이 열리면 설정을 선택합니다.

  5. 설정 창의 다음 이후 실행에서 작업 선택 목록을 열고 조인 작업이 실행되기 전에 완료해야 하는 각 분기의 마지막 작업을 선택합니다.

    선택한 모든 작업의 실행이 완료된 후에만 조인 작업이 실행되도록 효과적으로 지정하고 있습니다.

    Screenshot shows Standard workflow, the action that joins preceding parallel branches, and selected actions to first finish running.

    완료되면 이제 조인하려는 병렬 분기 아래에 선택한 작업이 나타납니다. 예를 들면 다음과 같습니다.

    Screenshot shows Standard workflow with the action that joins the preceding parallel branches.

조인 정의(JSON)

코드 보기에서 작업하는 경우 대신 논리 앱 워크플로의 JSON 정의에서 조인 작업을 정의할 수 있습니다. 예를 들면 다음과 같습니다.

{
  "triggers": {
    "myTrigger": { }
  },
  "actions": {
    "parentAction": {
      "type": "<action-type>",
      "inputs": { },
      "runAfter": {}
    },
    "branchAction1": {
      "type": "<action-type>",
      "inputs": { },
      "runAfter": {
        "parentAction": [
          "Succeeded"
        ]
      }
    },
    "branchAction2": {
      "type": "<action-type>",
      "inputs": { },
      "runAfter": {
        "parentAction": [
          "Succeeded"
        ]
      }
    },
    "joinAction": {
      "type": "<action-type>",
      "inputs": { },
      "runAfter": {
        "branchAction1": [
          "Succeeded"
        ],
        "branchAction2": [
          "Succeeded"
        ]
      }
    }
  },
  "outputs": {}
}

다음 단계