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.
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.
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.
Serviços suportados
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).
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.
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.
Autenticação
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.
Início Rápido
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.
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.