

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

# MQTT 주제
<a name="topics"></a>

MQTT 주제는 AWS IoT 메시지를 식별합니다. AWS IoT 클라이언트는 메시지 주제 이름을 지정하여 게시하는 메시지를 식별합니다. 클라이언트는 주제 필터를 AWS IoT Core에 등록하여 구독(수신)하려는 메시지를 식별합니다. 메시지 브로커는 주제 이름 및 주제 필터를 사용하여 메시지를 게시 클라이언트에서 구독 클라이언트로 라우팅합니다.

메시지 브로커는 주제를 사용하여 [HTTPS 메시지 URL](http.md#httpurl)에 MQTT를 통해 전송된 메시지인지, HTTP를 통해 전송된 메시지인지 식별합니다.

는 일부 [예약된 시스템 주제를](reserved-topics.md) AWS IoT 지원하지만 대부분의 MQTT 주제는 사용자가 생성하고 관리합니다. 시스템 디자이너는 다음 섹션에 설명된 대로 주제를 AWS IoT 사용하여 게시 클라이언트에서 수신한 메시지를 식별하고 구독 클라이언트에 보낼 메시지를 선택합니다. 시스템에 대한 주제 네임스페이스를 생성하기 전에 MQTT 주제의 특성을 검토하여 IoT 시스템에 가장 적합한 주제 이름 계층 구조를 생성합니다.

## 주제 이름
<a name="topicnames"></a>

주제 이름과 주제 필터는 UTF-8로 인코딩된 문자열입니다. 계층 구조의 수준을 구분하기 위해 슬래시(/) 문자를 사용하여 정보의 계층 구조를 나타낼 수 있습니다. 예를 들어 이 주제 이름은 룸 1의 온도 센서를 참조할 수 있습니다.
+ `sensor/temperature/room1`

이 예제에서는 다른 룸에 다음과 같은 주제 이름을 가진 다른 유형의 센서가 있을 수 있습니다.
+ `sensor/temperature/room2`
+ `sensor/humidity/room1`
+ `sensor/humidity/room2`

**참고**  
시스템의 메시지에 대한 주제 이름을 고려할 때 다음 사항에 유의하세요.  
주제 이름과 주제 필터는 대소문자를 구분합니다.
주제 이름에는 개인 식별 정보가 포함되어서는 안 됩니다.
\$1로 시작하는 주제 이름은 AWS IoT Core에서만 사용되는 [예약된 주제](reserved-topics.md)입니다.
AWS IoT Core 는 또는 리전 간에 메시지를 보내거나 받을 AWS 계정수 없습니다.

주제 이름 및 네임스페이스를 디자인하는 방법에 대한 자세한 내용은 백서 [AWS IoT Core에 대한 MQTT 주제 디자인](https://docs.aws.amazon.com/whitepapers/latest/designing-mqtt-topics-aws-iot-core/designing-mqtt-topics-aws-iot-core.html)을 참조하세요.

앱에서 메시지를 게시하고 구독하는 방법에 대한 예는 [AWS IoT Core 자습서 시작하기](iot-gs.md) 및 [AWS IoT 디바이스 SDK, 모바일 SDK 및 AWS IoT 디바이스 클라이언트](iot-sdks.md)에서 시작하세요.

**중요**  
주제 네임스페이스는 AWS 계정 및 리전으로 제한됩니다. 예를 들어 한 리전의 AWS 계정 에서 사용하는 `sensor/temp/room1` 주제는 다른 리전의 동일한 AWS 계정에서 사용하거나 다른 리전의 다른 계정 AWS 계정 에서 사용하는 `sensor/temp/room1` 주제와 다릅니다.

## 주제 ARN
<a name="topicnames-arn"></a>

모든 주제 Amazon 리소스 이름(ARN)의 형식은 다음과 같습니다.

```
arn:aws:iot:aws-region:AWS-account-ID:topic/Topic
```

예를 들어, `arn:aws:iot:us-west-2:123EXAMPLE456:topic/application/topic/device/sensor`는 ` application/topic/device/sensor` 주제에 대한 ARN입니다.

## 주제 이름 필터
<a name="topicfilters"></a>

구독 클라이언트는 메시지 브로커에 주제 이름 필터를 등록하여 메시지 브로커가 클라이언트에 전송해야 하는 메시지 주제를 지정합니다. 주제 이름 필터는 단일 주제 이름을 구독하기 위한 단일 주제 이름일 수도 있고, 여러 주제 이름을 동시에 구독하기 위한 와일드카드 문자를 포함할 수도 있습니다.

게시 클라이언트는 게시하는 주제 이름에 와일드카드 문자를 사용할 수 없습니다.

다음 표에는 주제 필터에 사용할 수 있는 와일드카드 문자가 나열되어 있습니다.


**주제 와일드카드**  

| 와일드카드 문자 | 일치 항목 | 참고 | 
| --- | --- | --- | 
| \$1 | 주제 계층 구조에서 해당 수준 이하의 모든 문자열입니다. |  주제 필터의 마지막 문자여야 합니다. 주제 계층 구조에서 해당 수준의 유일한 문자여야 합니다. \$1 와일드카드 문자가 포함된 항목 필터에서 사용할 수 있습니다.  | 
| \$1 | 해당 문자를 포함하는 수준의 모든 문자열입니다. |  주제 계층 구조에서 해당 수준의 유일한 문자여야 합니다. 주제 필터의 여러 수준에서 사용할 수 있습니다.  | 

이전 센서 주제 이름 예제와 함께 와일드카드를 사용합니다.
+ `sensor/#`를 구독할 경우 `sensor/`, `sensor/temperature`, `sensor/temperature/room1`에 게시된 메시지가 수신되지만 `sensor`에 게시된 메시지는 수신되지 않습니다.
+ `sensor/+/room1`을 구독할 경우 `sensor/temperature/room1` 및 `sensor/humidity/room1`에 게시된 메시지가 수신되지만 `sensor/temperature/room2` 또는 `sensor/humidity/room2`에 게시된 메시지는 수신되지 않습니다.

### 주제 필터 ARN
<a name="topicfilters-arn"></a>

모든 주제 필터 Amazon 리소스 이름(ARN)의 형식은 다음과 같습니다.

```
arn:aws:iot:aws-region:AWS-account-ID:topicfilter/TopicFilter
```

예, `arn:aws:iot:us-west-2:123EXAMPLE456:topicfilter/application/topic/+/sensor`은(는) ` application/topic/+/sensor` 주제 필터에 대한 ARN입니다.

# MQTT 메시지 페이로드
<a name="topicdata"></a>

MQTT 메시지로 전송되는 메시지 페이로드는 중 하나에 대한 AWS IoT것이 아니라면에서 지정하지 않습니다[예약된 주제](reserved-topics.md). 애플리케이션의 요구 사항을 수용하려면 [프로토콜에 대한AWS IoT Core Service Quotas](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-protocol-limits)의 제약 내에서 주제에 대한 메시지 페이로드를 정의하는 것이 좋습니다.

메시지 페이로드에 JSON 형식을 사용하면 AWS IoT 규칙 엔진이 메시지를 구문 분석하고 SQL 쿼리를 적용할 수 있습니다. 애플리케이션에서 메시지 페이로드에 SQL 쿼리를 적용할 규칙 엔진이 필요하지 않은 경우 애플리케이션에 필요한 모든 데이터 형식을 사용할 수 있습니다. SQL 쿼리에 사용되는 JSON 문서의 제한 사항 및 예약 문자에 대한 자세한 내용은 [JSON 확장](iot-sql-json.md) 섹션을 참조하세요.

MQTT 주제 및 해당 메시지 페이로드를 디자인하는 방법에 대한 자세한 내용은 [AWS IoT Core에 대한 MQTT 주제 디자인](https://docs.aws.amazon.com/whitepapers/latest/designing-mqtt-topics-aws-iot-core/designing-mqtt-topics-aws-iot-core.html)을 참조하세요.

메시지 크기 제한이 서비스 할당량을 초과하면 이유가 `PAYLOAD_LIMIT_EXCEEDED`인 `CLIENT_ERROR`와 "메시지 페이로드가 메시지 유형의 크기 제한을 초과함(Message payload exceeds size limit for message type)"이 발생합니다. 메시지 크기 제한에 대한 자세한 내용은 [AWS IoT Core 메시지 브로커 제한 및 할당량](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits.html)을 참조하세요.

# 예약된 주제
<a name="reserved-topics"></a>

달러 기호(\$1)로 시작하는 주제는에서 사용하도록 예약되어 있습니다 AWS IoT. 예약된 주제는 허용된 대로 구독하고 게시할 수 있지만 달러 기호로 시작하는 새 주제는 생성할 수 없습니다. 예약된 주제에 대해 지원되지 않는 게시 또는 구독 작업으로 인해 연결이 종료될 수 있습니다.

## 자산 모델 주제
<a name="reserved-topics-other"></a>


| Topic | 허용된 클라이언트 작업 | 설명 | 
| --- | --- | --- | 
|  \$1aws/sitewise/asset-models/*assetModelId*/assets/*assetId*/properties/*propertyId*  |  Subscribe  |  AWS IoT SiteWise 는이 주제에 자산 속성 알림을 게시합니다. 자세한 내용은 *AWS IoT SiteWise 사용 설명서*의 [다른 AWS 서비스와 상호 작용을](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/interact-with-other-services.html) 참조하세요.  | 

## AWS IoT Device Defender 주제
<a name="reserved-topics-device-defender"></a>

이러한 메시지는 주제의 *페이로드 형식*에 따라 간결한 이진 객체 표현(CBOR) 형식 및 JavaScript 객체 표기법(JSON) 형식의 응답 버퍼를 지원합니다. AWS IoT Device Defender 주제는 MQTT 게시만 지원합니다.


| *payload-format* | 응답 형식 데이터 유형 | 
| --- | --- | 
| cbor | Concise Binary Object Representation(CBOR) | 
| json | JavaScript Object Notation(JSON) | 

자세한 내용은 [디바이스에서 지표 전송](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/detect-device-side-metrics.html#DetectMetricsMessages)을 참조하세요.


| Topic | 허용된 작업 | 설명 | 
| --- | --- | --- | 
|  \$1aws/things/*thingName*/defender/metrics/*payload-format*  |  게시  |  AWS IoT Device Defender 에이전트는이 주제에 지표를 게시합니다. 자세한 내용은 [디바이스에서 지표 전송](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/detect-device-side-metrics.html#DetectMetricsMessages)을 참조하세요.  | 
|  \$1aws/things/*thingName*/defender/metrics/*payload-format*/accepted  |  Subscribe  |  AWS IoT 는 AWS IoT Device Defender 에이전트가 \$1aws/things/*thingName*/defender/metrics/*payload-format*에 성공적인 메시지를 게시한 후이 주제에 게시합니다. 자세한 내용은 [디바이스에서 지표 전송](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/detect-device-side-metrics.html#DetectMetricsMessages)을 참조하세요.  | 
|  \$1aws/things/*thingName*/defender/metrics/*payload-format*/rejected  |  Subscribe  |  AWS IoT 는 AWS IoT Device Defender 에이전트가 실패한 메시지를 \$1aws/things/*thingName*/defender/metrics/*payload-format*에 게시한 후이 주제에 게시합니다. 자세한 내용은 [디바이스에서 지표 전송](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/detect-device-side-metrics.html#DetectMetricsMessages)을 참조하세요.  | 

## AWS IoT Core 디바이스 위치 주제
<a name="reserved-topics-device-location"></a>

AWS IoT Core 디바이스 위치는 디바이스의 측정 데이터를 확인하고 IoT 디바이스의 예상 위치를 제공할 수 있습니다. 디바이스의 측정 데이터에는 GNSS, Wi-Fi, 셀룰러 및 IP 주소가 포함될 수 있습니다. 그런 다음 AWS IoT Core 디바이스 위치는 최상의 정확도를 제공하고 디바이스 위치 정보를 해결하는 측정 유형을 선택합니다. 자세한 내용은 [AWS IoT Core 디바이스 위치](device-location.md) 및 [디바이스 위치 MQTT 주제를 사용하여 AWS IoT Core 디바이스 위치 확인](device-location-reserved-topics.md) 섹션을 참조하세요.


| Topic | 허용된 작업 | 설명 | 
| --- | --- | --- | 
|  \$1aws/device\$1location/*customer\$1device\$1id*/get\$1position\$1estimate  |  게시  |  디바이스는이 주제에 게시하여 AWS IoT Core 디바이스 위치에서 확인할 스캔된 원시 측정 데이터를 가져옵니다.  | 
|  \$1aws/device\$1location/*customer\$1device\$1id*/get\$1position\$1estimate/accepted  |  Subscribe  |  AWS IoT Core 디바이스 위치가 성공적으로 확인되면 디바이스 위치가이 주제에 게시됩니다.  | 
|  \$1aws/device\$1location/*customer\$1device\$1id*/get\$1position\$1estimate/rejected  |  Subscribe  |  AWS IoT Core Device Location은 4xx 오류로 인해 디바이스 위치를 성공적으로 확인할 수 없는 경우이 주제에 게시합니다.  | 

## 이벤트 주제
<a name="reserved-topics-event"></a>

이벤트 메시지는 특정 이벤트가 발생하면 게시됩니다. 예를 들어 이벤트는 사물이 추가되거나, 업데이트되거나, 삭제될 때 레지스트리에 의해 생성됩니다. 이 표에는 다양한 AWS IoT 이벤트와 예약된 주제가 나와 있습니다.


| Topic | 허용된 클라이언트 작업 | 설명 | 
| --- | --- | --- | 
|  \$1aws/events/certificates/registered/*caCertificateId*  |  Subscribe  |  AWS IoT 는가 인증서를 AWS IoT 자동으로 등록하고 클라이언트가 `PENDING_ACTIVATION` 상태의 인증서를 제공할 때이 메시지를 게시합니다. 자세한 내용은 [자동 등록을 위해 클라이언트에 의한 첫 번째 연결 구성](auto-register-device-cert.md#configure-auto-reg-first-connect) 단원을 참조하십시오.  | 
|  \$1aws/events/job/*jobID*/canceled  |  Subscribe  | AWS IoT 는 작업이 취소될 때이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
| \$1aws/events/job/jobID/cancellation\$1in\$1progress |  Subscribe  | AWS IoT 는 작업 취소가 진행 중일 때이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
|  \$1aws/events/job/*jobID*/completed  |  Subscribe  | AWS IoT 는 작업이 완료되면이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
| \$1aws/events/job/jobID/deleted |  Subscribe  | AWS IoT 는 작업이 삭제될 때이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
| \$1aws/events/job/jobID/deletion\$1in\$1progress |  Subscribe  | AWS IoT 는 작업 삭제가 진행 중일 때이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
| \$1aws/events/jobExecution/jobID/canceled |  Subscribe  | AWS IoT 는 작업 실행이 취소될 때이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
| \$1aws/events/jobExecution/jobID/deleted |  Subscribe  | AWS IoT 는 작업 실행이 삭제될 때이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
| \$1aws/events/jobExecution/jobID/failed |  Subscribe  | AWS IoT 는 작업 실행이 실패할 때이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
| \$1aws/events/jobExecution/jobID/rejected |  Subscribe  | AWS IoT 는 작업 실행이 거부될 때이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
| \$1aws/events/jobExecution/jobID/removed |  Subscribe  | AWS IoT 는 작업 실행이 제거될 때이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
| \$1aws/events/jobExecution/jobID/succeeded |  Subscribe  | AWS IoT 는 작업 실행이 성공하면이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
| \$1aws/events/jobExecution/jobID/timed\$1out |  Subscribe  | AWS IoT 는 작업 실행 시간이 초과되면이 메시지를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오. | 
|  \$1aws/events/presence/connected/*clientId*  |  Subscribe  |  AWS IoT 는 지정된 클라이언트 ID를 가진 MQTT 클라이언트가 연결될 때이 주제에 게시합니다 AWS IoT. 자세한 내용은 [연결/연결 해제 이벤트](life-cycle-events.md#connect-disconnect) 단원을 참조하십시오.  | 
|  \$1aws/events/presence/disconnected/*clientId*  |  Subscribe  |  AWS IoT 는 지정된 클라이언트 ID를 가진 MQTT 클라이언트가 연결 해제될 때이 주제에 게시합니다 AWS IoT. 자세한 내용은 [연결/연결 해제 이벤트](life-cycle-events.md#connect-disconnect) 단원을 참조하십시오.  | 
|  \$1aws/events/subscriptions/subscribed/*clientId*  |  Subscribe  |  AWS IoT 는 지정된 클라이언트 ID를 가진 MQTT 클라이언트가 MQTT 주제를 구독할 때이 주제에 게시합니다. 자세한 내용은 [구독/구독 취소 이벤트](life-cycle-events.md#subscribe-unsubscribe-events) 단원을 참조하십시오.  | 
|  \$1aws/events/subscriptions/unsubscribed/*clientId*  |  Subscribe  |  AWS IoT 는 지정된 클라이언트 ID를 가진 MQTT 클라이언트가 MQTT 주제 구독을 취소할 때이 주제에 게시합니다. 자세한 내용은 [구독/구독 취소 이벤트](life-cycle-events.md#subscribe-unsubscribe-events) 단원을 참조하십시오.  | 
|  \$1aws/events/thing/*thingName*/created  |  Subscribe  |  AWS IoT 는 *thingName* 사물이 생성될 때이 주제에 게시합니다. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|  \$1aws/events/thing/*thingName*/updated  |  Subscribe  |  AWS IoT 는 *thingName* 사물이 업데이트될 때이 주제에 게시합니다. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|  \$1aws/events/thing/*thingName*/deleted  |  Subscribe  |  AWS IoT 는 *thingName* 사물이 삭제될 때이 주제에 게시합니다. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|  \$1aws/events/thingGroup/*thingGroupName*/created  |  Subscribe  |  AWS IoT 사물 그룹 *thingGroupName*이 생성되면가이 주제에 게시합니다. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|  \$1aws/events/thingGroup/*thingGroupName*/updated  |  Subscribe  |  AWS IoT 사물 그룹 *thingGroupName*이 업데이트되면가이 주제에 게시합니다. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|  \$1aws/events/thingGroup/*thingGroupName*/deleted  |  Subscribe  |  AWS IoT 사물 그룹 *thingGroupName*이 삭제되면가이 주제에 게시합니다. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|  \$1aws/events/thingType/*thingTypeName*/created  |  Subscribe  |  AWS IoT 는 *thingTypeName* 사물 유형이 생성될 때이 주제에 게시합니다. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|  \$1aws/events/thingType/*thingTypeName*/updated  |  Subscribe  |  AWS IoT 는 *thingTypeName* 사물 유형이 업데이트될 때이 주제에 게시합니다. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|  \$1aws/events/thingType/*thingTypeName*/deleted  |  Subscribe  |  AWS IoT 는 *thingTypeName* 사물 유형이 삭제될 때이 주제에 게시합니다. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|  \$1aws/events/thingTypeAssociation/thing/*thingName*/*thingTypeName*  |  Subscribe  |  AWS IoT 는 사물 이름이 사물 유형*thingName**thingTypeName*. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|  \$1aws/events/thingGroupMembership/thingGroup/*thingGroupName*/thing/*thingName*/added  |  Subscribe  |   AWS IoT 는 사물 그룹 *thingName*에 사물 thingName이 추가될 때이 주제에 게시합니다. *thingGroupName* 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|  \$1aws/events/thingGroupMembership/thingGroup/*thingGroupName*/thing/*thingName*/removed  |  Subscribe  |   AWS IoT 사물 그룹 *thingName*에서 사물 thingName이 제거되면가이 주제에 게시합니다. *thingGroupName* 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|   \$1aws/events/thingGroupHierarchy/thingGroup/*parentThingGroupName*/childThingGroup/*childThingGroupName*/added  |  Subscribe  |   AWS IoT 사물 그룹 parentThingGroupName에 사물 그룹 *childThingGroupName**parentThingGroupName*. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 
|   \$1aws/events/thingGroupHierarchy/thingGroup/*parentThingGroupName*/childThingGroup/*childThingGroupName*/removed  |  Subscribe  |   AWS IoT 사물 그룹 *childThingGroupName*에서 사물 그룹 *parentThingGroupName*. 자세한 내용은 [레지스트리 이벤트](registry-events.md) 단원을 참조하십시오.  | 

## 플릿 프로비저닝 주제
<a name="reserved-topics-fleet"></a>

**참고**  
이 표에서 **수신**으로 표시된 클라이언트 작업은 클라이언트가 주제를 구독했는지 여부에 관계없이가 요청한 클라이언트에 직접 AWS IoT 게시하는 주제를 나타냅니다. 클라이언트는 이러한 응답 메시지를 구독하지 않은 경우에도 이들을 수신해야 합니다. 이러한 응답 메시지는 메시지 브로커를 통과하지 않으며 다른 클라이언트나 규칙에 의해 구독될 수 없습니다.

이 메시지는 주제의 *payload-format*에 따라 Concise Binary Object Representation(CBOR) 형식 및 JavaScript Object Notation(JSON) 형식의 응답 버퍼를 지원합니다.


| *payload-format* | 응답 형식 데이터 유형 | 
| --- | --- | 
| cbor | Concise Binary Object Representation(CBOR) | 
| json | JavaScript Object Notation(JSON) | 

자세한 내용은 [디바이스 프로비저닝 MQTT API](fleet-provision-api.md) 단원을 참조하십시오.


| Topic | 허용된 클라이언트 작업 | 설명 | 
| --- | --- | --- | 
|  \$1aws/certificates/create/*payload-format*  |  게시  |  인증서 서명 요청(CSR)에서 인증서를 생성하려면 이 주제에 게시합니다.  | 
|  \$1aws/certificates/create/*payload-format*/accepted  |  구독, 수신  |  AWS IoT 는 \$1aws/certificates/create/*payload-format*을 성공적으로 호출한 후이 주제에 게시합니다.  | 
|  \$1aws/certificates/create/*payload-format*/rejected  |  구독, 수신  |  AWS IoT 는 \$1aws/certificates/create/*payload-format*에 대한 호출이 실패한 후이 주제에 게시합니다.  | 
|  \$1aws/certificates/create-from-csr/*payload-format*  |  게시  |  CSR에서 인증서를 생성하려면 이 주제에 게시합니다.  | 
|  \$1aws/certificates/create-from-csr/*payload-format*/accepted  |  구독, 수신  |  AWS IoT 는 \$1aws/certificates/create-from-csr/*payload-format*에 대한 성공적인 호출을이 주제에 게시합니다.  | 
|  \$1aws/certificates/create-from-csr/*payload-format*/rejected  | 구독, 수신 |  AWS IoT 는 \$1aws/certificates/create-from-csr/*payload-format*에 대한 실패한 호출을이 주제에 게시합니다.  | 
|  \$1aws/provisioning-templates/*templateName*/provision/*payload-format*  |  게시  |  사물을 등록하려면 이 주제에 게시합니다.  | 
|  \$1aws/provisioning-templates/*templateName*/provision/*payload-format*/accepted  | 구독, 수신 |  AWS IoT 는 \$1aws/provisioning-templates/*templateName*/provision/*payload-format*을 성공적으로 호출한 후이 주제에 게시합니다.  | 
|  \$1aws/provisioning-templates/*templateName*/provision/*payload-format*/rejected  |  구독, 수신  |  AWS IoT 는 \$1aws/provisioning-templates/*templateName*/provision/*payload-format*에 대한 호출이 실패한 후이 주제에 게시합니다.  | 

## 작업 주제
<a name="reserved-topics-job"></a>

**참고**  
이 표에서 **수신**으로 표시된 클라이언트 작업은 클라이언트가 주제를 구독했는지 여부에 관계없이가 요청한 클라이언트에 직접 AWS IoT 게시하는 주제를 나타냅니다. 클라이언트는 이러한 응답 메시지를 구독하지 않은 경우에도 이들을 수신해야 합니다.  
이러한 응답 메시지는 메시지 브로커를 통과하지 않으며 다른 클라이언트나 규칙에 의해 구독될 수 없습니다. 작업 활동 관련 메시지를 구독하려면 `notify` 및 `notify-next` 주제를 사용합니다.  
플릿 모니터링 솔루션에 대한 작업 및 `jobExecution` 이벤트 주제를 구독할 때 먼저 [작업 및 작업 실행 이벤트](iot-events.md)를 사용하여 클라우드 측에서 이벤트를 수신해야 합니다.  
자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.


| Topic | 허용된 클라이언트 작업 | 설명 | 
| --- | --- | --- | 
|  \$1aws/things/*thingName*/jobs/get  |  게시  |  디바이스에서 이 주제에 메시지를 게시해 `GetPendingJobExecutions` 요청을 수행합니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  | 
|  \$1aws/things/*thingName*/jobs/get/accepted  |  구독, 수신  |  디바이스에서 이 주제를 구독해 성공적인 `GetPendingJobExecutions` 요청 응답을 받습니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  | 
|  \$1aws/things/*thingName*/jobs/get/rejected  |  구독, 수신  |  `GetPendingJobExecutions` 요청이 거부되면 디바이스에서 응답을 받기 위해 이 주제를 구독합니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  | 
|  \$1aws/things/*thingName*/jobs/start-next  |  게시  |  디바이스에서 이 주제에 메시지를 게시해 `StartNextPendingJobExecution` 요청을 수행합니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  | 
|  \$1aws/things/*thingName*/jobs/start-next/accepted  |  구독, 수신  |  디바이스에서 이 주제를 구독해 성공적인 `StartNextPendingJobExecution` 요청 응답을 받습니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  | 
|  \$1aws/things/*thingName*/jobs/start-next/rejected  |  구독, 수신  |  `StartNextPendingJobExecution` 요청이 거부되면 디바이스에서 응답을 받기 위해 이 주제를 구독합니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  | 
|  \$1aws/things/*thingName*/jobs/*jobId*/get  |  게시  |  디바이스에서 이 주제에 메시지를 게시해 `DescribeJobExecution` 요청을 수행합니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  | 
|  \$1aws/things/*thingName*/jobs/*jobId*/get/accepted  |  구독, 수신  |  디바이스에서 이 주제를 구독해 성공적인 `DescribeJobExecution` 요청 응답을 받습니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  | 
|  \$1aws/things/*thingName*/jobs/*jobId*/get/rejected  |  구독, 수신  |  `DescribeJobExecution` 요청이 거부되면 디바이스에서 응답을 받기 위해 이 주제를 구독합니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  | 
|  \$1aws/things/*thingName*/jobs/*jobId*/update  |  게시  |  디바이스에서 이 주제에 메시지를 게시해 `UpdateJobExecution` 요청을 수행합니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  | 
|  \$1aws/things/*thingName*/jobs/*jobId*/update/accepted  |  구독, 수신  |  디바이스에서 이 주제를 구독해 성공적인 `UpdateJobExecution` 요청 응답을 받습니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  Note \$1aws/things/*thingName*/jobs/*jobId*/update에 게시하는 디바이스만 이 주제에 대한 메시지를 수신합니다.   | 
|  \$1aws/things/*thingName*/jobs/*jobId*/update/rejected  |  구독, 수신  |  `UpdateJobExecution` 요청이 거부되면 디바이스에서 응답을 받기 위해 이 주제를 구독합니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하십시오.  Note \$1aws/things/*thingName*/jobs/*jobId*/update에 게시하는 디바이스만 이 주제에 대한 메시지를 수신합니다.   | 
|  \$1aws/things/*thingName*/jobs/notify  |  구독, 수신  |  디바이스에서 이 주제를 구독해 작업 실행이 사물에 대해 대기 중인 실행의 목록에서 추가되거나 제거될 때 알림을 받습니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하세요.  | 
|  \$1aws/things/*thingName*/jobs/notify-next  |  구독, 수신  |  디바이스에서 이 주제를 구독해 사물에 대해 대기 중인 다음 작업 실행이 변경될 때 알림을 받습니다. 자세한 내용은 [작업 디바이스 MQTT API 작업](jobs-mqtt-api.md) 단원을 참조하세요.  | 
|  \$1aws/events/job/*jobId*/completed  |  Subscribe  |  작업 완료 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하세요.  | 
|  \$1aws/events/job/*jobId*/canceled  |  Subscribe  |  작업 취소 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하세요.  | 
|  \$1aws/events/job/*jobId*/deleted   |  Subscribe  |  작업 삭제 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하세요.  | 
|  \$1aws/events/job/*jobId*/cancellation\$1in\$1progress   |  Subscribe  |  작업 취소 시작 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하세요.  | 
|  \$1aws/events/job/*jobId*/deletion\$1in\$1progress   |  Subscribe  |  작업 삭제 시작 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하세요.  | 
|  \$1aws/events/jobExecution/*jobId*/succeeded   |  Subscribe  |  작업 실행 성공 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하세요.  | 
|  \$1aws/events/jobExecution/*jobId*/failed   |  Subscribe  |  작업 실행 실패 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하세요.  | 
|  \$1aws/events/jobExecution/*jobId*/rejected   |  Subscribe  |  작업 실행 거부 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하세요.  | 
|  \$1aws/events/jobExecution/*jobId*/canceled   |  Subscribe  |  작업 실행 취소 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하세요.  | 
|  \$1aws/events/jobExecution/*jobId*/timed\$1out   |  Subscribe  |  작업 실행 시간 초과 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하세요.  | 
|  \$1aws/events/jobExecution/*jobId*/removed   |  Subscribe  |  작업 실행 제거 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하세요.  | 
|  \$1aws/events/jobExecution/*jobId*/deleted   |  Subscribe  |  작업 실행 삭제 시 작업 서비스가 이 주제에 대해 이벤트를 게시합니다. 자세한 내용은 [작업 이벤트](events-jobs.md) 단원을 참조하십시오.  | 

## 명령 주제
<a name="reserved-topics-commands"></a>

**참고**  
이 표에서 **수신**으로 표시된 클라이언트 작업은 클라이언트가 주제를 구독했는지 여부에 관계없이가 요청한 클라이언트에 직접 AWS IoT 게시하는 주제를 나타냅니다. 클라이언트는 이러한 응답 메시지를 구독하지 않은 경우에도 이들을 수신해야 합니다.  
이러한 응답 메시지는 메시지 브로커를 통과하지 않으며 다른 클라이언트나 규칙에 의해 구독될 수 없습니다.


| Topic | 허용된 클라이언트 작업 | 설명 | 
| --- | --- | --- | 
|  \$1aws/commands/*<devices>*/*<DeviceID>*/executions/*<ExecutionId>*/request/*<PayloadFormat>* \$1aws/commands/*<devices>*/*<DeviceID>*/executions/*<ExecutionId>*/request  |  구독, 수신  |  콘솔에서 또는 `StartCommandExecution` API를 사용하여 명령 실행을 시작하도록 요청하면 디바이스가 이 주제에 대한 메시지를 수신합니다. 이 경우에 *<devices>*는 IoT 사물 또는 MQTT 클라이언트일 수 있고, *<DeviceID>*는 IoT 사물 이름 또는 MQTT 클라이언트 ID일 수 있습니다.  | 
|  \$1aws/commands/*<devices>*/*<DeviceID>*/executions/*<ExecutionId>*/response/*<PayloadFormat>*  |  게시  |  디바이스는 `UpdateCommandExecution` MQTT API를 사용하여 명령 실행에 대한 메시지를 이 주제에 게시합니다. 메시지는 콘솔에서 또는 `StartCommandExecution` API를 사용하여 명령 실행을 시작하라는 요청에 대한 응답으로 게시됩니다. 게시된 메시지는 JSON 또는 CBOR을 *<PayloadFormat>*으로 사용합니다.  | 
|  \$1aws/commands/*<devices>*/*<DeviceID>*/executions/*<ExecutionId>*/response/accepted/*<PayloadFormat>* \$1aws/commands/*<devices>*/*<DeviceID>*/executions/*<ExecutionId>*/response/accepted  |  구독, 수신  |  클라우드 서비스가 명령 실행 결과를 성공적으로 처리한 경우 AWS IoT Device Management 는 /accepted 주제에 대한 응답을 게시합니다.  | 
|  \$1aws/commands/*<devices>*/*<DeviceID>*/executions/*<ExecutionId>*/response/rejected/*<PayloadFormat>* \$1aws/commands/*<devices>*/*<DeviceID>*/executions/*<ExecutionId>*/response/rejected  |  게시  |  클라우드 서비스가 명령 실행 결과를 처리하지 못한 경우 AWS IoT Device Management 는 /rejected 주제에 대한 응답을 게시합니다.  | 

## 규칙 주제
<a name="reserved-topics-rule"></a>


| Topic | 허용된 클라이언트 작업 | 설명 | 
| --- | --- | --- | 
|  \$1aws/rules/*ruleName*  |  게시  |  규칙을 직접 트리거하기 위해 디바이스 또는 애플리케이션이 이 주제에 게시합니다. 자세한 내용은 [Basic Ingest를 통한 메시징 비용 절감](iot-basic-ingest.md) 단원을 참조하세요.  | 

## 보안 터널링 주제
<a name="reserved-topics-secure"></a>


| Topic | 허용된 클라이언트 작업 | 설명 | 
| --- | --- | --- | 
|  \$1aws/things/*thing-name*/tunnels/notify  |  Subscribe  |   AWS IoT 는 IoT 에이전트가 원격 디바이스에서 로컬 프록시를 시작할 수 있도록이 메시지를 게시합니다. 자세한 내용은 [IoT 에이전트 코드 조각](configure-remote-device.md#agent-snippet) 단원을 참조하십시오.  | 

## 섀도우 주제
<a name="reserved-topics-shadow"></a>

이 섹션의 주제는 명명된 섀도우와 명명되지 않은 섀도우에서 사용됩니다. 각 섀도우에 사용되는 주제는 주제 접두사만 다릅니다. 이 표에서는 각 섀도우 유형에서 사용하는 주제 접두사를 보여줍니다.


| *ShadowTopicPrefix* 값 | 섀도우 유형 | 
| --- | --- | 
| \$1aws/things/thingName/shadow | 명명되지 않은(클래식) 섀도우 | 
| \$1aws/things/thingName/shadow/name/shadowName | 명명된 섀도우 | 

전체 주제를 생성하려면 참조할 섀도우 유형에 *ShadowTopicPrefix*를 선택하고 *thingName* 및 *ShadowName*(해당하는 경우)을 해당 값으로 바꾸고 다음 표에 표시된 대로 주제 스텁을 추가합니다. 주제는 대/소문자를 구분합니다.


| Topic | 허용된 클라이언트 작업 | 설명 | 
| --- | --- | --- | 
|  *ShadowTopicPrefix*/delete  |  게시/구독  |  섀도우를 삭제하기 위해 디바이스 또는 애플리케이션이 이 주제에 게시합니다. 자세한 내용은 [/delete](device-shadow-mqtt.md#delete-pub-sub-topic) 단원을 참조하세요.  | 
|  *ShadowTopicPrefix*/delete/accepted  |  Subscribe  |  섀도우가 삭제되면 디바이스 섀도우 서비스가 이 주제로 메시지를 전송합니다. 자세한 내용은 [/delete/accepted/](device-shadow-mqtt.md#delete-accepted-pub-sub-topic) 단원을 참조하세요.  | 
|  *ShadowTopicPrefix*/delete/rejected  |  Subscribe  |  섀도우 삭제 요청이 거부되면 디바이스 섀도우 서비스가 이 주제로 메시지를 전송합니다. 자세한 내용은 [/delete/rejected](device-shadow-mqtt.md#delete-rejected-pub-sub-topic) 단원을 참조하세요.  | 
|  *ShadowTopicPrefix*/get  |  게시/구독  |  섀도우를 가져오기 위해 애플리케이션 또는 사물이 이 주제에 빈 메시지를 게시합니다. 자세한 내용은 [디바이스 섀도우 MQTT 주제](device-shadow-mqtt.md) 단원을 참조하세요.  | 
|  *ShadowTopicPrefix*/get/accepted  |  Subscribe  |  섀도우에 대한 요청이 성공적으로 이루어지면 디바이스 섀도우 서비스가 이 주제로 메시지를 전송합니다. 자세한 내용은 [/get/accepted](device-shadow-mqtt.md#get-accepted-pub-sub-topic) 단원을 참조하세요.  | 
|  *ShadowTopicPrefix*/get/rejected  |  Subscribe  |  섀도우 요청이 거부되면 디바이스 섀도우 서비스가 이 주제로 메시지를 전송합니다. 자세한 내용은 [/get/rejected](device-shadow-mqtt.md#get-rejected-pub-sub-topic) 단원을 참조하세요.  | 
|  *ShadowTopicPrefix*/update  |  게시/구독  |  섀도우를 업데이트하기 위해 사물 또는 애플리케이션이 이 주제에 게시합니다. 자세한 내용은 [/update](device-shadow-mqtt.md#update-pub-sub-topic) 단원을 참조하세요.  | 
|  *ShadowTopicPrefix*/update/accepted  |  Subscribe  |  섀도우가 성공적으로 업데이트되면 디바이스 섀도우 서비스가 이 주제로 메시지를 전송합니다. 자세한 내용은 [/update/accepted](device-shadow-mqtt.md#update-accepted-pub-sub-topic) 단원을 참조하세요.  | 
|  *ShadowTopicPrefix*/update/rejected  |  Subscribe  |  섀도우 업데이트가 거부되면 디바이스 섀도우 서비스가 이 주제로 메시지를 전송합니다. 자세한 내용은 [/update/rejected](device-shadow-mqtt.md#update-rejected-pub-sub-topic) 단원을 참조하세요.  | 
|  *ShadowTopicPrefix*/update/delta  |  Subscribe  |  섀도우의 reported 섹션과 desired 섹션 간의 차이가 감지되면 디바이스 섀도우 서비스가 이 주제로 메시지를 전송합니다. 자세한 내용은 [/update/delta](device-shadow-mqtt.md#update-delta-pub-sub-topic) 단원을 참조하세요.  | 
|  *ShadowTopicPrefix*/update/documents  |  Subscribe  |  AWS IoT 는 섀도우에 대한 업데이트가 성공적으로 수행될 때마다이 주제에 상태 문서를 게시합니다. 자세한 내용은 [/update/documents](device-shadow-mqtt.md#update-documents-pub-sub-topic) 단원을 참조하세요.  | 

## MQTT 기반 파일 전송 주제
<a name="reserved-topics-mqtt-based-file-delivery"></a>

**참고**  
이 표에서 **수신**으로 표시된 클라이언트 작업은 클라이언트가 주제를 구독했는지 여부에 관계없이가 요청한 클라이언트에 직접 AWS IoT 게시하는 주제를 나타냅니다. 클라이언트는 이러한 응답 메시지를 구독하지 않은 경우에도 이들을 수신해야 합니다. 이러한 응답 메시지는 메시지 브로커를 통과하지 않으며 다른 클라이언트나 규칙에 의해 구독될 수 없습니다.

이 메시지는 주제의 *payload-format*에 따라 Concise Binary Object Representation(CBOR) 형식 및 JavaScript Object Notation(JSON) 형식의 응답 버퍼를 지원합니다.


| *payload-format* | 응답 형식 데이터 유형 | 
| --- | --- | 
| cbor | Concise Binary Object Representation(CBOR) | 
| json | JavaScript Object Notation(JSON) | 


| Topic | 허용된 클라이언트 작업 | 설명 | 
| --- | --- | --- | 
|  \$1aws/things/*ThingName*/streams/*StreamId*/data/*payload-format*  |  구독, 수신  |  AWS 디바이스의 "GetStream" 요청이 수락되면 MQTT 기반 파일 전송이이 주제에 게시됩니다. 페이로드는 스트림 데이터를 포함합니다. 자세한 내용은 [디바이스에서 AWS IoT MQTT 기반 파일 전송 사용](mqtt-based-file-delivery-in-devices.md) 단원을 참조하세요.  | 
|  \$1aws/things/*ThingName*/streams/*StreamId*/get/*payload-format*  |  게시  |  디바이스는 “GetStream” 요청을 수행하기 위해 이 주제에 게시합니다. 자세한 내용은 [디바이스에서 AWS IoT MQTT 기반 파일 전송 사용](mqtt-based-file-delivery-in-devices.md) 단원을 참조하세요.  | 
|  \$1aws/things/*ThingName*/streams/*StreamId*/description/*payload-format*  |  구독, 수신  |  AWS 디바이스의 "DescribeStream" 요청이 수락되면 MQTT 기반 파일 전송이이 주제에 게시됩니다. 페이로드는 스트림 설명을 포함합니다. 자세한 내용은 [디바이스에서 AWS IoT MQTT 기반 파일 전송 사용](mqtt-based-file-delivery-in-devices.md) 단원을 참조하세요.  | 
|  \$1aws/things/*ThingName*/streams/*StreamId*/describe/*payload-format*  |  게시  |  디바이스는 “DescribeStream” 요청을 수행하기 위해 이 주제에 게시합니다. 자세한 내용은 [디바이스에서 AWS IoT MQTT 기반 파일 전송 사용](mqtt-based-file-delivery-in-devices.md) 단원을 참조하세요.  | 
|  \$1aws/things/*ThingName*/streams/*StreamId*/rejected/*payload-format*  |  구독, 수신  |  AWS 디바이스의 "DescribeStream" 또는 "GetStream" 요청이 거부되면 MQTT 기반 파일 전송이이 주제에 게시됩니다. 자세한 내용은 [디바이스에서 AWS IoT MQTT 기반 파일 전송 사용](mqtt-based-file-delivery-in-devices.md) 단원을 참조하십시오.  | 

## 예약된 주제 ARN
<a name="reserved-topicnames-arn"></a>

모든 예약된 주제 Amazon 리소스 이름(ARN)의 형식은 다음과 같습니다.

```
arn:aws:iot:aws-region:AWS-account-ID:topic/Topic
```

예, `arn:aws:iot:us-west-2:123EXAMPLE456:topic/$aws/things/thingName/jobs/get/accepted`은(는) 예약된 주제 `$aws/things/thingName/jobs/get/accepted`에 대한 ARN입니다.