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

Amazon Web Services için yerel, bağımlılıksız bir Delphi araç takımı. S3'e REST isteklerini imzalayıp gönderin, SQS'e mesaj iletin, AWS IoT Core'u WebSocket üzerinden MQTT ile yönetin, Lambda işlevlerini çağırın, DynamoDB ve Bedrock ile konuşun ve herhangi bir AWS API'si için OpenAPI / Smithy spesifikasyonundan güçlü tipli Pascal istemcileri oluşturun. Tümü tek bir sgcWebSockets bileşen kümesinden.

Tek bir ağ yığını, her AWS hizmeti

Java çalışma zamanı yok, Python boto3 yok, Node köprüsü yok. Yalnızca AWS uç noktasıyla doğrudan HTTPS, MQTT, WebSocket ve AMQP konuşan Pascal bileşenleri.

Amazon Web Services 250'den fazla API sunar: depolama, kuyruklama, IoT, hesaplama, makine öğrenimi, kimlik, DNS, CDN, arama, RDBMS, anahtar yönetimi ve düzinelerce daha fazlası. Resmi AWS SDK; Java, Python, JavaScript, Go, Ruby, PHP ve .NET ile gelir, ancak Delphi veya C++Builder ile gelmez. sgcWebSockets bu boşluğu tutarlı bir yerel bileşen kümesiyle doldurur: kuyruklama için TsgcHTTP_API_AmazonSQS, WebSocket üzerinden MQTT için TsgcWSAPI_AWSIoT (Signature v4 presigned), herhangi bir REST hizmeti için yerleşik AWS Signature v4 imzalayıcısı içeren TsgcHTTPClient ve makine tarafından okunabilir bir spesifikasyon yayımlayan hizmetlerin uzun kuyruğu için sgcOpenAPI kod üreteci.

Kimlik doğrulama tek tiptir: bir erişim anahtarı + gizli anahtar çifti (veya IAM rol üstlenmeli geçici bir STS oturum belirteci), bölge ve hizmet tanımlayıcısı. Signature v4 yardımcısı, her giden çağrı için kanonik isteği, imzalanacak dizeyi, HMAC zincirini ve Authorization başlığını hesaplar, böylece her AWS uç noktası (S3 PUT'tan Bedrock InvokeModel'e) aynı lehçeyi konuşur. Her şey aynı Pascal kaynağıyla Windows, macOS, Linux, iOS ve Android üzerinde çalışır.

Çekirdek bileşenler

TsgcHTTP_API_AmazonSQS, TsgcWSAPI_AWSIoT, TsgcHTTPClient + Signature v4 signer.

Taşıma

HTTPS / HTTP/2 for REST, MQTT 3.1.1 + 5 over WebSocket for IoT, raw WebSocket for streaming.

Platformlar

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

Kod üreteci

sgcOpenAPI consumes any AWS OpenAPI / Smithy spec and emits Pascal client classes.

Birinci sınıf sarmalayıcılar + geri kalan için oluşturulan SDK'lar

Amazon S3

Signature v4 ile HTTPS üzerinden PUT / GET / DELETE nesneleri, çok parçalı yüklemeler, presigned URL'ler ve bucket listeleri. Herhangi bir S3 uyumlu depoyla (MinIO, Wasabi, Backblaze B2, Cloudflare R2) çalışır.

Amazon SQS

TsgcHTTP_API_AmazonSQS — kuyruk oluşturma, mesaj gönderme / alma / silme, FIFO + standart, dead-letter kuyrukları, tek metot çağrısıyla toplu gönderme.

AWS IoT Core

TsgcWSAPI_AWSIoT — Signature v4 presigned URL'leri veya X.509 karşılıklı TLS ile WebSocket üzerinden MQTT 3.1.1 / 5. Cihaz gölgesi, işler, filo sağlama, özel kimlik doğrulama.

AWS Lambda

/2015-03-31/functions/{name}/invocations uç noktasına karşı senkron (RequestResponse) ve asenkron (Event) çağrılar. JSON yanıtını veya X-Ray izleme kimliğini döndürür.

Amazon DynamoDB

JSON 1.0 protokolü aracılığıyla PutItem, GetItem, Query, Scan ve TransactWriteItems. Aynı bileşen, farklı X-Amz-Target başlığı.

Amazon Bedrock

Claude, Llama, Mistral, Titan ve Nova için InvokeModel ve InvokeModelWithResponseStream. Akış varyantı, HTTP/2 istemcisi tarafından sarmalanan bir olay akışı codec'i kullanır.

Amazon SNS

Konulara ve SMS hedeflerine yayınlayın, abonelikleri ve platform uç noktalarını yönetin. Saf HTTPS POST + Signature v4.

STS + Cognito

AssumeRole, GetSessionToken ve Cognito kullanıcı havuzu oturum açma / belirteç yenileme. OAuth2 akışları TsgcOAuth2Client ile birlikte çalışır.

Oluşturulan AWS SDK'ları

sgcOpenAPI, bir OpenAPI veya Smithy spesifikasyonu yayımlayan herhangi bir AWS hizmeti için Pascal istemci sınıfları üretir. CloudWatch, Kinesis, ECS, EKS, EventBridge ve benzerlerinin uzun kuyruğu.

Her hizmet için Signature v4

Her AWS isteği (S3 PUT, DynamoDB Query, Lambda Invoke, hatta AWS IoT tarafından kullanılan WebSocket üzerinden MQTT presigned URL'si) erişim anahtarınız, gizli anahtarınız, bölge ve hizmet adınızdan türetilen bir Authorization: AWS4-HMAC-SHA256 başlığı (veya sorgu dizesi) taşır. sgcWebSockets, kanonik istek oluşturmayı, imzalanacak dizeyi, HMAC zincirlemeyi ve saat kayması tespitini yöneten tek bir Pascal Signature v4 yardımcısı sunar. Herhangi bir HTTP / WebSocket / MQTT bileşeninden yeniden kullanılabilir. STS / Cognito akışları için TsgcOAuth2Client ve yerleşik IAM rol üstlenme deseni ile birleştiğinde, diğer herhangi bir dildeki resmi SDK'larla aynı güvenlik duruşunu elde edersiniz.

S3'e yükleyin ve SQS'e yayınlayın

Bir dosyayı bir S3 bucket'ına yükleyen ve SQS'te bir bildirim sıraya alan 30 satırlık bir kod parçası. AWS otomasyonunun standart “merhaba dünya”sı.

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;

Signature v4 ile WebSocket üzerinden MQTT

AWS IoT Core; X.509 karşılıklı TLS ile TLS üzerinden MQTT (8883 bağlantı noktası), Signature v4 ile imzalanmış WebSocket üzerinden MQTT (443 bağlantı noktası) veya özel bir yetkilendiriciyle MQTT kabul eder. TsgcWSAPI_AWSIoT üçünü de ele alır. WebSocket taşıması, 8883'ü engelleyen kurumsal ağlardan en kolay yoldur ve bileşen, presigned URL'yi erişim anahtarınızdan şeffaf bir şekilde oluşturur.

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;

İlk AWS çağrınıza üç adım

1. Kurun

sgcWebSockets'i Delphi veya C++Builder kurulumunuza bırakın. Delphi 7'den 13'e her sürüm için bir IDE paketi. Denemeyi indirin.

2. Bir IAM kullanıcısı oluşturun

AWS konsolunda, programatik erişimli bir IAM kullanıcısı oluşturun, en az ayrıcalık ilkesi ekleyin ve erişim anahtarı / gizli anahtar çiftini kopyalayın.

3. Bir bileşen bırakın

SQS için TsgcHTTP_API_AmazonSQS, IoT için TsgcWSAPI_AWSIoT, diğer her şey için Signature v4 yardımcısıyla TsgcHTTPClient kullanın.

İlgili blog yazıları

Delphi Amazon AWS SDK

sgcWebSockets'in AWS yüzeyini Pascal geliştiricilerine nasıl sunduğuna genel bakış.

Delphi için Amazon SQS bileşeni

TsgcHTTP_API_AmazonSQS'in adım adım anlatımı: kuyruklar, FIFO, toplu işleme, dead-letter yönlendirme.

Signature v4 ile AWS IoT MQTT

X.509 sertifikaları olmadan AWS IoT Core'u WebSocket üzerinden MQTT ile nasıl yönetirsiniz.

AWS IoT özel kimlik doğrulama

Anlık MQTT kimlik bilgileri vermek için bir Lambda yetkilendirici kullanın.

AWS Cognito + OAuth2

Kullanıcıları federe edin ve Cognito kullanıcı havuzlarından STS oturum belirteçleri alın.

Delphi'den Amazon Braket

Oluşturulan SDK aracılığıyla Amazon'un kuantum bilişim hizmetiyle konuşun.

AWS entegrasyonlarını bugün Delphi uygulamanızda yayınlayın

Denemeyi indirin. AWS demoları, derlemeye hazır örnek projelerle S3, SQS, IoT ve Lambda'yı kapsar.