.NET용 AWS 메시지 처리 프레임워크 사용자 지정 - AWS SDK for .NET

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

.NET용 AWS 메시지 처리 프레임워크 사용자 지정

이 시험판 설명서는 프리뷰 릴리즈의 기능에 관한 것입니다. 내용은 변경될 수 있습니다.

.NET용 AWS 메시지 처리 프레임워크는 메시지를 세 가지 “계층”으로 작성, 전송 및 처리합니다.

  1. 프레임워크는 가장 바깥쪽 계층에서 서비스에 특정한 AWS-native 요청 또는 응답을 구축합니다. 예를 들어 Amazon SQS에서는 SendMessage요청을 생성하고 서비스에서 정의한 Message객체를 처리합니다.

  2. SQS 요청 및 응답 내에서 프레임워크는 MessageBody 요소 (또는 Amazon SNS 또는 Message Amazon EventBridge) DetailJSON CloudEvent 형식으로 설정합니다. 여기에는 메시지를 처리할 때 MessageEnvelope 객체에서 액세스할 수 있는 프레임워크에서 설정한 메타데이터가 포함됩니다.

  3. 가장 안쪽 레이어의 CloudEvent JSON 개체 내 data 속성에는 메시지로 보내거나 받은 .NET 개체의 JSON 직렬화가 포함되어 있습니다.

    { "id":"b02f156b-0f02-48cf-ae54-4fbbe05cffba", "source":"/aws/messaging", "specversion":"1.0", "type":"Publisher.Models.ChatMessage", "time":"2023-11-21T16:36:02.8957126+00:00", "data":"<the ChatMessage object serialized as JSON>" }

메시지 봉투의 구성 및 읽기 방법을 사용자 지정할 수 있습니다.

  • "id"메시지를 고유하게 식별합니다. 기본적으로 새 GUID로 설정되지만 직접 IMessageIdGenerator 구현하고 DI 컨테이너에 삽입하여 이를 무시할 수 있습니다.

  • "type"메시지가 핸들러로 라우팅되는 방식을 제어합니다. 기본적으로 메시지에 해당하는.NET 유형의 전체 이름을 사용합니다. AddSQSPublisherAddSNSPublisher, 또는 를 통해 메시지 유형을 대상에 매핑할 때 messageTypeIdentifier 매개 변수를 통해 이를 재정의할 수 있습니다. AddEventBridgePublisher

  • "source"메시지를 보낸 시스템 또는 서버를 나타냅니다.

    • 퍼블리싱의 경우 함수 이름 AWS Lambda, Amazon ECS에서는 클러스터 이름 및 작업 ARN, Amazon EC2에서는 인스턴스 ID, 그렇지 않으면 폴백 값입니다. /aws/messaging

    • 를 통해 또는 를 통해 이를 재정의할 수 있습니다. AddMessageSource AddMessageSourceSuffix MessageBusBuilder

  • "time"UTC 기준으로 DateTime 현재로 설정합니다. 직접 IDateTimeHandler 구현한 다음 DI 컨테이너에 삽입하면 이를 무시할 수 있습니다.

  • "data"메시지로 보내거나 받은 .NET 객체의 JSON 표현을 포함합니다.

    • ConfigureSerializationOptionson을 MessageBusBuilder 사용하면 메시지를 직렬화 및 System.Text.Json.JsonSerializerOptions역직렬화할 때 사용할 옵션을 구성할 수 있습니다.

    • 프레임워크에서 메시지 봉투를 빌드한 후 추가 속성을 삽입하거나 메시지 봉투를 변환하려면 on을 통해 이를 ISerializationCallback 구현하고 등록할 수 있습니다. AddSerializationCallback MessageBusBuilder