¡Se AWS SDK para .NET ha publicado la versión 4 (V4) del!
Para empezar a usar la nueva versión del SDK, consulte la Guía para desarrolladores AWS SDK para .NET (V4), especialmente el tema sobre la migración a la versión 4.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Personalice el marco de procesamiento de AWS mensajes para.NET
El marco de procesamiento de AWS mensajes para .NET crea, envía y gestiona los mensajes en tres «capas» diferentes:
-
En la capa más externa, el marco crea la solicitud o respuesta AWS nativa específica de un servicio. Con Amazon SQS, por ejemplo, crea
SendMessagesolicitudes y trabaja con losMessageobjetos definidos por el servicio. -
Dentro de la solicitud y respuesta de SQS, el marco establece el
MessageBodyelemento (oMessagepara Amazon SNSDetailo EventBridge Amazon) en formato JSON. CloudEventContiene los metadatos establecidos por el marco a los que se puede acceder en el MessageEnvelopeobjeto cuando se gestiona un mensaje. -
En la capa más interna, el
dataatributo del objeto CloudEvent JSON contiene una serialización en JSON del objeto .NET que se envió o recibió como mensaje.{ "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>" }
Puede personalizar la forma en que se configura y lee el sobre del mensaje:
-
"id"identifica el mensaje de forma exclusiva. De forma predeterminada, se establece en un nuevo GUID, pero esto se puede anular implementando el suyo propioIMessageIdGeneratore inyectándolo en el contenedor del DI. -
"type"controla cómo se enruta el mensaje a los controladores. De forma predeterminada, utiliza el nombre completo del tipo.NET que corresponde al mensaje. Puede anularlo mediante elmessageTypeIdentifierparámetro al asignar el tipo de mensaje al destino medianteAddSQSPublisherAddSNSPublisher, oAddEventBridgePublisher. -
"source"indica qué sistema o servidor envió el mensaje.-
Este será el nombre de la función si se publica desde AWS Lambda, el nombre del clúster y el ARN de la tarea si está en Amazon ECS, el ID de la instancia si está en Amazon; de lo contrario EC2, será un valor alternativo de.
/aws/messaging -
Puede anular esto a través de
AddMessageSourceoAddMessageSourceSuffixen.MessageBusBuilder
-
-
"time"establecido en el valor actual DateTime en UTC. Esto se puede anular implementando el suyoIDateTimeHandlere inyectándolo en el contenedor DI. -
"data"contiene una representación en JSON del objeto.NET que se envió o recibió como mensaje:-
ConfigureSerializationOptionsonMessageBusBuilderle permite configurar elSystem.Text.Json.JsonSerializerOptionsque se utilizará al serializar y deserializar el mensaje. -
Para añadir atributos adicionales o transformar el sobre del mensaje una vez que el framework lo haya creado, puede implementarlos
ISerializationCallbacky registrarlos mediante on.AddSerializationCallbackMessageBusBuilder
-