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

Un toolkit Delphi natif, sans dépendances, pour Amazon Web Services. Signez et envoyez des requêtes REST à S3, poussez des messages dans SQS, pilotez AWS IoT Core via MQTT-sur-WebSocket, invoquez des fonctions Lambda, parlez à DynamoDB et Bedrock, et générez des clients Pascal fortement typés pour n'importe quelle API AWS à partir de sa spécification OpenAPI / Smithy — le tout depuis un même ensemble de composants sgcWebSockets.

Une seule pile réseau, tous les services AWS

Pas de runtime Java, pas de boto3 Python, pas de pont Node — juste des composants Pascal qui parlent HTTPS, MQTT, WebSocket et AMQP directement à l'edge AWS.

Amazon Web Services expose plus de 250 API — stockage, queueing, IoT, calcul, machine learning, identité, DNS, CDN, recherche, RDBMS, gestion de clés et des dizaines d'autres. Le SDK officiel d'AWS est livré en Java, Python, JavaScript, Go, Ruby, PHP et .NET, mais pas en Delphi ni en C++Builder. sgcWebSockets comble ce manque avec un ensemble cohérent de composants natifs : TsgcHTTP_API_AmazonSQS pour le queueing, TsgcWSAPI_AWSIoT pour MQTT sur WebSocket (Signature v4 presigned), TsgcHTTPClient avec le signer AWS Signature v4 intégré pour n'importe quel service REST, et le générateur de code sgcOpenAPI pour la longue traîne des services qui publient une spécification lisible par machine.

L'authentification est uniforme : une paire access key + secret key (ou un jeton de session STS temporaire avec assomption de rôle IAM), une région et un identifiant de service. L'helper Signature v4 calcule la requête canonique, la string-to-sign, la chaîne HMAC et l'en-tête Authorization pour chaque appel sortant, de sorte que chaque endpoint AWS — du PUT S3 au InvokeModel de Bedrock — parle le même dialecte. Tout tourne sur Windows, macOS, Linux, iOS et Android avec la même source Pascal.

Composants principaux

TsgcHTTP_API_AmazonSQS, TsgcWSAPI_AWSIoT, TsgcHTTPClient + signer Signature v4.

Transport

HTTPS / HTTP/2 pour REST, MQTT 3.1.1 + 5 sur WebSocket pour IoT, WebSocket brut pour le streaming.

Plateformes

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

Générateur de code

sgcOpenAPI consomme n'importe quelle spécification OpenAPI / Smithy AWS et émet des classes client Pascal.

Wrappers de première classe + SDK générés pour le reste

Amazon S3

PUT / GET / DELETE d'objets, uploads multipart, URL pré-signées et listings de buckets via HTTPS avec Signature v4. Fonctionne contre tout stockage compatible S3 (MinIO, Wasabi, Backblaze B2, Cloudflare R2).

Amazon SQS

TsgcHTTP_API_AmazonSQS — créez des files, envoyez / recevez / supprimez des messages, FIFO + standard, dead-letter queues, envoi en batch en un seul appel.

AWS IoT Core

TsgcWSAPI_AWSIoT — MQTT 3.1.1 / 5 sur WebSocket avec URL pré-signées Signature v4 ou TLS mutuel X.509. Device shadow, jobs, fleet provisioning, authentification personnalisée.

AWS Lambda

Invocations synchrones (RequestResponse) et asynchrones (Event) sur l'endpoint /2015-03-31/functions/{name}/invocations. Renvoie la réponse JSON ou le trace ID X-Ray.

Amazon DynamoDB

PutItem, GetItem, Query, Scan et TransactWriteItems via le protocole JSON 1.0 — même composant, en-tête X-Amz-Target différent.

Amazon Bedrock

InvokeModel et InvokeModelWithResponseStream pour Claude, Llama, Mistral, Titan et Nova — la variante streaming utilise un codec event-stream enveloppé par le client HTTP/2.

Amazon SNS

Publier vers des topics et des cibles SMS, gérer les souscriptions et les endpoints de plateforme — HTTPS POST pur + Signature v4.

STS + Cognito

AssumeRole, GetSessionToken et sign-in / token-refresh des user pools Cognito — les flux OAuth2 interagissent avec TsgcOAuth2Client.

SDK AWS générés

sgcOpenAPI émet des classes client Pascal pour tout service AWS qui publie une spécification OpenAPI ou Smithy — la longue traîne de CloudWatch, Kinesis, ECS, EKS, EventBridge et compagnie.

Signature v4 pour chaque service

Chaque requête AWS — PUT S3, Query DynamoDB, Invoke Lambda, et même l'URL pré-signée MQTT-sur-WebSocket utilisée par AWS IoT — porte un en-tête Authorization: AWS4-HMAC-SHA256 (ou query string) dérivé de votre access key, secret key, région et nom de service. sgcWebSockets livre un unique helper Pascal Signature v4 qui prend en charge la construction de la requête canonique, la string-to-sign, le chaînage HMAC et la détection de dérive d'horloge — réutilisable depuis n'importe quel composant HTTP / WebSocket / MQTT. Combiné avec TsgcOAuth2Client pour les flux STS / Cognito et le motif intégré d'assomption de rôle IAM, vous obtenez la même posture de sécurité que les SDK officiels dans n'importe quel autre langage.

Upload vers S3 et publication sur SQS

Un snippet de 30 lignes qui charge un fichier dans un bucket S3 et place une notification dans SQS — le « hello world » canonique de l'automatisation AWS.

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 sur WebSocket avec Signature v4

AWS IoT Core accepte MQTT sur TLS (port 8883) avec TLS mutuel X.509, MQTT sur WebSocket (port 443) signé avec Signature v4, ou MQTT avec un autorisateur personnalisé. TsgcWSAPI_AWSIoT prend en charge les trois — le transport WebSocket est le chemin le plus simple depuis les réseaux d'entreprise qui bloquent 8883, et le composant génère l'URL pré-signée de manière transparente à partir de votre 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;

Trois étapes vers votre premier appel AWS

1. Installer

Déposez sgcWebSockets dans votre installation Delphi ou C++Builder — un package IDE par version de Delphi de 7 à 13. Téléchargez l'essai.

2. Créer un utilisateur IAM

Dans la console AWS, créez un utilisateur IAM à accès programmatique, attachez-lui une policy au plus juste privilège, et copiez la paire access-key / secret-key.

3. Déposez un composant

Pour SQS utilisez TsgcHTTP_API_AmazonSQS, pour IoT utilisez TsgcWSAPI_AWSIoT, pour tout le reste utilisez TsgcHTTPClient avec l'helper Signature v4.

Articles de blog connexes

SDK Amazon AWS Delphi

Aperçu de la façon dont sgcWebSockets expose la surface AWS aux développeurs Pascal.

Composant Amazon SQS pour Delphi

Pas-à-pas de TsgcHTTP_API_AmazonSQS — files, FIFO, batching, routage dead-letter.

AWS IoT MQTT avec Signature v4

Comment piloter AWS IoT Core via MQTT-sur-WebSocket sans certificats X.509.

Authentification personnalisée AWS IoT

Utilisez un autorisateur Lambda pour émettre des credentials MQTT à la volée.

AWS Cognito + OAuth2

Fédérez les utilisateurs et obtenez des tokens de session STS depuis les user pools Cognito.

Amazon Braket depuis Delphi

Parlez au service de calcul quantique d'Amazon via le SDK généré.

Livrez des intégrations AWS dans votre app Delphi dès aujourd'hui

Téléchargez l'essai — les démos AWS couvrent S3, SQS, IoT et Lambda avec des projets d'exemple prêts à compiler.