Reduzir custos do sistema de mensagens com Ingestão básica - AWS IoT Core

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

Reduzir custos do sistema de mensagens com Ingestão básica

Você pode usar o Basic Ingest para enviar dados do dispositivo com segurança para o Serviços da AWS suportadoAWS IoT ações de regras, sem incorrer em custos de mensagens. A Ingestão básica otimiza o fluxo de dados removendo o agente de mensagens de publicação/assinatura do caminho da ingestão.

A Ingestão básica pode enviar mensagens de seus dispositivos ou aplicativos. As mensagens têm nomes de tópicos que começam com $aws/rules/rule_name para os três primeiros níveis, onde rule_name é o nome da regra de AWS IoT que você deseja invocar.

Você pode continuar a usar uma regra existente com a Ingestão básica adicionando o prefixo de Ingestão básica ($aws/rules/rule_name) ao tópico da mensagem com o qual você normalmente invoca a regra. Por exemplo, se você tiver uma regra chamada BuildingManager que é invocada por mensagens com tópicos, como Buildings/Building5/Floor2/Room201/Lights ("sql": "SELECT * FROM 'Buildings/#'"), você poderá invocar a mesma regra com a Ingestão básica enviando uma mensagem com o tópico $aws/rules/BuildingManager/Buildings/Building5/Floor2/Room201/Lights.

Nota:

  • Seus dispositivos e regras não podem se inscrever em tópicos reservados da Ingestão básica. Para ter mais informações, consulte Tópicos reservados.

  • Se você precisar de um agente de publicação/assinatura para distribuir mensagens para vários assinantes (por exemplo, para entregar mensagens para outros dispositivos e para o mecanismo de regras), continue usando o agente de AWS IoT mensagens para lidar com a distribuição de mensagens. No entanto, certifique-se de publicar suas mensagens em tópicos que não sejam tópicos da Ingestão básica.

Usar a Ingestão básica

Antes de usar a Ingestão básica, verifique se seu dispositivo ou aplicativo está usando uma política com permissões de publicação em $aws/rules/*. Ou você pode especificar a permissão para regras individuais $aws/rules/rule_name/* dentro da política. Caso contrário, seus dispositivos e aplicativos poderão continuar a usar suas conexões existentes com o AWS IoT Core.

Quando a mensagem atinge o mecanismo de regras, não há diferença na implementação ou no tratamento de erros entre as regras invocadas pela Ingestão básica e as invocadas pelas assinaturas de agentes de mensagens.

Você pode criar regras para uso com a Ingestão básica. Lembre-se do seguinte:

  • O prefixo inicial de um tópico de Ingestão básica ($aws/rules/rule_name) não está disponível na função topic(Decimal).

  • Se você definir uma regra invocada apenas com a Ingestão básica, a cláusula FROM será opcional no campo sql da definição de rule. Ela ainda será necessária se a regra também for invocada por outras mensagens que devem ser enviadas por meio do agente de mensagens (por exemplo, porque essas outras mensagens devem ser distribuídas a vários assinantes). Para ter mais informações, consulte AWS IoT Referência SQL.

  • Os três primeiros níveis do tópico da Ingestão básica ($aws/rules/rule_name) não são inclusos no cálculo do tamanho máximo de 8 segmentos ou no limite total de 256 caracteres por tópico. Caso contrário, as mesmas restrições se aplicarão conforme documentado em Limites de AWS IoT.

  • Se uma mensagem for recebida com um tópico do Basic Ingest que especifica uma regra inativa ou uma regra que não existe, um registro de erros é criado em um registro da Amazon CloudWatch para ajudá-lo na depuração. Para ter mais informações, consulte Entradas de log do mecanismo de regras. Uma métrica RuleNotFound é indicada e você pode criar alarmes nessa métrica. Para obter mais informações, consulte Métricas de regras em Métricas de regra.

  • Você ainda poderá publicar com QoS 1 em tópicos de Ingestão básica. Você recebe uma PUBACK depois que a mensagem é entregue com êxito ao mecanismo de regras. O recebimento de uma PUBACK não indica que as ações da regra foram concluídas com êxito. Você pode configurar uma ação de erro para lidar com erros durante a execução de uma ação. Para ter mais informações, consulte Tratamento de erros (ação de erro).