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

Un toolkit Delphi nativo, sin dependencias, para Amazon Web Services. Firma y envía peticiones REST a S3, encola mensajes en SQS, controla AWS IoT Core sobre MQTT-en-WebSocket, invoca funciones Lambda, habla con DynamoDB y Bedrock, y genera clientes Pascal fuertemente tipados para cualquier API AWS desde su especificación OpenAPI / Smithy — todo desde un único conjunto de componentes sgcWebSockets.

Una sola pila de red, todos los servicios AWS

Sin runtime Java, sin boto3 de Python, sin puente Node — sólo componentes Pascal que hablan HTTPS, MQTT, WebSocket y AMQP directamente al borde de AWS.

Amazon Web Services expone más de 250 APIs — almacenamiento, colas, IoT, cómputo, machine learning, identidad, DNS, CDN, búsqueda, RDBMS, gestión de claves y docenas más. El SDK oficial de AWS se distribuye en Java, Python, JavaScript, Go, Ruby, PHP y .NET, pero no en Delphi ni C++Builder. sgcWebSockets cubre ese hueco con un conjunto coherente de componentes nativos: TsgcHTTP_API_AmazonSQS para colas, TsgcWSAPI_AWSIoT para MQTT sobre WebSocket (Signature v4 presignado), TsgcHTTPClient con el firmador integrado AWS Signature v4 para cualquier servicio REST, y el generador de código sgcOpenAPI para la larga cola de servicios que publican una especificación legible por máquina.

La autenticación es uniforme: un par access key + secret key (o un token de sesión temporal STS con asunción de rol IAM), región e identificador de servicio. El helper de Signature v4 calcula la petición canónica, el string-to-sign, la cadena HMAC y la cabecera Authorization para cada llamada saliente, de modo que cada endpoint AWS — desde un PUT de S3 hasta InvokeModel de Bedrock — habla el mismo dialecto. Todo se ejecuta en Windows, macOS, Linux, iOS y Android con el mismo código fuente Pascal.

Componentes principales

TsgcHTTP_API_AmazonSQS, TsgcWSAPI_AWSIoT, TsgcHTTPClient + firmador Signature v4.

Transporte

HTTPS / HTTP/2 para REST, MQTT 3.1.1 + 5 sobre WebSocket para IoT, WebSocket puro para streaming.

Plataformas

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

Generador de código

sgcOpenAPI consume cualquier especificación OpenAPI / Smithy de AWS y emite clases cliente Pascal.

Wrappers de primera + SDKs generados para el resto

Amazon S3

PUT / GET / DELETE de objetos, subidas multipart, URLs presignadas y listados de buckets sobre HTTPS con Signature v4. Funciona contra cualquier almacén compatible con S3 (MinIO, Wasabi, Backblaze B2, Cloudflare R2).

Amazon SQS

TsgcHTTP_API_AmazonSQS — crea colas, envía / recibe / elimina mensajes, FIFO + estándar, colas de mensajes fallidos, envío por lotes con una sola llamada.

AWS IoT Core

TsgcWSAPI_AWSIoT — MQTT 3.1.1 / 5 sobre WebSocket con URLs presignadas Signature v4 o TLS mutuo X.509. Device shadow, jobs, fleet provisioning, autenticación personalizada.

AWS Lambda

Invocaciones síncronas (RequestResponse) y asíncronas (Event) contra el endpoint /2015-03-31/functions/{name}/invocations. Devuelve la respuesta JSON o el ID de traza X-Ray.

Amazon DynamoDB

PutItem, GetItem, Query, Scan y TransactWriteItems vía el protocolo JSON 1.0 — mismo componente, distinta cabecera X-Amz-Target.

Amazon Bedrock

InvokeModel e InvokeModelWithResponseStream para Claude, Llama, Mistral, Titan y Nova — la variante streaming usa un códec event-stream envuelto por el cliente HTTP/2.

Amazon SNS

Publica en topics y destinos SMS, gestiona suscripciones y endpoints de plataforma — HTTPS POST puro + Signature v4.

STS + Cognito

AssumeRole, GetSessionToken y sign-in / token-refresh de Cognito user-pool — los flujos OAuth2 interoperan con TsgcOAuth2Client.

SDKs AWS generados

sgcOpenAPI emite clases cliente Pascal para cualquier servicio AWS que publique una especificación OpenAPI o Smithy — la larga cola de CloudWatch, Kinesis, ECS, EKS, EventBridge y compañía.

Signature v4 para cada servicio

Cada petición AWS — S3 PUT, DynamoDB Query, Lambda Invoke, incluso la URL presignada MQTT-en-WebSocket que usa AWS IoT — lleva una cabecera Authorization: AWS4-HMAC-SHA256 (o query string) derivada de tu access key, secret key, región y nombre de servicio. sgcWebSockets incluye un único helper Pascal de Signature v4 que se encarga de la construcción de la petición canónica, el string-to-sign, el encadenado HMAC y la detección de desfase de reloj — reutilizable desde cualquier componente HTTP / WebSocket / MQTT. Combinado con TsgcOAuth2Client para los flujos STS / Cognito y el patrón integrado de asunción de rol IAM, obtienes la misma postura de seguridad que los SDKs oficiales en cualquier otro lenguaje.

Sube a S3 y publica en SQS

Un fragmento de 30 líneas que sube un archivo a un bucket S3 y encola una notificación en SQS — el clásico “hello world” de la automatización 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 sobre WebSocket con Signature v4

AWS IoT Core acepta MQTT sobre TLS (puerto 8883) con TLS mutuo X.509, MQTT sobre WebSocket (puerto 443) firmado con Signature v4, o MQTT con un autorizador personalizado. TsgcWSAPI_AWSIoT gestiona los tres — el transporte WebSocket es el camino más sencillo desde redes corporativas que bloquean el 8883, y el componente genera la URL presignada de forma transparente a partir de tu 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;

Tres pasos hasta tu primera llamada AWS

1. Instalar

Suelta sgcWebSockets en tu instalación de Delphi o C++Builder — un paquete IDE por versión de Delphi 7 hasta 13. Descarga la prueba.

2. Crear un usuario IAM

En la consola de AWS, crea un usuario IAM con acceso programático, asígnale una política de mínimo privilegio y copia el par access-key / secret-key.

3. Arrastra un componente

Para SQS usa TsgcHTTP_API_AmazonSQS, para IoT usa TsgcWSAPI_AWSIoT, para todo lo demás usa TsgcHTTPClient con el helper Signature v4.

Entradas de blog relacionadas

SDK Amazon AWS para Delphi

Visión general de cómo sgcWebSockets expone la superficie AWS a los desarrolladores Pascal.

Componente Amazon SQS para Delphi

Recorrido paso a paso de TsgcHTTP_API_AmazonSQS — colas, FIFO, batching, enrutado a dead-letter.

AWS IoT MQTT con Signature v4

Cómo controlar AWS IoT Core sobre MQTT-en-WebSocket sin certificados X.509.

Autenticación personalizada de AWS IoT

Usa un autorizador Lambda para emitir credenciales MQTT al vuelo.

AWS Cognito + OAuth2

Federa usuarios y obtén tokens de sesión STS desde Cognito user pools.

Amazon Braket desde Delphi

Habla con el servicio de computación cuántica de Amazon a través del SDK generado.

Lanza integraciones AWS en tu app Delphi hoy

Descarga la prueba — las demos AWS cubren S3, SQS, IoT y Lambda con proyectos de ejemplo listos para compilar.