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

Un toolkit Delphi nativo, senza dipendenze, per Amazon Web Services. Firma e invia richieste REST a S3, accoda messaggi su SQS, pilota AWS IoT Core su MQTT-over-WebSocket, invoca funzioni Lambda, parla con DynamoDB e Bedrock, e genera client Pascal fortemente tipizzati per qualsiasi API AWS dalla sua specifica OpenAPI / Smithy — il tutto da un unico set di componenti sgcWebSockets.

Un solo stack di rete, ogni servizio AWS

Niente runtime Java, niente boto3 di Python, niente bridge Node — solo componenti Pascal che parlano HTTPS, MQTT, WebSocket e AMQP direttamente con l'edge AWS.

Amazon Web Services espone oltre 250 API — storage, code, IoT, compute, machine learning, identity, DNS, CDN, ricerca, RDBMS, key management e decine d'altro. L'SDK ufficiale di AWS viene rilasciato in Java, Python, JavaScript, Go, Ruby, PHP e .NET, ma non in Delphi o C++Builder. sgcWebSockets colma questo vuoto con un set coerente di componenti nativi: TsgcHTTP_API_AmazonSQS per le code, TsgcWSAPI_AWSIoT per MQTT su WebSocket (Signature v4 presigned), TsgcHTTPClient con il signer AWS Signature v4 integrato per qualsiasi servizio REST, e il generatore di codice sgcOpenAPI per la lunga coda di servizi che pubblicano una specifica leggibile da macchina.

L'autenticazione è uniforme: una coppia access key + secret key (o un token di sessione STS temporaneo con assunzione di ruolo IAM), regione e identificatore del servizio. L'helper Signature v4 calcola la richiesta canonica, la string-to-sign, la catena HMAC e l'header Authorization per ogni chiamata in uscita, così ogni endpoint AWS — da S3 PUT a Bedrock InvokeModel — parla lo stesso dialetto. Tutto gira su Windows, macOS, Linux, iOS e Android con lo stesso sorgente Pascal.

Componenti principali

TsgcHTTP_API_AmazonSQS, TsgcWSAPI_AWSIoT, TsgcHTTPClient + signer Signature v4.

Trasporto

HTTPS / HTTP/2 per REST, MQTT 3.1.1 + 5 su WebSocket per IoT, WebSocket puro per lo streaming.

Piattaforme

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

Generatore di codice

sgcOpenAPI consuma qualsiasi specifica OpenAPI / Smithy di AWS ed emette classi client Pascal.

Wrapper di prima classe + SDK generati per il resto

Amazon S3

PUT / GET / DELETE di oggetti, upload multipart, URL presignate e listing di bucket su HTTPS con Signature v4. Funziona con qualsiasi storage S3-compatibile (MinIO, Wasabi, Backblaze B2, Cloudflare R2).

Amazon SQS

TsgcHTTP_API_AmazonSQS — crea code, invia / ricevi / elimina messaggi, FIFO + standard, dead-letter queue, invio in batch con una sola chiamata.

AWS IoT Core

TsgcWSAPI_AWSIoT — MQTT 3.1.1 / 5 su WebSocket con URL presignate Signature v4 o TLS mutuo X.509. Device shadow, jobs, fleet provisioning, autenticazione personalizzata.

AWS Lambda

Invocazioni sincrone (RequestResponse) e asincrone (Event) sull'endpoint /2015-03-31/functions/{name}/invocations. Restituisce la risposta JSON o l'X-Ray trace ID.

Amazon DynamoDB

PutItem, GetItem, Query, Scan e TransactWriteItems via protocollo JSON 1.0 — stesso componente, header X-Amz-Target diverso.

Amazon Bedrock

InvokeModel e InvokeModelWithResponseStream per Claude, Llama, Mistral, Titan e Nova — la variante streaming usa un codec event-stream incapsulato dal client HTTP/2.

Amazon SNS

Publish su topic e destinazioni SMS, gestione di subscription ed endpoint di piattaforma — HTTPS POST puro + Signature v4.

STS + Cognito

AssumeRole, GetSessionToken e sign-in / token-refresh dello user pool Cognito — i flussi OAuth2 interoperano con TsgcOAuth2Client.

SDK AWS generati

sgcOpenAPI emette classi client Pascal per qualsiasi servizio AWS che pubblichi una specifica OpenAPI o Smithy — la lunga coda di CloudWatch, Kinesis, ECS, EKS, EventBridge e compagnia.

Signature v4 per ogni servizio

Ogni richiesta AWS — S3 PUT, DynamoDB Query, Lambda Invoke, persino l'URL presignata MQTT-over-WebSocket usata da AWS IoT — porta un header Authorization: AWS4-HMAC-SHA256 (o query string) derivato da access key, secret key, regione e nome del servizio. sgcWebSockets fornisce un singolo helper Pascal Signature v4 che gestisce la costruzione della richiesta canonica, la string-to-sign, l'HMAC chaining e il rilevamento di clock-skew — riutilizzabile da qualsiasi componente HTTP / WebSocket / MQTT. Combinato con TsgcOAuth2Client per i flussi STS / Cognito e con il pattern integrato di assunzione di ruolo IAM, ottieni la stessa postura di sicurezza degli SDK ufficiali in qualsiasi altro linguaggio.

Carica su S3 e pubblica su SQS

Uno snippet di 30 righe che carica un file su un bucket S3 e accoda una notifica su SQS — il canonico “hello world” dell'automazione 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 su WebSocket con Signature v4

AWS IoT Core accetta MQTT su TLS (porta 8883) con TLS mutuo X.509, MQTT su WebSocket (porta 443) firmato con Signature v4, o MQTT con un autorizzatore personalizzato. TsgcWSAPI_AWSIoT gestisce tutti e tre — il trasporto WebSocket è il percorso più semplice dalle reti aziendali che bloccano l'8883, e il componente genera in modo trasparente la URL presignata a partire dalla tua 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;

Tre passi alla tua prima chiamata AWS

1. Installa

Inserisci sgcWebSockets nella tua installazione Delphi o C++Builder — un package IDE per ogni versione di Delphi dalla 7 alla 13. Scarica la trial.

2. Crea un utente IAM

Nella console AWS, crea un utente IAM con accesso programmatico, allega una policy di minimo privilegio e copia la coppia access-key / secret-key.

3. Trascina un componente

Per SQS usa TsgcHTTP_API_AmazonSQS, per IoT usa TsgcWSAPI_AWSIoT, per tutto il resto usa TsgcHTTPClient con l'helper Signature v4.

Post del blog correlati

SDK Amazon AWS Delphi

Panoramica su come sgcWebSockets espone la superficie AWS agli sviluppatori Pascal.

Componente Amazon SQS per Delphi

Walk-through passo passo di TsgcHTTP_API_AmazonSQS — code, FIFO, batching, dead-letter routing.

AWS IoT MQTT con Signature v4

Come pilotare AWS IoT Core su MQTT-over-WebSocket senza certificati X.509.

Autenticazione personalizzata AWS IoT

Usa un autorizzatore Lambda per emettere credenziali MQTT al volo.

AWS Cognito + OAuth2

Federa utenti e ottieni token di sessione STS dagli user pool di Cognito.

Amazon Braket da Delphi

Parla con il servizio di quantum computing di Amazon tramite l'SDK generato.

Spedisci integrazioni AWS nella tua app Delphi oggi

Scarica la trial — le demo AWS coprono S3, SQS, IoT e Lambda con progetti d'esempio pronti da compilare.