

Aviso de fim do suporte: em 15 de dezembro de 2025, AWS encerrará o suporte para AWS IoT Analytics. Depois de 15 de dezembro de 2025, você não poderá mais acessar o AWS IoT Analytics console ou os AWS IoT Analytics recursos. Para obter mais informações, consulte [AWS IoT Analytics Fim do suporte](https://docs.aws.amazon.com/iotanalytics/latest/userguide/iotanalytics-end-of-support.html).

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á.

# Ingestão de dados para AWS IoT Analytics
<a name="ingest-data"></a>

Se você tem um canal que roteia dados pra um pipeline que armazena os dados em um datastore onde eles podem ser consultados, está pronto para enviar dados de mensagem para o AWS IoT Analytics. Veja a seguir dois métodos para inserir dados no AWS IoT Analytics. Você pode enviar uma mensagem usando o agente de AWS IoT mensagens ou usar a AWS IoT Analytics `BatchPutMessage` API.

**Topics**
+ [Usando o mediador de AWS IoT mensagens](#iot-message-broker)
+ [Usando a BatchPutMessage API](#batchputmessage-api)

## Usando o mediador de AWS IoT mensagens
<a name="iot-message-broker"></a>

Para usar o agente de AWS IoT mensagens, você cria uma regra usando o mecanismo de AWS IoT regras. A regra encaminha mensagens com um tópico específico para AWS IoT Analytics. No entanto, essa regra exige que primeiro você crie uma função que conceda as permissões necessárias. 

### Criar um perfil do IAM
<a name="create-iam-role"></a>

Para que AWS IoT as mensagens sejam roteadas para um AWS IoT Analytics canal, você configura uma regra. Mas primeiro, você precisa criar uma função do IAM que conceda a essa regra permissão para enviar dados de mensagens para um AWS IoT Analytics canal.

Execute o comando da a seguir para criar a função.

```
aws iam create-role --role-name myAnalyticsRole --assume-role-policy-document file://arpd.json
```

O conteúdo do arquivo `arpd.json` deve ser semelhante ao seguinte exemplo:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Em seguida, anexe um documento de política para a função.

```
aws iam put-role-policy --role-name myAnalyticsRole --policy-name myAnalyticsPolicy --policy-document file://pd.json
```

O conteúdo do arquivo `pd.json` deve ser semelhante ao seguinte exemplo:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iotanalytics:BatchPutMessage",
            "Resource": [
                "arn:aws:iotanalytics:{{us-east-1}}:{{111122223333}}:channel/{{your-channel}}"
            ]
        }
    ]
}
```

------

### Criando uma AWS IoT regra
<a name="create-iot-rule"></a>

Crie uma AWS IoT regra que envie mensagens para seu canal.

```
aws iot create-topic-rule --rule-name analyticsTestRule --topic-rule-payload file://rule.json
```

O conteúdo do arquivo `rule.json` deve ser semelhante ao seguinte exemplo:

```
{
    "sql": "SELECT * FROM 'iot/test'",
    "ruleDisabled": false,
    "awsIotSqlVersion": "2016-03-23",
    "actions": [ {
        "iotAnalytics": {
            "channelName": "mychannel",
            "roleArn": "arn:aws:iam::{{your-account-number}}:role/myAnalyticsRole"
        }
    } ]
}
```

Substitua `iot/test` pelo tópico MQTT das mensagens que devem ser roteadas. Substitua o nome do canal e a função por aqueles criados nas seções anteriores.

### Enviando mensagens MQTT para AWS IoT Analytics
<a name="send-mqtt-messages"></a>

Depois de unir uma regra a um canal, um canal a um pipeline e um pipeline a um armazenamento de dados, todos os dados correspondentes à regra agora fluem AWS IoT Analytics para o armazenamento de dados prontos para serem consultados. Para testar isso, você pode usar o AWS IoT console para enviar uma mensagem.

**nota**  
Os nomes dos campos das cargas (dados) das mensagens para AWS IoT Analytics as quais você envia.  
Devem conter apenas caracteres alfanuméricos e sublinhados (\_). Outros caracteres especiais não são permitidos.
Devem começar com um caractere alfabético ou com um sublinhado (\_).
Não podem conter hifens (-).
Em termos de expressões regulares: “`^[A-Za-z_]([A-Za-z0-9]*|[A-Za-z0-9][A-Za-z0-9_]*)$`”. 
Não podem ser maiores que 255 caracteres.
Não diferenciam maiúsculas de minúsculas. Campos denominados `foo` e `FOO` na mesma carga útil são considerados duplicatas.
Por exemplo, `{"temp_01": 29}` ou `{"_temp_01": 29}` são válidos, mas `{"temp-01": 29}`, `{"01_temp": 29}` ou `{"__temp_01": 29}` são inválidos em cargas úteis de mensagem.

1. No [console da AWS IoT](https://console.aws.amazon.com/iot/), no painel de navegação à esquerda, selecione **Ação**.  
![Captura de tela da página Monitor do console do AWS IoT .](http://docs.aws.amazon.com/pt_br/iotanalytics/latest/userguide/images/choose-test.png)

1. Na página MQTT do cliente, na seção **Publicar**, em **Especificar um tópico**, digite **iot/test**. Na seção de carga útil da mensagem, verifique se o conteúdo do JSON está presente ou digite-o se não estiver.

   ```
   {
       "message": "Hello from the IoT console"
   }
   ```

1. Selecione **Publicar em um tópico**.  
![Captura de tela da página “Teste” no AWS IoT console.](http://docs.aws.amazon.com/pt_br/iotanalytics/latest/userguide/images/publish.png)

   Isso publica uma mensagem que é roteado para o datastore que você criou anteriormente. 

## Usando a BatchPutMessage API
<a name="batchputmessage-api"></a>

Outra forma de inserir dados de mensagens AWS IoT Analytics é usar o comando `BatchPutMessage` da API. Esse método não exige que você configure uma AWS IoT regra para encaminhar mensagens com um tópico específico para o seu canal. Mas isso exige que o dispositivo que o envia data/messages para o canal seja capaz de executar o software criado com o AWS SDK ou de usar o AWS CLI to call`BatchPutMessage`. 

1. Crie um arquivo `messages.json` contendo as mensagens a serem enviadas (neste exemplo, apenas uma mensagem é enviada).

   ```
   [
       { "messageId": "message01", "payload": "{ \"message\": \"Hello from the CLI\" }" }
   ]
   ```

1. Execute o comando `batch-put-message`.

   ```
   aws iotanalytics batch-put-message  --channel-name mychannel  --messages file://messages.json --cli-binary-format raw-in-base64-out
   ```

   Se não houver erros, você verá a saída a seguir.

   ```
   {
       "batchPutMessageErrorEntries": []
   }
   ```