Version 4 (V4) von AWS SDK für .NET wurde veröffentlicht!
Informationen zum Einstieg in die neue Version des SDK finden Sie im Entwicklerhandbuch AWS SDK für .NET (V4), insbesondere im Thema Migration auf Version 4.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Das AWS Message Processing Framework für.NET anpassen
Das AWS Message Processing Framework für.NET erstellt, sendet und verarbeitet Nachrichten in drei verschiedenen „Ebenen“:
-
Auf der äußersten Ebene erstellt das Framework die AWS-native Anfrage oder Antwort, die für einen Dienst spezifisch ist. Mit Amazon SQS erstellt es beispielsweise
SendMessageAnfragen und arbeitet mit denMessageObjekten, die durch den Service definiert sind. -
In der SQS-Anfrage und -Antwort setzt das Framework das
MessageBodyElement (oderMessagefür Amazon SNS oderDetailfür Amazon EventBridge) auf ein JSON-Format. CloudEventDies enthält vom Framework festgelegte Metadaten, auf die bei der Bearbeitung einer Nachricht über das MessageEnvelopeObjekt zugegriffen werden kann. -
Auf der innersten Ebene enthält das
dataAttribut innerhalb des CloudEvent JSON-Objekts eine JSON-Serialisierung des .NET-Objekts, das als Nachricht gesendet oder empfangen wurde.{ "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>" }
Sie können anpassen, wie der Nachrichtenumschlag konfiguriert und gelesen wird:
-
"id"identifiziert die Nachricht eindeutig. Standardmäßig ist es auf eine neue GUID gesetzt, aber dies kann überschrieben werden, indem Sie Ihre eigene GUID implementierenIMessageIdGeneratorund diese in den DI-Container einfügen. -
"type"steuert, wie die Nachricht an die Handler weitergeleitet wird. Standardmäßig wird dabei der vollständige Name des.NET-Typs verwendet, der der Nachricht entspricht. Sie können dies über denmessageTypeIdentifierParameter überschreiben, wenn Sie den Nachrichtentyp überAddSQSPublisherAddSNSPublisher, oder dem Ziel zuordnenAddEventBridgePublisher. -
"source"gibt an, welches System oder welcher Server die Nachricht gesendet hat.-
Dies ist der Funktionsname bei der Veröffentlichung von AWS Lambda, der Clustername und der Task-ARN bei Amazon ECS, die Instance-ID bei Amazon EC2, andernfalls ein Fallback-Wert von
/aws/messaging. -
Sie können dies über
AddMessageSourceoderAddMessageSourceSuffixauf demMessageBusBuilderüberschreiben.
-
-
"time"auf den aktuellen Wert DateTime in UTC gesetzt. Dies kann außer Kraft gesetzt werden, indem Sie Ihr eigenes implementierenIDateTimeHandlerund dieses in den DI-Container einfügen. -
"data"enthält eine JSON-Darstellung des .NET-Objekts, das als Nachricht gesendet oder empfangen wurde:-
ConfigureSerializationOptionsonMessageBusBuilderermöglicht es Ihnen, das zu konfigurierenSystem.Text.Json.JsonSerializerOptions, das beim Serialisieren und Deserialisieren der Nachricht verwendet wird. -
Um zusätzliche Attribute einzufügen oder den Nachrichtenumschlag zu transformieren, sobald das Framework ihn erstellt hat, können Sie dies über on implementieren
ISerializationCallbackund registrieren.AddSerializationCallbackMessageBusBuilder
-