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

Um toolkit Delphi nativo, sem dependências, para Amazon Web Services. Assine e envie requisições REST para S3, envie mensagens ao SQS, dirija o AWS IoT Core via MQTT-sobre-WebSocket, invoque funções Lambda, fale com DynamoDB e Bedrock, e gere clientes Pascal fortemente tipados para qualquer API AWS a partir da especificação OpenAPI / Smithy — tudo a partir de um único conjunto de componentes sgcWebSockets.

Uma stack de rede, cada serviço AWS

Sem runtime Java, sem boto3 Python, sem bridge Node — só componentes Pascal que falam HTTPS, MQTT, WebSocket e AMQP direto com o edge da AWS.

A Amazon Web Services expõe mais de 250 APIs — storage, filas, IoT, compute, machine learning, identidade, DNS, CDN, search, RDBMS, gerenciamento de chaves e dezenas mais. O SDK oficial da AWS é entregue em Java, Python, JavaScript, Go, Ruby, PHP e .NET, mas não em Delphi ou C++Builder. O sgcWebSockets preenche essa lacuna com um conjunto coerente de componentes nativos: TsgcHTTP_API_AmazonSQS para filas, TsgcWSAPI_AWSIoT para MQTT sobre WebSocket (Signature v4 presigned), TsgcHTTPClient com o signer Signature v4 embutido para qualquer serviço REST, e o gerador de código sgcOpenAPI para a cauda longa de serviços que publicam especificação legível por máquina.

A autenticação é uniforme: um par access key + secret key (ou um session token temporário do STS com assunção de IAM role), região e identificador de serviço. O helper Signature v4 calcula a requisição canônica, a string-to-sign, a cadeia HMAC e o cabeçalho Authorization para cada chamada de saída, de modo que cada endpoint AWS — de S3 PUT a Bedrock InvokeModel — fala o mesmo dialeto. Tudo roda em Windows, macOS, Linux, iOS e Android com o mesmo código Pascal.

Componentes principais

TsgcHTTP_API_AmazonSQS, TsgcWSAPI_AWSIoT, TsgcHTTPClient + signer 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.

Gerador de código

O sgcOpenAPI consome qualquer spec OpenAPI / Smithy da AWS e emite classes de cliente em Pascal.

Wrappers de primeira classe + SDKs gerados para o resto

Amazon S3

PUT / GET / DELETE de objetos, uploads multipart, URLs presigned e listagem de buckets via HTTPS com Signature v4. Funciona contra qualquer storage S3-compatível (MinIO, Wasabi, Backblaze B2, Cloudflare R2).

Amazon SQS

TsgcHTTP_API_AmazonSQS — crie filas, envie / receba / exclua mensagens, FIFO + standard, dead-letter queues, batched send em uma chamada de método.

AWS IoT Core

TsgcWSAPI_AWSIoT — MQTT 3.1.1 / 5 sobre WebSocket com URLs presigned Signature v4 ou TLS mútuo X.509. Device shadow, jobs, fleet provisioning, autenticação customizada.

AWS Lambda

Invocações síncronas (RequestResponse) e assíncronas (Event) contra o endpoint /2015-03-31/functions/{name}/invocations. Retorna a resposta JSON ou o trace ID do X-Ray.

Amazon DynamoDB

PutItem, GetItem, Query, Scan e TransactWriteItems via protocolo JSON 1.0 — mesmo componente, cabeçalho X-Amz-Target diferente.

Amazon Bedrock

InvokeModel e InvokeModelWithResponseStream para Claude, Llama, Mistral, Titan e Nova — a variante streaming usa um codec event-stream encapsulado pelo cliente HTTP/2.

Amazon SNS

Publish em tópicos e alvos SMS, gerencie assinaturas e platform endpoints — HTTPS POST puro + Signature v4.

STS + Cognito

AssumeRole, GetSessionToken e sign-in / refresh de token em user pool do Cognito — os fluxos OAuth2 interoperam com TsgcOAuth2Client.

SDKs AWS gerados

O sgcOpenAPI emite classes de cliente Pascal para qualquer serviço AWS que publique uma especificação OpenAPI ou Smithy — a cauda longa de CloudWatch, Kinesis, ECS, EKS, EventBridge e companhia.

Signature v4 para cada serviço

Toda requisição AWS — S3 PUT, DynamoDB Query, Lambda Invoke, até a URL presigned MQTT-sobre-WebSocket usada pelo AWS IoT — carrega um cabeçalho Authorization: AWS4-HMAC-SHA256 (ou query string) derivado da sua access key, secret key, região e nome do serviço. O sgcWebSockets entrega um único helper Signature v4 em Pascal que lida com a construção da requisição canônica, a string-to-sign, o encadeamento HMAC e a detecção de clock skew — reutilizável a partir de qualquer componente HTTP / WebSocket / MQTT. Combinado com TsgcOAuth2Client para fluxos STS / Cognito e com o padrão embutido de assunção de IAM role, você obtém a mesma postura de segurança dos SDKs oficiais em qualquer outra linguagem.

Upload para S3 e publicação no SQS

Um snippet de 30 linhas que faz upload de um arquivo para um bucket S3 e enfileira uma notificação no SQS — o “hello world” canônico da automação 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 com Signature v4

O AWS IoT Core aceita MQTT sobre TLS (porta 8883) com TLS mútuo X.509, MQTT sobre WebSocket (porta 443) assinado com Signature v4 ou MQTT com um custom authoriser. TsgcWSAPI_AWSIoT trata os três — o transporte WebSocket é o caminho mais fácil em redes corporativas que bloqueiam 8883, e o componente gera a URL presigned de forma transparente a partir da sua 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;

Três passos para sua primeira chamada AWS

1. Instale

Coloque o sgcWebSockets na sua instalação Delphi ou C++Builder — um pacote IDE por versão Delphi 7 a 13. Baixe o trial.

2. Crie um usuário IAM

No console AWS, crie um usuário IAM com programmatic access, anexe uma política de menor privilégio e copie o par access key / secret key.

3. Arraste um componente

Para SQS use TsgcHTTP_API_AmazonSQS, para IoT use TsgcWSAPI_AWSIoT, para qualquer outra coisa use TsgcHTTPClient com o helper Signature v4.

Posts de blog relacionados

SDK Amazon AWS para Delphi

Visão geral de como o sgcWebSockets expõe a superfície AWS para desenvolvedores Pascal.

Componente Amazon SQS para Delphi

Passo a passo do TsgcHTTP_API_AmazonSQS — filas, FIFO, batching, dead-letter.

AWS IoT MQTT com Signature v4

Como dirigir o AWS IoT Core via MQTT-sobre-WebSocket sem certificados X.509.

Autenticação custom no AWS IoT

Use um Lambda authoriser para emitir credenciais MQTT na hora.

AWS Cognito + OAuth2

Federe usuários e obtenha session tokens STS de user pools do Cognito.

Amazon Braket a partir do Delphi

Converse com o serviço de computação quântica da Amazon via o SDK gerado.

Entregue integrações AWS no seu app Delphi hoje

Baixe o trial — as demos AWS cobrem S3, SQS, IoT e Lambda com projetos de exemplo prontos para compilar.