

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon SWF용 EventBridge 실행 상태 변경
<a name="ev-events"></a>

Amazon EventBridge를 사용하여 AWS 리소스의 상태 변경 또는 이벤트에 응답합니다. Amazon SWF가 이벤트를 출력하면 항상 계정의 기본 EventBridge 이벤트 버스로 이동합니다. 이벤트에 대한 규칙을 생성하고, 기본 이벤트 버스에 연결하고, EventBridge가 규칙과 일치하는 이벤트를 수신할 때 수행할 대상 작업을 지정할 수 있습니다. 이러한 방식으로 [https://docs.aws.amazon.com/amazonswf/latest/apireference/API_GetWorkflowExecutionHistory.html](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_GetWorkflowExecutionHistory.html) API를 사용하여 지속적으로 폴링하지 않고도 워크플로를 모니터링할 수 있습니다. 워크플로 실행의 변경 사항에 따라 EventBridge 대상을 사용하여 AWS Lambda 함수를 호출하고 Amazon Simple Notification Service(Amazon SNS) 주제에 메시지를 게시하는 등의 작업을 수행할 수 있습니다.

[https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeWorkflowExecution.html](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeWorkflowExecution.html)를 사용하여 실행 상태 변경 이벤트의 전체 내용을 볼 수 있습니다.

자세한 내용은 [Amazon EventBridge 사용 설명서](https://docs.aws.amazon.com/eventbridge/latest/userguide/)를 참조하세요.

## EventBridge 이벤트
<a name="ev-events-supported"></a>

기록 이벤트 유형에는 실행 상태 변경이 포함됩니다. 각 이벤트의 `detail` 섹션에는 최소한 다음 파라미터가 포함되어 있습니다.
+ `eventId`: GetWorkflowExecutionHistory에 표시된 이벤트 ID입니다.
+ `workflowExecutionDetail`: 이벤트가 발생했을 때의 워크플로 상태입니다.
+ `eventType`: 기록 이벤트 유형은 다음 중 하나입니다.
  + `ActivityTaskCanceled`
  + `ActivityTaskFailed`
  + `ActivityTaskTimedOut`
  + `WorkflowExecutionCanceled`
  + `WorkflowExecutionCompleted`
  + `WorkflowExecutionFailed`
  + `WorkflowExecutionStarted`
  + `WorkflowExecutionTerminated`
  + `WorkflowExecutionTimedOut`
  + `WorkflowExecutionContinuedAsNew`
  + `CancelTimerFailed`
  + `CancelWorkflowExecutionFailed`
  + `ChildWorkflowExecutionFailed`
  + `ChildWorkflowExecutionTimedOut`
  + `CompleteWorkflowExecutionFailed`
  + `ContinueAsNewWorkflowExecutionFailed`
  + `DecisionTaskTimedOut`
  + `FailWorkflowExecutionFailed`
  + `RecordMarkerFailed`
  + `RequestCancelActivityTaskFailed`
  + `RequestCancelExternalWorkflowExecutionFailed`
  + `ScheduleActivityTaskFailed`
  + `SignalExternalWorkflowExecutionFailed`
  + `StartActivityTaskFailed`
  + `StartChildWorkflowExecutionFailed`
  + `StartTimerFailed`
  + `TimerCanceled`
  + `LambdaFunctionFailed`
  + `LambdaFunctionTimedOut`
  + `StartLambdaFunctionFailed`
  + `ScheduleLambdaFunctionFailed`

## Amazon SWF 이벤트 예제
<a name="ev-events-events"></a>

다음은 이벤트를 EventBridge로 보내는 Amazon SWF의 예제입니다.

**Topics**
+ [실행 시작](#ev-events-execution-started)
+ [실행 완료](#ev-events-execution-completed)
+ [실행 실패](#ev-events-execution-failed)
+ [실행 시간 초과](#ev-events-execution-timed-out)
+ [실행 종료](#ev-events-execution-aborted)

각각의 경우, 이벤트 데이터의 `detail` 섹션은 [https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeWorkflowExecution.html](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeWorkflowExecution.html) API와 동일한 정보를 제공합니다. `executionStatus` 필드는 이벤트가 송신된 시점의 실행 상태(`OPEN` 또는 `CLOSED`)를 나타냅니다.

### 실행 시작
<a name="ev-events-execution-started"></a>

```
{
  "version": "0",
  "id": "444444444444",
  "detail-type": "Simple Workflow Execution State Change",
  "source": "aws.swf",
  "account": "444444444444",
  "time": "2020-05-08T15:57:38Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:swf:us-east-1:444444444444:/domain/SimpleWorkflowUserSimulator"
  ],
  "detail": {
    "eventId": 1,
    "eventType": "WorkflowExecutionStarted",
    "workflowExecutionDetail": {
      "executionInfo": {
        "execution": {
          "workflowId": "123456789012",
          "runId": "AKIAIOSFODNN7EXAMPLE"
        },
        "workflowType": {
          "name": "SimpleWorkflowUserSimulator",
          "version": "myWorkflow"
        },
        "startTimestamp": 1588953458484,
        "closeTimestamp": null,
        "executionStatus": "OPEN",
        "closeStatus": null,
        "parent": null,
        "parentExecutionArn": null,
        "tagList": null,
        "cancelRequested": false
      },
      "executionConfiguration": {
        "taskStartToCloseTimeout": "60",
        "executionStartToCloseTimeout": "1000",
        "taskList": {
          "name": "444444444444"
        },
        "taskPriority": null,
        "childPolicy": "ABANDON",
        "lambdaRole": "arn:aws:iam::444444444444:role/BasicSWFLambdaExecution"
      },
      "openCounts": {
        "openActivityTasks": 0,
        "openDecisionTasks": 1,
        "openTimers": 0,
        "openChildWorkflowExecutions": 0,
        "openLambdaFunctions": 0
      },
      "latestActivityTaskTimestamp": null,
    }
  }
}
```

### 실행 완료
<a name="ev-events-execution-completed"></a>

```
{
  "version": "0",
  "id": "1111-2222-3333",
  "detail-type": "Simple Workflow Execution State Change",
  "source": "aws.swf",
  "account": "444455556666",
  "time": "2020-05-08T15:57:39Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:swf:us-east-1:444455556666:/domain/SimpleWorkflowUserSimulator"
  ],
  "detail": {
    "eventId": 35,
    "eventType": "WorkflowExecutionCompleted",
    "workflowExecutionDetail": {
      "executionInfo": {
        "execution": {
          "workflowId": "1234-5678-9012",
          "runId": "777788889999"
        },
        "workflowType": {
          "name": "SimpleWorkflowUserSimulator",
          "version": "myWorkflow"
        },
        "startTimestamp": 1588953458820,
        "closeTimestamp": 1588953459448,
        "executionStatus": "CLOSED",
        "closeStatus": "COMPLETED",
        "parent": null,
        "parentExecutionArn": null,
        "tagList": null,
        "cancelRequested": false
      },
      "executionConfiguration": {
        "taskStartToCloseTimeout": "60",
        "executionStartToCloseTimeout": "1000",
        "taskList": {
          "name": "1111-1111-1111"
        },
        "taskPriority": null,
        "childPolicy": "ABANDON",
        "lambdaRole": "arn:aws:iam::444455556666:role/BasicSWFLambdaExecution"
      },
      "openCounts": {
        "openActivityTasks": 0,
        "openDecisionTasks": 0,
        "openTimers": 0,
        "openChildWorkflowExecutions": 0,
        "openLambdaFunctions": 0
      },
      "latestActivityTaskTimestamp": 1588953459402,
    }
  }
}
```

### 실행 실패
<a name="ev-events-execution-failed"></a>

```
{
  "version": "0",
  "id": "1111-2222-3333",
  "detail-type": "Simple Workflow Execution State Change",
  "source": "aws.swf",
  "account": "444455556666",
  "time": "2020-05-08T15:57:38Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:swf:us-east-1:444455556666:/domain/SimpleWorkflowUserSimulator"
  ],
  "detail": {
    "eventId": 11,
    "eventType": "WorkflowExecutionFailed",
    "workflowExecutionDetail": {
      "executionInfo": {
        "execution": {
          "workflowId": "1234-5678-9012",
          "runId": "777788889999"
        },
        "workflowType": {
          "name": "SimpleWorkflowUserSimulator",
          "version": "myWorkflow"
        },
        "startTimestamp": 1588953158481,
        "closeTimestamp": 1588953458560,
        "executionStatus": "CLOSED",
        "closeStatus": "FAILED",
        "parent": null,
        "parentExecutionArn": null,
        "tagList": null,
        "cancelRequested": false
      },
      "executionConfiguration": {
        "taskStartToCloseTimeout": "60",
        "executionStartToCloseTimeout": "1000",
        "taskList": {
          "name": "1111-1111-1111"
        },
        "taskPriority": null,
        "childPolicy": "ABANDON",
        "lambdaRole": "arn:aws:iam::444455556666:role/BasicSWFLambdaExecution"
      },
      "openCounts": {
        "openActivityTasks": 0,
        "openDecisionTasks": 0,
        "openTimers": 0,
        "openChildWorkflowExecutions": 0,
        "openLambdaFunctions": 0
      },
      "latestActivityTaskTimestamp": null,
    }
  }
}
```

### 실행 시간 초과
<a name="ev-events-execution-timed-out"></a>

```
{
  "version": "0",
  "id": "1111-2222-3333",
  "detail-type": "Simple Workflow Execution State Change",
  "source": "aws.swf",
  "account": "444455556666",
  "time": "2020-05-05T17:26:30Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:swf:us-east-1:444455556666:/domain/SimpleWorkflowUserSimulator"
  ],
  "detail": {
    "eventId": 6,
    "eventType": "WorkflowExecutionTimedOut",
    "workflowExecutionDetail": {
      "executionInfo": {
        "execution": {
          "workflowId": "1234-5678-9012",
          "runId": "777788889999"
        },
        "workflowType": {
          "name": "SimpleWorkflowUserSimulator",
          "version": "myWorkflow"
        },
        "startTimestamp": 1588698073748,
        "closeTimestamp": 1588699590745,
        "executionStatus": "CLOSED",
        "closeStatus": "TIMED_OUT",
        "parent": null,
        "parentExecutionArn": null,
        "tagList": null,
        "cancelRequested": false
      },
      "executionConfiguration": {
        "taskStartToCloseTimeout": "60",
        "executionStartToCloseTimeout": "1000",
        "taskList": {
          "name": "1111-1111-1111"
        },
        "taskPriority": null,
        "childPolicy": "ABANDON",
        "lambdaRole": "arn:aws:iam::444455556666:role/BasicSWFLambdaExecution"
      },
      "openCounts": {
        "openActivityTasks": 1,
        "openDecisionTasks": 0,
        "openTimers": 0,
        "openChildWorkflowExecutions": 0,
        "openLambdaFunctions": 0
      },
      "latestActivityTaskTimestamp": 1588699585802,
    }
  }
}
```

### 실행 종료
<a name="ev-events-execution-aborted"></a>



```
{
  "version": "0",
  "id": "1111-2222-3333",
  "detail-type": "Simple Workflow Execution State Change",
  "source": "aws.swf",
  "account": "444455556666",
  "time": "2020-05-08T22:37:26Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:swf:us-east-1:444455556666:/domain/canary"
  ],
  "detail": {
    "eventId": 48,
    "eventType": "WorkflowExecutionTerminated",
    "workflowExecutionDetail": {
      "executionInfo": {
        "execution": {
          "workflowId": "1234-5678-9012",
          "runId": "777788889999"
        },
        "workflowType": {
          "name": "1111-1111-1111",
          "version": "1.3"
        },
        "startTimestamp": 1588977445279,
        "closeTimestamp": 1588977446062,
        "executionStatus": "CLOSED",
        "closeStatus": "TERMINATED",
        "parent": null,
        "parentExecutionArn": null,
        "tagList": null,
        "cancelRequested": false
      },
      "executionConfiguration": {
        "taskStartToCloseTimeout": "60",
        "executionStartToCloseTimeout": "120",
        "taskList": {
          "name": "1111-1111-1111-2222-2222-2222"
        },
        "taskPriority": null,
        "childPolicy": "TERMINATE",
        "lambdaRole": null
      },
      "openCounts": {
        "openActivityTasks": 0,
        "openDecisionTasks": 1,
        "openTimers": 0,
        "openChildWorkflowExecutions": 0,
        "openLambdaFunctions": 0
      },
      "latestActivityTaskTimestamp": 1588977445882,
    }
  }
}
```