

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

# MQTT 브리지
<a name="mqtt-bridge-component"></a>

MQTT 브리지 구성 요소(`aws.greengrass.clientdevices.mqtt.Bridge`)는 클라이언트 디바이스, 로컬 Greengrass 게시/구독 및 간에 MQTT 메시지를 릴레이합니다 AWS IoT Core. 이 구성 요소를 사용하여 사용자 지정 구성 요소의 클라이언트 디바이스에서 보내는 MQTT 메시지에 대한 조치를 취하고 클라이언트 디바이스를 AWS 클라우드와 동기화할 수 있습니다.

**참고**  <a name="client-device-component-context"></a>
클라이언트 디바이스는 Greengrass 코어 디바이스에 연결되어 처리할 MQTT 메시지와 데이터를 보내는 로컬 IoT 디바이스입니다. 자세한 내용은 [로컬 IoT 디바이스와 상호 작용](interact-with-local-iot-devices.md) 단원을 참조하십시오.

이 구성 요소를 사용하여 다음 메시지 브로커 간에 메시지를 릴레이할 수 있습니다.
+ 로컬 MQTT - 로컬 MQTT 브로커는 클라이언트 디바이스와 코어 디바이스 간의 메시지를 처리합니다.
+ 로컬 게시/구독 - 로컬 Greengrass 메시지 브로커는 코어 디바이스에 있는 구성 요소 간의 메시지를 처리합니다. Greengrass 구성 요소에서 이러한 메시지를 조작하는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.
+ AWS IoT Core - AWS IoT Core MQTT 브로커는 IoT 디바이스와 AWS 클라우드 대상 간의 메시지를 처리합니다. Greengrass 구성 요소에서 이러한 메시지를 조작하는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.

**Topics**
+ [버전](#mqtt-bridge-component-versions)
+ [유형](#mqtt-bridge-component-type)
+ [운영 체제](#mqtt-bridge-component-os-support)
+ [요구 사항](#mqtt-bridge-component-requirements)
+ [종속성](#mqtt-bridge-component-dependencies)
+ [구성](#mqtt-bridge-component-configuration)
+ [로컬 로그 파일](#mqtt-bridge-component-log-file)
+ [Changelog](#mqtt-bridge-component-changelog)

## 버전
<a name="mqtt-bridge-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 유형
<a name="mqtt-bridge-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="mqtt-bridge-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="mqtt-bridge-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ 기본 포트 8883 이외의 포트를 사용하도록 코어 디바이스의 MQTT 브로커 구성 요소를 구성하는 경우 MQTT 브리지 v2.1.0 이상을 사용해야 합니다. 브로커가 작동하는 포트에 연결하도록 구성합니다.
+ MQTT 브리지 구성 요소는 VPC에서 실행할 수 있습니다.

## 종속성
<a name="mqtt-bridge-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#mqtt-bridge-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.3.2 ]

다음 표에는 이 구성 요소의 버전 2.3.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.6.0 | 하드 | 

------
#### [ 2.3.0 and 2.3.1 ]

다음 표에는 이 구성 요소의 버전 2.3.0 및 2.3.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 하드 | 

------
#### [ 2.2.5 and 2.2.6 ]

다음 표에는 이 구성 요소의 버전 2.2.5 및 2.2.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 하드 | 

------
#### [ 2.2.3 and 2.2.4 ]

다음 표에는 이 구성 요소의 버전 2.2.3 및 2.2.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.4.0 | 하드 | 

------
#### [ 2.2.0 – 2.2.2 ]

다음 표에는 이 구성 요소의 버전 2.2.0\$12.2.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.3.0 | 하드 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.0.0 <2.2.0 | 하드 | 

------
#### [ 2.0.0 to 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.0.0\$12.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.0.0 <2.1.0 | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="mqtt-bridge-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ 2.3.0 – 2.3.2 ]

`mqttTopicMapping`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>브리지할 주제 매핑입니다. 이 구성 요소는 소스 주제에 대한 메시지를 구독하고 수신하는 메시지를 대상 주제에 게시합니다. 각 주제 매핑에서는 주제, 소스 유형 및 대상 유형을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>이 주제 매핑의 이름입니다. *topicMappingNameKey*를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topic`  
소스 브로커와 대상 브로커를 브리지할 주제 또는 주제 필터입니다.  
`+` 및 `#` MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.  
`Pubsub` 소스 브로커와 함께 MQTT 주제 와일드카드를 사용하려면 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md) 의 v2.6.0 이상을 사용해야 합니다.  
`targetTopicPrefix`  
이 구성 요소가 메시지를 릴레이할 때 대상 주제에 추가할 접두사입니다.  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
소스 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
대상 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.

mqtt5RouteOptions  
(선택 사항) 소스 주제에서 대상 주제로 메시지를 브리징하기 위한 주제 매핑을 구성하는 옵션을 제공합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
*mqtt5RouteOptionsNameKey*  
주제 매핑에 대한 경로 옵션의 이름입니다. *mqtt5RouteOptionsNameKey*를 `mqttTopicMapping` 필드에 정의된 일치하는 *topicMappingNameKey*로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
noLocal  
(선택 사항) 활성화하는 경우 브리지는 브리지 자체에서 게시한 주제에 대한 메시지를 전달하지 않습니다. 다음과 같은 루프를 방지하려면 이 옵션을 사용합니다.  

```
{
    "mqtt5RouteOptions": {
        "toIoTCore": {
            "noLocal": true
        }
    },
    "mqttTopicMapping": {
        "toIoTCore": {
            "topic": "device",
            "source": "LocalMqtt",
            "target": "IotCore"
        },
        "toLocal": {
            "topic": "device",
            "source": "IotCore",
            "target": "LocalMqtt"
        }
    }
}
```
`noLocal`는 `source`가 `LocalMqtt`인 경로에 대해서만 지원됩니다.  
기본값: false  
retainAsPublished  
(선택 사항) 활성화하는 경우 브리지에서 전달하는 메시지에는 해당 경로에 대해 브로커에 게시된 메시지와 동일한 `retain` 플래그가 지정됩니다.  
`retainAsPublished`는 `source`가 `LocalMqtt`인 경로에 대해서만 지원됩니다.  
기본값: false

mqtt  
(선택 사항) 로컬 브로커와 통신하기 위한 MQTT 프로토콜 설정입니다.    
version  
(선택 사항) 브리지에서 로컬 브로커와 통신하는 데 사용되는 MQTT 프로토콜 버전입니다. nucleus 구성에서 선택한 MQTT 버전과 동일해야 합니다.  
다음 중에서 선택합니다.  
+ `mqtt3`
+ `mqtt5`
`mqttTopicMapping` 객체의 `source` 또는 `target` 필드가 `LocalMqtt`로 설정된 경우 MQTT 브로커를 배포해야 합니다. `mqtt5` 옵션을 선택하는 경우 [MQTT 5 브로커(EMQX)](mqtt-broker-emqx-component.md)를 사용해야 합니다.  
기본값: `mqtt3`  
ackTimeoutSeconds  
(선택 사항) 작업에 실패하기 전에 PUBACK, SUBACK 또는 UNSUBACK 패킷을 기다리는 시간 간격입니다.  
기본값: 60  
connAckTimeoutMs  
(선택 사항) 연결을 종료하기 전에 CONNACK 패킷을 기다리는 시간 간격입니다.  
기본값: 20000(20초)  
pingTimeoutMs  
(선택 사항) 브리즈가 로컬 브로커에서 PINGACK 메시지를 수신하기 위해 대기하는 시간(밀리초)입니다. 대기 시간이 제한 시간을 초과하면 브리지가 닫히고 MQTT 연결을 다시 엽니다. 이 값은 `keepAliveTimeoutSeconds`보다 작아야 합니다.  
기본값: 30000(30초)  
keepAliveTimeoutSeconds  
(선택 사항) MQTT 연결을 유지하기 위해 브리지가 보내는 각 PING 메시지 사이의 시간(초)입니다. 이 값은 `pingTimeoutMs`보다 커야 합니다.  
기본값: 60  
maxReconnectDelayMs  
(선택 사항) MQTT가 다시 연결하는 데 걸리는 최대 시간(초)입니다.  
기본값: 30000(30초)  
minReconnectDelayMs  
(선택 사항) MQTT가 다시 연결하는 데 걸리는 최소 시간(초)입니다.  
receiveMaximum  
(선택 사항) 브리지가 보낼 수 있는 확인되지 않은 최대 QoS1 패킷 수입니다.  
기본값: 100  
maximumPacketSize  
클라이언트가 MQTT 패킷에 대해 허용할 최대 바이트 수입니다.  
기본값: null(제한 없음)  
sessionExpiryInterval  
(선택 사항) 브리지와 로컬 브로커 간에 세션이 지속되도록 요청할 수 있는 시간(초)입니다.  
기본값: 4294967295(세션이 만료되지 않음)

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
(선택 사항) 로컬 MQTT 브로커의 URI입니다. 기본 포트 8883이 아닌 다른 포트를 사용하도록 MQTT 브로커를 구성하는 경우 이 파라미터를 지정해야 합니다. `ssl://localhost:port` 형식을 사용하고 *port*를 MQTT 브로커가 작동하는 포트로 바꿉니다.  
기본값: `ssl://localhost:8883`

startupTimeoutSeconds  
(선택 사항) 구성 요소가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가 `BROKEN`으로 변경됩니다.  
기본값: `120`

**Example 예: 구성 병합 업데이트**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
아래에 나와 있는 구성 업데이트 예에서는 다음을 지정합니다.  
+ `clients/+/hello/world` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이합니다.
+ `clients/+/detections` 주제 필터와 일치하는 주제에 대한 메시지를 클라이언트 디바이스에서 로컬 게시/구독으로 릴레이하고 대상 주제에 `events/input/` 접두사를 추가합니다. 결과 대상 주제는 `events/input/clients/+/detections` 주제 필터와 일치합니다.
+ `clients/+/status` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이하고 대상 주제에 `$aws/rules/StatusUpdateRule/` 접두사를 추가합니다. 이 예제에서는 이러한 메시지를 `StatusUpdateRule`이라는 [AWS IoT 규칙](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)으로 직접 릴레이하여 [기본 수집](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html)을 사용하는 비용을 절감합니다.

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDeviceEvents": {
      "topic": "clients/+/detections",
      "targetTopicPrefix": "events/input/",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ClientDeviceCloudStatusUpdate": {
      "topic": "clients/+/status",
      "targetTopicPrefix": "$aws/rules/StatusUpdateRule/",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

**Example 예: MQTT 5 구성**  
다음 예제 구성에서는 다음을 업데이트합니다.  
+ 브리지가 로컬 브로커와 함께 MQTT 5 프로토콜을 사용할 수 있도록 합니다.
+ `ClientDeviceHelloWorld` 주제 매핑에 대한 게시된 설정으로 MQTT 유지를 구성합니다.

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  },
  "mqtt5RouteOptions": {
    "ClientDeviceHelloWorld": {
      "retainAsPublished": true
    }
  },
  "mqtt": {
    "version": "mqtt5"
  }
}
```

------
#### [ 2.2.6 ]

`mqttTopicMapping`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>브리지할 주제 매핑입니다. 이 구성 요소는 소스 주제에 대한 메시지를 구독하고 수신하는 메시지를 대상 주제에 게시합니다. 각 주제 매핑에서는 주제, 소스 유형 및 대상 유형을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>이 주제 매핑의 이름입니다. *topicMappingNameKey*를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topic`  
소스 브로커와 대상 브로커를 브리지할 주제 또는 주제 필터입니다.  
`+` 및 `#` MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.  
`Pubsub` 소스 브로커와 함께 MQTT 주제 와일드카드를 사용하려면 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md) 의 v2.6.0 이상을 사용해야 합니다.  
`targetTopicPrefix`  
이 구성 요소가 메시지를 릴레이할 때 대상 주제에 추가할 접두사입니다.  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
소스 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
대상 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
(선택 사항) 로컬 MQTT 브로커의 URI입니다. 기본 포트 8883이 아닌 다른 포트를 사용하도록 MQTT 브로커를 구성하는 경우 이 파라미터를 지정해야 합니다. `ssl://localhost:port` 형식을 사용하고 *port*를 MQTT 브로커가 작동하는 포트로 바꿉니다.  
기본값: `ssl://localhost:8883`

startupTimeoutSeconds  
(선택 사항) 구성 요소가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가 `BROKEN`으로 변경됩니다.  
기본값: `120`

**Example 예: 구성 병합 업데이트**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
아래에 나와 있는 구성 업데이트 예에서는 다음을 지정합니다.  
+ `clients/+/hello/world` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이합니다.
+ `clients/+/detections` 주제 필터와 일치하는 주제에 대한 메시지를 클라이언트 디바이스에서 로컬 게시/구독으로 릴레이하고 대상 주제에 `events/input/` 접두사를 추가합니다. 결과 대상 주제는 `events/input/clients/+/detections` 주제 필터와 일치합니다.
+ `clients/+/status` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이하고 대상 주제에 `$aws/rules/StatusUpdateRule/` 접두사를 추가합니다. 이 예제에서는 이러한 메시지를 `StatusUpdateRule`이라는 [AWS IoT 규칙](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)으로 직접 릴레이하여 [기본 수집](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html)을 사용하는 비용을 절감합니다.

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDeviceEvents": {
      "topic": "clients/+/detections",
      "targetTopicPrefix": "events/input/",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ClientDeviceCloudStatusUpdate": {
      "topic": "clients/+/status",
      "targetTopicPrefix": "$aws/rules/StatusUpdateRule/",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------
#### [ 2.2.0 - 2.2.5 ]

`mqttTopicMapping`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>브리지할 주제 매핑입니다. 이 구성 요소는 소스 주제에 대한 메시지를 구독하고 수신하는 메시지를 대상 주제에 게시합니다. 각 주제 매핑에서는 주제, 소스 유형 및 대상 유형을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>이 주제 매핑의 이름입니다. *topicMappingNameKey*를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topic`  
소스 브로커와 대상 브로커를 브리지할 주제 또는 주제 필터입니다.  
`+` 및 `#` MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.  
`Pubsub` 소스 브로커와 함께 MQTT 주제 와일드카드를 사용하려면 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md) 의 v2.6.0 이상을 사용해야 합니다.  
`targetTopicPrefix`  
이 구성 요소가 메시지를 릴레이할 때 대상 주제에 추가할 접두사입니다.  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
소스 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
대상 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
(선택 사항) 로컬 MQTT 브로커의 URI입니다. 기본 포트 8883이 아닌 다른 포트를 사용하도록 MQTT 브로커를 구성하는 경우 이 파라미터를 지정해야 합니다. `ssl://localhost:port` 형식을 사용하고 *port*를 MQTT 브로커가 작동하는 포트로 바꿉니다.  
기본값: `ssl://localhost:8883`

**Example 예: 구성 병합 업데이트**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
아래에 나와 있는 구성 업데이트 예에서는 다음을 지정합니다.  
+ `clients/+/hello/world` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이합니다.
+ `clients/+/detections` 주제 필터와 일치하는 주제에 대한 메시지를 클라이언트 디바이스에서 로컬 게시/구독으로 릴레이하고 대상 주제에 `events/input/` 접두사를 추가합니다. 결과 대상 주제는 `events/input/clients/+/detections` 주제 필터와 일치합니다.
+ `clients/+/status` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이하고 대상 주제에 `$aws/rules/StatusUpdateRule/` 접두사를 추가합니다. 이 예제에서는 이러한 메시지를 `StatusUpdateRule`이라는 [AWS IoT 규칙](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)으로 직접 릴레이하여 [기본 수집](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html)을 사용하는 비용을 절감합니다.

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDeviceEvents": {
      "topic": "clients/+/detections",
      "targetTopicPrefix": "events/input/",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ClientDeviceCloudStatusUpdate": {
      "topic": "clients/+/status",
      "targetTopicPrefix": "$aws/rules/StatusUpdateRule/",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------
#### [ 2.1.x ]

`mqttTopicMapping`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping"></a>
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>브리지할 주제 매핑입니다. 이 구성 요소는 소스 주제에 대한 메시지를 구독하고 수신하는 메시지를 대상 주제에 게시합니다. 각 주제 매핑에서는 주제, 소스 유형 및 대상 유형을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>이 주제 매핑의 이름입니다. *topicMappingNameKey*를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topic`  
소스 브로커와 대상 브로커를 브리지할 주제 또는 주제 필터입니다.  
`LocalMqtt` 또는 `IotCore` 소스 브로커를 지정하는 경우 `+` 및 `#` MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
소스 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
대상 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
(선택 사항) 로컬 MQTT 브로커의 URI입니다. 기본 포트 8883이 아닌 다른 포트를 사용하도록 MQTT 브로커를 구성하는 경우 이 파라미터를 지정해야 합니다. `ssl://localhost:port` 형식을 사용하고 *port*를 MQTT 브로커가 작동하는 포트로 바꿉니다.  
기본값: `ssl://localhost:8883`

**Example 예: 구성 병합 업데이트**  <a name="mqtt-bridge-component-configuration-example-no-prefix"></a>
다음 예제 구성 업데이트는 `clients/MyClientDevice1/hello/world` 및 `clients/MyClientDevice2/hello/world` 주제에서 클라이언트 디바이스의 메시지를 AWS IoT Core 로 릴레이하도록 지정합니다.  

```
{
  "mqttTopicMapping": {
    "ClientDevice1HelloWorld": {
      "topic": "clients/MyClientDevice1/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDevice2HelloWorld": {
      "topic": "clients/MyClientDevice2/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------
#### [ 2.0.x ]

`mqttTopicMapping`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping"></a>
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>브리지할 주제 매핑입니다. 이 구성 요소는 소스 주제에 대한 메시지를 구독하고 수신하는 메시지를 대상 주제에 게시합니다. 각 주제 매핑에서는 주제, 소스 유형 및 대상 유형을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>이 주제 매핑의 이름입니다. *topicMappingNameKey*를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topic`  
소스 브로커와 대상 브로커를 브리지할 주제 또는 주제 필터입니다.  
`LocalMqtt` 또는 `IotCore` 소스 브로커를 지정하는 경우 `+` 및 `#` MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
소스 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
대상 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.

**Example 예: 구성 병합 업데이트**  <a name="mqtt-bridge-component-configuration-example-no-prefix"></a>
다음 예제 구성 업데이트는 `clients/MyClientDevice1/hello/world` 및 `clients/MyClientDevice2/hello/world` 주제에서 클라이언트 디바이스의 메시지를 AWS IoT Core 로 릴레이하도록 지정합니다.  

```
{
  "mqttTopicMapping": {
    "ClientDevice1HelloWorld": {
      "topic": "clients/MyClientDevice1/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDevice2HelloWorld": {
      "topic": "clients/MyClientDevice2/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------

## 로컬 로그 파일
<a name="mqtt-bridge-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="mqtt-bridge-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.3.2  |  [클라이언트 디바이스 인증](client-device-auth-component.md) 버전 2.5.0 릴리스에 대한 버전이 업데이트되었습니다.  | 
| 2.3.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
| 2.3.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.6  |  <a name="changelog-mqtt-bridge-2.2.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.5  |  [클라이언트 디바이스 인증](client-device-auth-component.md) 버전 2.4.0 릴리스에 대한 버전이 업데이트되었습니다.  | 
|  2.2.4  |  Greengrass [클라이언트 디바이스 인증](client-device-auth-component.md) 버전 2.3.0 릴리스에 대한 버전이 업데이트되었습니다.  | 
|  2.2.3  |  이 버전에는 버그 수정과 개선 사항이 포함되어 있습니다.  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.0  |  <a name="changelog-mqtt-bridge-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.0.1  |  이 버전에는 버그 수정 및 개선 사항이 포함됩니다.  | 
|  2.0.0  |  초기 버전입니다.  | 