

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tópicos do MQTT
<a name="topics"></a>

Os tópicos do MQTT identificam AWS IoT mensagens. AWS IoT os clientes identificam as mensagens que publicam dando nomes de tópicos às mensagens. Os clientes identificam as mensagens que desejam assinar (receber) registrando um filtro de tópico com o AWS IoT Core. O agente de mensagens usa nomes de tópicos e filtros de tópicos para rotear mensagens de clientes de publicação a clientes assinatura.

O agente de mensagens usa tópicos para identificar mensagens enviadas usando MQTT e HTTP para o [URL da mensagem HTTPS](http.md#httpurl).

Embora AWS IoT ofereça suporte a alguns [tópicos reservados do sistema](reserved-topics.md), a maioria dos tópicos do MQTT é criada e gerenciada por você, o designer do sistema. AWS IoT usa tópicos para identificar mensagens recebidas de clientes de publicação e selecionar mensagens para enviar aos clientes assinantes, conforme descrito nas seções a seguir. Antes de criar um namespace de tópico para seu sistema, revise as características dos tópicos MQTT para criar a hierarquia de nomes de tópicos que funciona melhor para seu sistema de IoT.

## Nomes de tópicos
<a name="topicnames"></a>

Os nomes de tópicos e os filtros de tópicos são strings codificadas em UTF-8. Eles podem representar uma hierarquia de informações usando o caractere barra (/) para separar os níveis da hierarquia. Por exemplo, o nome deste tópico pode se referir a um sensor de temperatura no compartimento 1:
+ `sensor/temperature/room1`

Neste exemplo, também pode haver outros tipos de sensores em outros compartimentos com nomes de tópicos, como:
+ `sensor/temperature/room2`
+ `sensor/humidity/room1`
+ `sensor/humidity/room2`

**nota**  
Ao considerar os nomes de tópicos para as mensagens no sistema, lembre-se de que:  
Os nomes de tópicos e os filtros de tópico diferenciam letras maiúsculas de minúsculas.
Os nomes de tópicos não devem conter informações de identificação pessoal.
Os nomes de tópicos que começam com $ são [tópicos reservados](reserved-topics.md) para serem usados somente pelo AWS IoT Core.
AWS IoT Core não consigo enviar ou receber mensagens entre Conta da AWS s ou regiões.

Para obter mais informações sobre como criar seus nomes de tópicos e namespace, consulte nosso whitepaper, [Projetando tópicos em MQTT para AWS IoT Core](https://docs.aws.amazon.com/whitepapers/latest/designing-mqtt-topics-aws-iot-core/designing-mqtt-topics-aws-iot-core.html).

Para exemplos de como os aplicativos podem publicar e assinar mensagens, comece com [Introdução aos AWS IoT Core tutoriais](iot-gs.md) e [AWS IoT Device SDKs, Mobile SDKs e AWS IoT Device Client](iot-sdks.md).

**Importante**  
O namespace do tópico é limitado a uma região Conta da AWS e. Por exemplo, o `sensor/temp/room1` tópico usado por um Conta da AWS em uma região é diferente do `sensor/temp/room1` tópico usado pela mesma AWS conta em outra região ou usado por qualquer outra Conta da AWS em qualquer região.

## Tópico ARN
<a name="topicnames-arn"></a>

Todos os tópicos ARNs (Amazon Resource Names) têm o seguinte formato:

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

Por exemplo, `arn:aws:iot:us-west-2:123EXAMPLE456:topic/application/topic/device/sensor` é um ARN para o tópico ` application/topic/device/sensor`.

## Filtros de nomes de tópicos
<a name="topicfilters"></a>

Os clientes assinantes registram filtros de tópico no agente de mensagens a fim de especificar os tópicos que o agente de mensagens deve enviar a eles. Um filtro de nome de tópico pode corresponder a apenas um tópico ou incluir caracteres curinga para permitir a assinatura de vários nomes de tópico simultaneamente.

Os clientes de publicação não podem usar caracteres curinga nos nomes de tópicos que publicam. 

A tabela a seguir lista os caracteres curinga que podem ser usados em um filtro de tópico. 


**Curingas de tópicos**  

| Caractere curinga | Correspondências | Observações | 
| --- | --- | --- | 
| \# | Todas as strings de caracteres em e abaixo de seu nível na hierarquia de tópicos. | Deve ser o último caractere no filtro de tópico. <br />Deve ser o único caractere no nível da hierarquia de tópicos.<br />Pode ser usado em um filtro de tópico que também contém o caractere curinga \+. | 
| \+ | Qualquer string no nível que contém o caractere. | Deve ser o único caractere no nível da hierarquia de tópicos.<br />Pode ser usado em vários níveis de um filtro de tópico. | 

Exemplos de uso de curingas com o nome de tópico do sensor anterior:
+ Uma assinatura de `sensor/#` recebe mensagens publicadas em `sensor/`, `sensor/temperature`, `sensor/temperature/room1`, mas não mensagens publicadas em `sensor`. 
+ Uma assinatura de `sensor/+/room1` recebe mensagens publicadas em `sensor/temperature/room1` e `sensor/humidity/room1`, mas não mensagens enviadas para `sensor/temperature/room2` ou `sensor/humidity/room2`.

### ARN do filtro do tópico
<a name="topicfilters-arn"></a>

Todos os filtros de tópicos ARNs (Amazon Resource Names) têm o seguinte formato:

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

Por exemplo, `arn:aws:iot:us-west-2:123EXAMPLE456:topicfilter/application/topic/+/sensor` é um ARN para o filtro de tópicos` application/topic/+/sensor`.