AWS IoT Core

Conecte aplicações Delphi/C++Builder ao AWS IoT Core via MQTT. TLS mútuo com certificados X.509 ou WebSocket assinado com SigV4, além de integração com shadow e rule-engine.

TsgcIoTAmazon_MQTT_Client

Cliente AWS IoT Core MQTT 3.1.1 / MQTT 5 — autenticação via TLS mútuo X.509 ou SigV4 sobre WebSocket, assinaturas, mensagens retidas, will e restrições de client-id específicas da AWS.

Classe do componente

TsgcIoTAmazon_MQTT_Client

Protocolo

AWS IoT MQTT

Plataformas

Windows, macOS, Linux, iOS, Android

Edição

Standard / Professional / Enterprise

Defina credenciais, conecte, publique

Defina o endpoint AWS, aponte o componente para seu certificado/chave X.509 (ou forneça as chaves de acesso AWS para SigV4), depois conecte, assine e publique como em qualquer cliente MQTT.

uses
  sgcIoT;

var
  AWSIoT: TsgcIoTAmazon_MQTT_Client;
begin
  AWSIoT := TsgcIoTAmazon_MQTT_Client.Create(nil);
  AWSIoT.IoT.Host := 'a1b2c3d4e5f.iot.eu-west-1.amazonaws.com';

  // X.509 mutual TLS
  AWSIoT.IoT.Authentication := iotAuth_Certificate;
  AWSIoT.IoT.Certificate.CertFile := 'device.cert.pem';
  AWSIoT.IoT.Certificate.KeyFile  := 'device.private.key';
  AWSIoT.IoT.Certificate.RootCert := 'AmazonRootCA1.pem';

  AWSIoT.OnMQTTConnect := procedure(Connection: TsgcWSConnection;
    const Session: Boolean; const ReasonCode: Integer;
    const ReasonName: string;
    const ConnectProperties: TsgcWSMQTTCONNACKProperties)
  begin
    AWSIoT.Subscribe('devices/#');
  end;

  AWSIoT.Active := True;
  AWSIoT.Publish('devices/sensor1/telemetry', '{"temp":22.5}');
end;
// uses: sgcIoT
TsgcIoTAmazon_MQTT_Client *AWSIoT = new TsgcIoTAmazon_MQTT_Client(this);
AWSIoT->IoT->Host = "a1b2c3d4e5f.iot.eu-west-1.amazonaws.com";
AWSIoT->IoT->Authentication = iotAuth_Certificate;
AWSIoT->IoT->Certificate->CertFile = "device.cert.pem";
AWSIoT->IoT->Certificate->KeyFile  = "device.private.key";

AWSIoT->Active = true;

O que tem por dentro

Um cliente MQTT pré-configurado para AWS IoT Core que cuida das opções de autenticação e convenções de tópicos específicas da AWS.

TLS mútuo X.509

Defina IoT.Authentication := iotAuth_Certificate e carregue o certificado do dispositivo, a chave privada e o AmazonRootCA1.pem — o componente usa ALPN x-amzn-mqtt-ca na porta 443 quando necessário.

SigV4 sobre WebSocket

Para autenticação no estilo browser, defina IoT.Authentication := iotAuth_AccessKey e configure access-key / secret-key / region — o componente calcula a URL presignada com query-string SigV4.

MQTT 3.1.1 + MQTT 5

Alterne com MQTTVersion; o AWS IoT Core suporta ambos. As propriedades MQTT 5 (expiração de sessão, alias de tópico, propriedades de usuário) fluem pelos eventos MQTT padrão.

Convenções de tópicos AWS

A AWS reserva tópicos sob $aws/things/<thingName>/... para shadow, jobs e provisionamento. Assine-os como qualquer outro tópico para receber atualizações de shadow e atribuições de jobs.

Seguro para reconexão

Vincule o WatchDog ao cliente subjacente — ao desconectar, o componente reautentica (nova query-string SigV4, quando aplicável) e reassina os tópicos.

Limites de throughput

O AWS IoT impõe limites por conexão (QoS de publicação, throughput, tamanho de mensagem). Use um TsgcWSRateLimiter no lado da publicação para permanecer dentro da cota.

Especificações e referências

Fontes autoritativas do protocolo que este componente implementa.

Documentação e demos

Acesse a referência do componente, obtenha o projeto demo pronto para executar e baixe a versão de avaliação.

Ajuda online — TsgcIoTAmazon_MQTT_Client Referência completa de propriedades, métodos e eventos deste componente.
Projeto de demonstração — Demos\10.IoT_Clients Projeto de exemplo pronto para executar. Acompanha o pacote sgcWebSockets — baixe a versão de avaliação abaixo.
Documento técnico (PDF) Recursos, início rápido, exemplos de código para Delphi & C++ Builder e referências de fontes primárias — somente este componente.
Manual do usuário (PDF) Manual abrangente cobrindo todos os componentes da biblioteca.

Pronto para conectar Delphi ao AWS IoT?

Baixe a versão de avaliação gratuita e transmita telemetria IoT de dispositivos Delphi para o AWS IoT Core.