

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

# 작업 이벤트
<a name="events-jobs"></a>

 AWS IoT 작업 서비스는 작업이 보류, 완료 또는 취소될 때와 디바이스가 작업 실행 시 성공 또는 실패를 보고할 때 MQTT 프로토콜의 예약된 주제에 게시합니다. 디바이스 또는 관리 및 모니터링 애플리케이션은 이러한 주제를 구독하여 작업 상태를 추적할 수 있습니다.

**작업 이벤트 사용 방법**  
 AWS IoT 작업 서비스의 응답 메시지는 메시지 브로커를 통과하지 않으며 다른 클라이언트 또는 규칙에서 구독할 수 없습니다. 작업 활동 관련 메시지를 구독하려면 `notify` 및 `notify-next` 주제를 사용합니다. 작업 주제에 대한 자세한 내용은 [작업 주제](reserved-topics.md#reserved-topics-job) 섹션을 참조하세요.

작업 업데이트에 대한 알림을 받으려면를 사용하거나 API AWS Management Console또는 CLI를 사용하여 이러한 작업 이벤트를 활성화합니다. 자세한 내용은 [에 대한 이벤트 활성화 AWS IoT](iot-events.md#iot-events-enable) 단원을 참조하십시오.

**작업 이벤트 작동 방식**  
작업 취소 및 삭제에는 다소 시간이 걸릴 수 있기 때문에 요청의 시작과 종료를 알리기 위해 2개의 메시지가 전송됩니다. 예를 들어, 취소 요청이 시작되면 `$aws/events/job/jobID/cancellation_in_progress` 주제로 메시지가 전송됩니다. 취소 요청이 완료되면 `$aws/events/job/jobID/canceled` 주제로 메시지가 전송됩니다.

작업 삭제 요청에 대해서도 비슷한 프로세스가 수행됩니다. 관리 및 모니터링 애플리케이션은 이러한 주제를 구독하여 작업 상태를 추적할 수 있습니다. MQTT 주제 게시 및 구독에 대한 자세한 내용은 [디바이스 통신 프로토콜](protocols.md) 단원을 참조하세요.

**작업 이벤트 유형**  
다음 예제는 다양한 작업 이벤트 유형을 보여줍니다.

**작업 완료/취소/삭제됨**  
 AWS IoT 작업 서비스는 작업이 완료, 취소, 삭제되거나 취소 또는 삭제가 진행 중일 때 MQTT 주제에 메시지를 게시합니다.  
+ `$aws/events/job/jobID/completed`
+ `$aws/events/job/jobID/canceled`
+ `$aws/events/job/jobID/deleted`
+ `$aws/events/job/jobID/cancellation_in_progress`
+ `$aws/events/job/jobID/deletion_in_progress`
`completed` 메시지에는 아래와 같은 페이로드 예제가 포함됩니다.  

```
{
  "eventType": "JOB",
  "eventId": "7364ffd1-8b65-4824-85d5-6c14686c97c6",
  "timestamp": 1234567890,
  "operation": "completed",
  "jobId": "27450507-bf6f-4012-92af-bb8a1c8c4484",
  "status": "COMPLETED",
  "targetSelection": "SNAPSHOT|CONTINUOUS",
  "targets": [
    "arn:aws:iot:us-east-1:123456789012:thing/a39f6f91-70cf-4bd2-a381-9c66df1a80d0",
    "arn:aws:iot:us-east-1:123456789012:thinggroup/2fc4c0a4-6e45-4525-a238-0fe8d3dd21bb"
  ],
  "description": "My Job Description",
  "completedAt": 1234567890123,
  "createdAt": 1234567890123,
  "lastUpdatedAt": 1234567890123,
  "jobProcessDetails": {
    "numberOfCanceledThings": 0,
    "numberOfRejectedThings": 0,
    "numberOfFailedThings": 0,
    "numberOfRemovedThings": 0,
    "numberOfSucceededThings": 3
  }
}
```
`canceled` 메시지에는 아래와 같은 페이로드 예제가 포함됩니다.  

```
{
  "eventType": "JOB",
  "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06",
  "timestamp": 1234567890,
  "operation": "canceled",
  "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0",
  "status": "CANCELED",
  "targetSelection": "SNAPSHOT|CONTINUOUS",
  "targets": [
    "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f",
    "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f"
  ],
  "description": "My job description",
  "createdAt": 1234567890123,
  "lastUpdatedAt": 1234567890123
}
```
`deleted` 메시지에는 아래와 같은 페이로드 예제가 포함됩니다.  

```
{
      "eventType": "JOB",
      "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06",
      "timestamp": 1234567890,
      "operation": "deleted",
      "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0",
      "status": "DELETED",
      "targetSelection": "SNAPSHOT|CONTINUOUS",
      "targets": [
        "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f",
        "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f"
      ],
      "description": "My job description",
      "createdAt": 1234567890123,
      "lastUpdatedAt": 1234567890123,
      "comment": "Comment for this operation"
    }
```
`cancellation_in_progress` 메시지에는 아래와 같은 페이로드 예제가 포함됩니다.  

```
{
      "eventType": "JOB",
      "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06",
      "timestamp": 1234567890,
      "operation": "cancellation_in_progress",
      "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0",
      "status": "CANCELLATION_IN_PROGRESS",
      "targetSelection": "SNAPSHOT|CONTINUOUS",
      "targets": [
        "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f",
        "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f"
      ],
      "description": "My job description",
      "createdAt": 1234567890123,
      "lastUpdatedAt": 1234567890123,
      "comment": "Comment for this operation"
    }
```
`deletion_in_progress` 메시지에는 아래와 같은 페이로드 예제가 포함됩니다.  

```
{
      "eventType": "JOB",
      "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06",
      "timestamp": 1234567890,
      "operation": "deletion_in_progress",
      "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0",
      "status": "DELETION_IN_PROGRESS",
      "targetSelection": "SNAPSHOT|CONTINUOUS",
      "targets": [
        "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f",
        "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f"
      ],
      "description": "My job description",
      "createdAt": 1234567890123,
      "lastUpdatedAt": 1234567890123,
      "comment": "Comment for this operation"
    }
```

**작업 실행 종료 상태**  
 AWS IoT 디바이스가 작업 실행을 터미널 상태로 업데이트하면 작업 서비스가 메시지를 게시합니다.  
+ `$aws/events/jobExecution/jobID/succeeded`
+ `$aws/events/jobExecution/jobID/failed`
+ `$aws/events/jobExecution/jobID/rejected`
+ `$aws/events/jobExecution/jobID/canceled`
+ `$aws/events/jobExecution/jobID/timed_out`
+ `$aws/events/jobExecution/jobID/removed`
+ `$aws/events/jobExecution/jobID/deleted`
메시지에는 아래와 같은 페이로드 예제가 포함됩니다.  

```
{
  "eventType": "JOB_EXECUTION",
  "eventId": "cca89fa5-8a7f-4ced-8c20-5e653afb3572",
  "timestamp": 1234567890,
  "operation": "succeeded|failed|rejected|canceled|removed|timed_out",
  "jobId": "154b39e5-60b0-48a4-9b73-f6f8dd032d27",
  "thingArn": "arn:aws:iot:us-east-1:123456789012:myThing/6d639fbc-8f85-4a90-924d-a2867f8366a7",
  "status": "SUCCEEDED|FAILED|REJECTED|CANCELED|REMOVED|TIMED_OUT",
  "statusDetails": {
    "key": "value"
  }
}
```