Delphi-AWS-SDK — S3, SQS, IoT, Lambda, DynamoDB

Ein natives, abhängigkeitsfreies Delphi-Toolkit für Amazon Web Services. REST-Anfragen an S3 signieren und senden, Nachrichten an SQS schicken, AWS IoT Core über MQTT-on-WebSocket steuern, Lambda-Funktionen aufrufen, mit DynamoDB und Bedrock sprechen und für jede AWS-API streng typisierte Pascal-Clients aus ihrer OpenAPI-/Smithy-Spezifikation generieren — alles aus einem einzigen Satz sgcWebSockets-Komponenten.

Ein Netzwerk-Stack, jeder AWS-Dienst

Keine Java-Runtime, kein Python-boto3, keine Node-Bridge — nur Pascal-Komponenten, die HTTPS, MQTT, WebSocket und AMQP direkt mit dem AWS-Edge sprechen.

Amazon Web Services bietet mehr als 250 APIs — Storage, Queueing, IoT, Compute, Machine Learning, Identity, DNS, CDN, Suche, RDBMS, Key Management und Dutzende mehr. Das offizielle AWS-SDK gibt es in Java, Python, JavaScript, Go, Ruby, PHP und .NET, aber nicht in Delphi oder C++Builder. sgcWebSockets schließt diese Lücke mit einem stimmigen Satz nativer Komponenten: TsgcHTTP_API_AmazonSQS für Queueing, TsgcWSAPI_AWSIoT für MQTT über WebSocket (Signature v4 presigned), TsgcHTTPClient mit dem eingebauten AWS-Signature-v4-Signer für jeden REST-Dienst und dem sgcOpenAPI-Codegenerator für die lange Reihe an Diensten, die eine maschinenlesbare Spezifikation veröffentlichen.

Die Authentifizierung ist einheitlich: ein Access-Key/Secret-Key-Paar (oder ein temporäres STS-Session-Token mit IAM-Rollenübernahme), Region und Service-Identifier. Der Signature-v4-Helper berechnet die kanonische Anfrage, den String-to-Sign, die HMAC-Kette und den Authorization-Header für jeden ausgehenden Call, sodass jeder AWS-Endpunkt — von S3 PUT bis Bedrock InvokeModel — denselben Dialekt spricht. Alles läuft auf Windows, macOS, Linux, iOS und Android mit demselben Pascal-Quelltext.

Kernkomponenten

TsgcHTTP_API_AmazonSQS, TsgcWSAPI_AWSIoT, TsgcHTTPClient + Signature-v4-Signer.

Transport

HTTPS / HTTP/2 für REST, MQTT 3.1.1 + 5 über WebSocket für IoT, reines WebSocket für Streaming.

Plattformen

Windows, macOS, Linux, iOS, Android, .NET.

Code-Generator

sgcOpenAPI verarbeitet jede AWS-OpenAPI-/Smithy-Spezifikation und erzeugt Pascal-Client-Klassen.

First-Class-Wrapper + generierte SDKs für den Rest

Amazon S3

PUT / GET / DELETE von Objekten, Multipart-Uploads, presigned URLs und Bucket-Listings über HTTPS mit Signature v4. Funktioniert gegen jeden S3-kompatiblen Speicher (MinIO, Wasabi, Backblaze B2, Cloudflare R2).

Amazon SQS

TsgcHTTP_API_AmazonSQS — Queues anlegen, Nachrichten senden / empfangen / löschen, FIFO + Standard, Dead-Letter-Queues, gebündelter Versand mit einem Methodenaufruf.

AWS IoT Core

TsgcWSAPI_AWSIoT — MQTT 3.1.1 / 5 über WebSocket mit Signature-v4-presigned-URLs oder X.509-Mutual-TLS. Device Shadow, Jobs, Fleet Provisioning, Custom Authentication.

AWS Lambda

Synchrone (RequestResponse) und asynchrone (Event) Aufrufe gegen den Endpunkt /2015-03-31/functions/{name}/invocations. Liefert die JSON-Antwort oder die X-Ray-Trace-ID zurück.

Amazon DynamoDB

PutItem, GetItem, Query, Scan und TransactWriteItems über das JSON-1.0-Protokoll — dieselbe Komponente, anderer X-Amz-Target-Header.

Amazon Bedrock

InvokeModel und InvokeModelWithResponseStream für Claude, Llama, Mistral, Titan und Nova — die Streaming-Variante nutzt einen Event-Stream-Codec, den der HTTP/2-Client kapselt.

Amazon SNS

Veröffentlichen an Topics und SMS-Ziele, Verwalten von Subscriptions und Plattform-Endpunkten — reines HTTPS POST + Signature v4.

STS + Cognito

AssumeRole, GetSessionToken sowie Cognito-User-Pool-Sign-in / Token-Refresh — die OAuth2-Flows arbeiten mit TsgcOAuth2Client zusammen.

Generierte AWS-SDKs

sgcOpenAPI erzeugt Pascal-Client-Klassen für jeden AWS-Dienst, der eine OpenAPI- oder Smithy-Spezifikation veröffentlicht — der lange Rest aus CloudWatch, Kinesis, ECS, EKS, EventBridge und Freunden.

Signature v4 für jeden Dienst

Jeder AWS-Request — S3 PUT, DynamoDB Query, Lambda Invoke, sogar die von AWS IoT verwendete MQTT-on-WebSocket-presigned-URL — trägt einen Authorization: AWS4-HMAC-SHA256-Header (oder Query-String), abgeleitet aus deinem Access-Key, Secret-Key, der Region und dem Service-Namen. sgcWebSockets liefert einen einzigen Pascal-Signature-v4-Helper, der den Aufbau der kanonischen Anfrage, den String-to-Sign, das HMAC-Chaining und die Erkennung von Uhrabweichungen übernimmt — wiederverwendbar aus jeder HTTP-/WebSocket-/MQTT-Komponente. Kombiniert mit TsgcOAuth2Client für STS-/Cognito-Flows und dem eingebauten IAM-Role-Assumption-Muster erhältst du dieselbe Sicherheitslage wie die offiziellen SDKs in anderen Sprachen.

Auf S3 hochladen und in SQS veröffentlichen

Ein 30-Zeilen-Snippet, das eine Datei in einen S3-Bucket lädt und eine Benachrichtigung in SQS einreiht — das kanonische „Hello World“ der AWS-Automatisierung.

uses
  sgcHTTP_Client, sgcHTTP_API_AmazonSQS, sgcAWS_SignatureV4;

var
  vHTTP:    TsgcHTTPClient;
  vSigner:  TsgcAWSSignatureV4;
  vSQS:     TsgcHTTP_API_AmazonSQS;
  vStream:  TFileStream;
begin
  // ----- 1) Upload a file to S3 -----
  vHTTP   := TsgcHTTPClient.Create(nil);
  vSigner := TsgcAWSSignatureV4.Create;
  try
    vSigner.AccessKey := 'AKIA...';
    vSigner.SecretKey := 'wJalrXUtn...';
    vSigner.Region    := 'eu-west-1';
    vSigner.Service   := 's3';

    vStream := TFileStream.Create('report.pdf', fmOpenRead);
    try
      vSigner.Sign(vHTTP, 'PUT',
        'https://my-bucket.s3.eu-west-1.amazonaws.com/report.pdf', vStream);
      vHTTP.Put('https://my-bucket.s3.eu-west-1.amazonaws.com/report.pdf', vStream);
    finally
      vStream.Free;
    end;

    // ----- 2) Push a notification on SQS -----
    vSQS := TsgcHTTP_API_AmazonSQS.Create(nil);
    try
      vSQS.AccessKey := 'AKIA...';
      vSQS.SecretKey := 'wJalrXUtn...';
      vSQS.Region    := 'eu-west-1';
      vSQS.QueueUrl  := 'https://sqs.eu-west-1.amazonaws.com/123456789012/uploads';
      vSQS.SendMessage('{"event":"upload","key":"report.pdf"}');
    finally
      vSQS.Free;
    end;
  finally
    vSigner.Free;
    vHTTP.Free;
  end;
end;

MQTT über WebSocket mit Signature v4

AWS IoT Core akzeptiert MQTT über TLS (Port 8883) mit X.509-Mutual-TLS, MQTT über WebSocket (Port 443) mit Signature v4 signiert oder MQTT mit einem benutzerdefinierten Authorizer. TsgcWSAPI_AWSIoT beherrscht alle drei — der WebSocket-Transport ist der einfachste Weg aus Firmennetzen, die 8883 blockieren, und die Komponente erzeugt die presigned URL transparent aus deinem Access-Key.

uses
  sgcWSAPI_AWSIoT;

var
  vIoT: TsgcWSAPI_AWSIoT;
begin
  vIoT := TsgcWSAPI_AWSIoT.Create(nil);
  try
    vIoT.Authentication.SignatureV4.AccessKey := 'AKIA...';
    vIoT.Authentication.SignatureV4.SecretKey := 'wJalrXUtn...';
    vIoT.Authentication.SignatureV4.Region    := 'eu-west-1';
    vIoT.Host       := 'a1b2c3d4e5f6g7-ats.iot.eu-west-1.amazonaws.com';
    vIoT.OnMQTTConnect      := DoMQTTConnect;
    vIoT.OnMQTTSubscribe    := DoMQTTSubscribe;
    vIoT.OnMQTTPublish      := DoMQTTPublish;
    vIoT.Active := True;
  finally
    vIoT.Free;
  end;
end;

Drei Schritte zu deinem ersten AWS-Call

1. Installieren

Zieh sgcWebSockets in deine Delphi- oder C++Builder-Installation — ein IDE-Package pro Delphi-Version 7 bis 13. Testversion herunterladen.

2. IAM-User anlegen

Lege in der AWS-Konsole einen IAM-User mit Programmzugriff an, hänge eine Least-Privilege-Policy an und kopiere das Access-Key-/Secret-Key-Paar.

3. Komponente platzieren

Für SQS TsgcHTTP_API_AmazonSQS, für IoT TsgcWSAPI_AWSIoT, für alles Übrige TsgcHTTPClient mit dem Signature-v4-Helper.

Verwandte Blog-Beiträge

Delphi-Amazon-AWS-SDK

Überblick darüber, wie sgcWebSockets die AWS-Oberfläche für Pascal-Entwickler verfügbar macht.

Amazon-SQS-Komponente für Delphi

Schrittweiser Durchlauf von TsgcHTTP_API_AmazonSQS — Queues, FIFO, Batching, Dead-Letter-Routing.

AWS IoT MQTT mit Signature v4

Wie man AWS IoT Core über MQTT-on-WebSocket ohne X.509-Zertifikate steuert.

AWS-IoT-Custom-Authentication

Mit einem Lambda-Authorizer MQTT-Credentials zur Laufzeit ausstellen.

AWS Cognito + OAuth2

Nutzer föderieren und STS-Session-Tokens aus Cognito User Pools beziehen.

Amazon Braket aus Delphi

Den Quantencomputer-Dienst von Amazon über das generierte SDK ansprechen.

AWS-Integrationen heute in deine Delphi-App bringen

Lade die Testversion herunter — die AWS-Demos decken S3, SQS, IoT und Lambda mit fertig kompilierbaren Beispielprojekten ab.