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

Een native Delphi-toolkit zonder afhankelijkheden voor Amazon Web Services. Onderteken en verzend REST-requests naar S3, plaats berichten op SQS, stuur AWS IoT Core over MQTT-over-WebSocket, roep Lambda-functies aan, praat met DynamoDB en Bedrock, en genereer sterk getypeerde Pascal-clients voor elke AWS-API vanuit de OpenAPI- / Smithy-specificatie — allemaal vanuit één set sgcWebSockets-componenten.

Eén netwerkstack, elke AWS-service

Geen Java-runtime, geen Python-boto3, geen Node-bridge — alleen Pascal-componenten die rechtstreeks HTTPS, MQTT, WebSocket en AMQP spreken met de AWS-edge.

Amazon Web Services biedt meer dan 250 API’s — storage, queueing, IoT, compute, machine learning, identity, DNS, CDN, search, RDBMS, key management en tientallen andere. De officiële AWS SDK is beschikbaar in Java, Python, JavaScript, Go, Ruby, PHP en .NET, maar niet in Delphi of C++Builder. sgcWebSockets vult dat gat met een samenhangende set native componenten: TsgcHTTP_API_AmazonSQS voor queueing, TsgcWSAPI_AWSIoT voor MQTT over WebSocket (Signature v4 presigned), TsgcHTTPClient met de ingebouwde AWS Signature v4-signer voor elke REST-service, en de sgcOpenAPI-codegenerator voor de long tail van services die een machine-leesbare specificatie publiceren.

Authenticatie verloopt uniform: een access key + secret key (of een tijdelijke STS-sessietoken met IAM-rolovername), region en service-identifier. De Signature v4-helper berekent de canonical request, de string-to-sign, de HMAC-keten en de Authorization-header voor elke uitgaande call, zodat elke AWS-endpoint — van S3 PUT tot Bedrock InvokeModel — hetzelfde dialect spreekt. Alles draait op Windows, macOS, Linux, iOS en Android met dezelfde Pascal-broncode.

Kerncomponenten

TsgcHTTP_API_AmazonSQS, TsgcWSAPI_AWSIoT, TsgcHTTPClient + Signature v4-signer.

Transport

HTTPS / HTTP/2 voor REST, MQTT 3.1.1 + 5 over WebSocket voor IoT, ruwe WebSocket voor streaming.

Platforms

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

Codegenerator

sgcOpenAPI verwerkt elke AWS OpenAPI- / Smithy-specificatie en levert Pascal-clientklassen.

First-class wrappers + gegenereerde SDK’s voor de rest

Amazon S3

PUT / GET / DELETE van objecten, multipart uploads, presigned URLs en bucket listings via HTTPS met Signature v4. Werkt tegen elke S3-compatibele store (MinIO, Wasabi, Backblaze B2, Cloudflare R2).

Amazon SQS

TsgcHTTP_API_AmazonSQS — queues aanmaken, berichten versturen / ontvangen / verwijderen, FIFO + standaard, dead-letter queues, batched send met één methodeaanroep.

AWS IoT Core

TsgcWSAPI_AWSIoT — MQTT 3.1.1 / 5 over WebSocket met Signature v4-presigned URLs of X.509-mutual TLS. Device shadow, jobs, fleet provisioning, custom authentication.

AWS Lambda

Synchrone (RequestResponse) en asynchrone (Event) invocaties op het endpoint /2015-03-31/functions/{name}/invocations. Geeft het JSON-antwoord of de X-Ray trace-ID terug.

Amazon DynamoDB

PutItem, GetItem, Query, Scan en TransactWriteItems via het JSON 1.0-protocol — zelfde component, andere X-Amz-Target-header.

Amazon Bedrock

InvokeModel en InvokeModelWithResponseStream voor Claude, Llama, Mistral, Titan en Nova — de streaming-variant gebruikt een event-stream codec die door de HTTP/2-client wordt afgehandeld.

Amazon SNS

Publiceren naar topics en SMS-doelen, subscriptions en platform endpoints beheren — pure HTTPS POST + Signature v4.

STS + Cognito

AssumeRole, GetSessionToken en Cognito user-pool sign-in / token-refresh — de OAuth2-flows werken samen met TsgcOAuth2Client.

Gegenereerde AWS SDK’s

sgcOpenAPI levert Pascal-clientklassen voor elke AWS-service die een OpenAPI- of Smithy-specificatie publiceert — de long tail van CloudWatch, Kinesis, ECS, EKS, EventBridge en vrienden.

Signature v4 voor elke service

Elke AWS-request — S3 PUT, DynamoDB Query, Lambda Invoke, zelfs de MQTT-over-WebSocket presigned URL die AWS IoT gebruikt — draagt een Authorization: AWS4-HMAC-SHA256-header (of query string) die is afgeleid van je access key, secret key, region en service-naam. sgcWebSockets levert één Pascal Signature v4-helper die het opbouwen van de canonical request, de string-to-sign, het HMAC-chaining en clock-skew-detectie afhandelt — herbruikbaar vanuit elke HTTP- / WebSocket- / MQTT-component. Gecombineerd met TsgcOAuth2Client voor STS- / Cognito-flows en het ingebouwde IAM-role-assumption-patroon krijg je dezelfde security-posture als de officiële SDK’s in elke andere taal.

Upload naar S3 en publiceer naar SQS

Een snippet van 30 regels dat een bestand naar een S3-bucket uploadt en een notificatie op SQS plaatst — de canonieke “hello world” van AWS-automatisering.

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 over WebSocket met Signature v4

AWS IoT Core accepteert MQTT over TLS (poort 8883) met X.509-mutual TLS, MQTT over WebSocket (poort 443) ondertekend met Signature v4, of MQTT met een custom authorizer. TsgcWSAPI_AWSIoT kan alle drie aan — het WebSocket-transport is de eenvoudigste route vanuit bedrijfsnetwerken die 8883 blokkeren, en het component genereert de presigned URL transparant uit je 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;

Drie stappen naar je eerste AWS-call

1. Installeren

Plaats sgcWebSockets in je Delphi- of C++Builder-installatie — één IDE-package per Delphi-versie 7 tot en met 13. Download de proefversie.

2. Maak een IAM-user

Maak in de AWS-console een IAM-user met programmatische toegang, hang er een least-privilege-policy aan en kopieer de access-key / secret-key.

3. Plaats een component

Voor SQS gebruik je TsgcHTTP_API_AmazonSQS, voor IoT TsgcWSAPI_AWSIoT, voor de rest TsgcHTTPClient met de Signature v4-helper.

Gerelateerde blogposts

Delphi Amazon AWS SDK

Overzicht hoe sgcWebSockets het AWS-oppervlak ontsluit voor Pascal-developers.

Amazon SQS-component voor Delphi

Stapsgewijze walkthrough van TsgcHTTP_API_AmazonSQS — queues, FIFO, batching, dead-letter routing.

AWS IoT MQTT met Signature v4

Hoe je AWS IoT Core aanstuurt over MQTT-over-WebSocket zonder X.509-certificaten.

Custom authentication voor AWS IoT

Gebruik een Lambda-authorizer om on-the-fly MQTT-credentials uit te geven.

AWS Cognito + OAuth2

Federate users en haal STS-sessietokens op uit Cognito user pools.

Amazon Braket vanuit Delphi

Praat met Amazons quantum-computing-service via de gegenereerde SDK.

Lever vandaag AWS-integraties in je Delphi-app

Download de proefversie — de AWS-demo’s dekken S3, SQS, IoT en Lambda met kant-en-klaar te compileren voorbeeldprojecten.