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

Amazon Web Services용 네이티브, 의존성 없는 Delphi 툴킷. S3에 REST 요청을 서명 및 전송하고, SQS에 메시지를 푸시하고, MQTT-on-WebSocket을 통해 AWS IoT Core를 구동하고, Lambda 함수를 호출하고, DynamoDB 및 Bedrock과 통신하고, OpenAPI / Smithy 사양에서 모든 AWS API에 대한 강력하게 타입이 지정된 Pascal 클라이언트를 생성하세요 — 모두 단일 sgcWebSockets 컴포넌트 세트에서.

하나의 네트워킹 스택, 모든 AWS 서비스

Java 런타임, Python boto3, Node 브리지 없음 — AWS 에지에 직접 HTTPS, MQTT, WebSocket 및 AMQP를 사용하는 Pascal 컴포넌트일 뿐이에요.

Amazon Web Services는 250개 이상의 API — 스토리지, 큐잉, IoT, 컴퓨팅, 머신러닝, 신원, DNS, CDN, 검색, RDBMS, 키 관리 등 — 를 노출해요. 공식 AWS SDK는 Java, Python, JavaScript, Go, Ruby, PHP 및 .NET으로 제공되지만 Delphi 또는 C++Builder로는 제공되지 않아요. sgcWebSockets는 응집력 있는 네이티브 컴포넌트 세트로 격차를 메워요: 큐잉용 TsgcHTTP_API_AmazonSQS, WebSocket을 통한 MQTT용 TsgcWSAPI_AWSIoT(Signature v4 사전 서명), 모든 REST 서비스용 내장 AWS Signature v4 서명자가 있는 TsgcHTTPClient, 그리고 기계 판독 가능한 사양을 게시하는 긴 꼬리 서비스용 sgcOpenAPI 코드 생성기.

인증은 균일해요: 액세스 키 + 시크릿 키 쌍(또는 IAM 역할 가정이 있는 임시 STS 세션 토큰), 리전 및 서비스 식별자. Signature v4 헬퍼는 모든 아웃바운드 호출에 대해 표준 요청, 서명할 문자열, HMAC 체인 및 Authorization 헤더를 계산하므로 모든 AWS 엔드포인트 — S3 PUT부터 Bedrock InvokeModel까지 — 동일한 방언을 사용해요. 모든 것이 동일한 Pascal 소스로 Windows, macOS, Linux, iOS 및 Android에서 실행돼요.

핵심 컴포넌트

TsgcHTTP_API_AmazonSQS, TsgcWSAPI_AWSIoT, TsgcHTTPClient + Signature v4 서명자.

전송

REST용 HTTPS / HTTP/2, IoT용 WebSocket을 통한 MQTT 3.1.1 + 5, 스트리밍용 원시 WebSocket.

플랫폼

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

코드 생성기

sgcOpenAPI는 모든 AWS OpenAPI / Smithy 사양을 사용하여 Pascal 클라이언트 클래스를 내보내요.

나머지를 위한 일류 래퍼 + 생성된 SDK

Amazon S3

Signature v4가 있는 HTTPS를 통해 객체 PUT / GET / DELETE, 멀티파트 업로드, 사전 서명 URL 및 버킷 목록. 모든 S3 호환 저장소(MinIO, Wasabi, Backblaze B2, Cloudflare R2)에 대해 작동해요.

Amazon SQS

TsgcHTTP_API_AmazonSQS — 큐 생성, 메시지 송수신 / 삭제, FIFO + 표준, 데드 레터 큐, 한 번의 메서드 호출로 일괄 전송.

AWS IoT Core

TsgcWSAPI_AWSIoT — Signature v4 사전 서명 URL 또는 X.509 상호 TLS를 사용하는 WebSocket을 통한 MQTT 3.1.1 / 5. 장치 섀도우, 작업, 플릿 프로비저닝, 사용자 정의 인증.

AWS Lambda

/2015-03-31/functions/{name}/invocations 엔드포인트에 대한 동기(RequestResponse) 및 비동기(Event) 호출. JSON 응답 또는 X-Ray 트레이스 ID를 반환해요.

Amazon DynamoDB

JSON 1.0 프로토콜을 통한 PutItem, GetItem, Query, Scan 및 TransactWriteItems — 동일한 컴포넌트, 다른 X-Amz-Target 헤더.

Amazon Bedrock

Claude, Llama, Mistral, Titan 및 Nova용 InvokeModel 및 InvokeModelWithResponseStream — 스트리밍 변형은 HTTP/2 클라이언트에 의해 래핑된 이벤트 스트림 코덱을 사용해요.

Amazon SNS

토픽 및 SMS 대상에 게시, 구독 및 플랫폼 엔드포인트 관리 — 순수 HTTPS POST + Signature v4.

STS + Cognito

AssumeRole, GetSessionToken 및 Cognito 사용자 풀 로그인 / 토큰 새로 고침 — OAuth2 흐름은 TsgcOAuth2Client와 상호 운용돼요.

생성된 AWS SDK

sgcOpenAPI는 OpenAPI 또는 Smithy 사양을 게시하는 모든 AWS 서비스에 대해 Pascal 클라이언트 클래스를 내보내요 — CloudWatch, Kinesis, ECS, EKS, EventBridge 및 친구들의 긴 꼬리.

모든 서비스에 대한 Signature v4

모든 AWS 요청 — S3 PUT, DynamoDB Query, Lambda Invoke, 심지어 AWS IoT에서 사용하는 MQTT-on-WebSocket 사전 서명 URL — 은 액세스 키, 시크릿 키, 리전 및 서비스 이름에서 파생된 Authorization: AWS4-HMAC-SHA256 헤더(또는 쿼리 문자열)를 운반해요. sgcWebSockets는 표준 요청 구축, 서명할 문자열, HMAC 체이닝 및 시계 편차 감지를 처리하는 단일 Pascal Signature v4 헬퍼를 제공해요 — 모든 HTTP / WebSocket / MQTT 컴포넌트에서 재사용 가능. STS / Cognito 흐름용 TsgcOAuth2Client 및 내장 IAM 역할 가정 패턴과 결합하면 다른 언어의 공식 SDK와 동일한 보안 자세를 얻을 수 있어요.

S3에 업로드하고 SQS에 게시하기

S3 버킷에 파일을 업로드하고 SQS에 알림을 큐잉하는 30줄 스니펫 — AWS 자동화의 정통 “hello world”.

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가 있는 WebSocket을 통한 MQTT

AWS IoT Core는 X.509 상호 TLS가 있는 TLS를 통한 MQTT(포트 8883), Signature v4로 서명된 WebSocket을 통한 MQTT(포트 443) 또는 사용자 정의 권한 부여자가 있는 MQTT를 수락해요. TsgcWSAPI_AWSIoT는 세 가지를 모두 처리해요 — WebSocket 전송은 8883을 차단하는 기업 네트워크에서 가장 쉬운 경로이며, 컴포넌트는 액세스 키에서 사전 서명 URL을 투명하게 생성해요.

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;

첫 AWS 호출까지 세 단계

1. 설치

sgcWebSockets를 Delphi 또는 C++Builder 설치에 드롭하세요 — Delphi 버전 7부터 13까지 IDE당 하나의 패키지. 체험판 다운로드.

2. IAM 사용자 생성

AWS 콘솔에서 프로그래밍 액세스 IAM 사용자를 생성하고, 최소 권한 정책을 첨부하고, 액세스 키 / 시크릿 키 쌍을 복사하세요.

3. 컴포넌트 드롭

SQS의 경우 TsgcHTTP_API_AmazonSQS를 사용하고, IoT의 경우 TsgcWSAPI_AWSIoT를 사용하고, 다른 모든 것의 경우 Signature v4 헬퍼가 있는 TsgcHTTPClient를 사용하세요.

관련 블로그 게시물

Delphi Amazon AWS SDK

sgcWebSockets가 Pascal 개발자에게 AWS 표면을 노출하는 방법 개요.

Delphi용 Amazon SQS 컴포넌트

TsgcHTTP_API_AmazonSQS의 단계별 워크스루 — 큐, FIFO, 일괄 처리, 데드 레터 라우팅.

Signature v4가 있는 AWS IoT MQTT

X.509 인증서 없이 MQTT-on-WebSocket을 통해 AWS IoT Core를 구동하는 방법.

AWS IoT 사용자 정의 인증

Lambda 권한 부여자를 사용하여 즉시 MQTT 자격 증명을 발급하세요.

AWS Cognito + OAuth2

사용자를 페더레이트하고 Cognito 사용자 풀에서 STS 세션 토큰을 가져오세요.

Delphi에서 Amazon Braket

생성된 SDK를 통해 Amazon의 양자 컴퓨팅 서비스와 통신하세요.

오늘 Delphi 앱에 AWS 통합을 출시하세요

체험판을 다운로드하세요 — AWS 데모는 컴파일 준비가 된 샘플 프로젝트와 함께 S3, SQS, IoT 및 Lambda를 다뤄요.