AWS IoT Core

MQTT를 통해 Delphi/C++Builder 애플리케이션을 AWS IoT Core에 연결하세요. X.509 인증서를 이용한 상호 TLS 또는 SigV4 서명 WebSocket을 지원하며, 디바이스 섀도우 및 규칙 엔진과 통합됩니다.

TsgcIoTAmazon_MQTT_Client

AWS IoT Core MQTT 3.1.1 / MQTT 5 클라이언트 — X.509 상호 TLS 또는 SigV4-over-WebSocket 인증, 구독, 보존 메시지, 유언 및 AWS 고유 클라이언트 ID 제약을 지원합니다.

컴포넌트 클래스

TsgcIoTAmazon_MQTT_Client

프로토콜

AWS IoT MQTT

플랫폼

Windows, macOS, Linux, iOS, Android

에디션

Standard / Professional / Enterprise

자격 증명 설정, 연결, 발행

AWS 엔드포인트 호스트를 설정하고, X.509 인증서/키를 지정하거나 SigV4용 AWS 액세스 키를 제공한 뒤 일반 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;

내부 구성

AWS 고유 인증 방식과 토픽 규칙을 처리하는 AWS IoT Core 전용 사전 구성 MQTT 클라이언트입니다.

X.509 상호 TLS

IoT.Authentication := iotAuth_Certificate을 설정하고 디바이스 인증서, 개인 키, AmazonRootCA1.pem을 로드하세요. 필요 시 컴포넌트는 포트 443에서 ALPN x-amzn-mqtt-ca를 사용합니다.

WebSocket을 통한 SigV4

브라우저 스타일 인증의 경우 IoT.Authentication := iotAuth_AccessKey를 설정하고 액세스 키 / 시크릿 키 / 리전을 구성하세요. 컴포넌트가 SigV4 쿼리 스트링 사전 서명 URL을 계산합니다.

MQTT 3.1.1 + MQTT 5

MQTTVersion으로 전환하세요. AWS IoT Core는 두 버전 모두 지원합니다. MQTT 5 속성(세션 만료, 토픽 별칭, 사용자 속성)은 표준 MQTT 이벤트를 통해 전달됩니다.

AWS 토픽 규칙

AWS는 섀도우, 작업 및 프로비저닝을 위해 $aws/things/<thingName>/... 아래 토픽을 예약합니다. 다른 토픽처럼 구독하여 섀도우 업데이트와 작업 할당을 수신하세요.

재연결 안전

기본 클라이언트에 WatchDog을 바인딩하세요. 연결 해제 시 컴포넌트가 재인증(해당하는 경우 새로운 SigV4 쿼리 스트링)하고 재구독합니다.

처리량 제한

AWS IoT는 연결별 제한(발행 QoS, 처리량, 메시지 크기)을 적용합니다. 발행 측에 TsgcWSRateLimiter를 사용하여 할당량 이하로 유지하세요.

사양 및 참고문헌

이 컴포넌트가 구현하는 프로토콜의 공식 출처입니다.

문서 및 데모

컴포넌트 레퍼런스로 바로 이동하고, 실행 가능한 데모 프로젝트를 받아보세요.

온라인 도움말 — TsgcIoTAmazon_MQTT_Client 이 컴포넌트의 전체 속성, 메서드 및 이벤트 레퍼런스입니다.
데모 프로젝트 — Demos\10.IoT_Clients 실행 가능한 예제 프로젝트입니다. sgcWebSockets 패키지에 포함되어 있습니다.
기술 문서 (PDF) Delphi 및 C++ Builder용 코드 샘플과 기능 설명이 포함된 기술 문서입니다.
사용자 매뉴얼 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 매뉴얼입니다.

Delphi를 AWS IoT에 연결할 준비가 되셨나요?

무료 체험판을 다운로드하고 Delphi 디바이스에서 AWS IoT Core로 IoT 텔레메트리를 스트리밍해 보세요.