¡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 de AWS SDK para .NET (versión 4), especialmente el tema 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.
Personalización del Marco de procesamiento de mensajes de AWS para .NET
El Marco de procesamiento de mensajes de AWS 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 nativa de AWS específica de un servicio. Con Amazon SQS, por ejemplo, crea solicitudes
SendMessagey trabaja con los objetosMessagedefinidos por el servicio. -
Dentro de la solicitud y respuesta SQS, el marco establece el elemento
MessageBody(Messagepara Amazon SNS oDetailpara Amazon EventBridge) en un CloudEvent con formato JSON. Contiene metadatos establecidos por el marco que son accesibles en el objeto MessageEnvelopeal gestionar un mensaje. -
En la capa más interna, el atributo
datadel objeto JSON de CloudEvent contiene una serialización 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 configuración y la lectura del sobre del mensaje:
-
"id"identifica el mensaje de forma única. De forma predeterminada, se establece un nuevo GUID, pero esto se puede anular implementando su propio elementoIMessageIdGeneratore inyectándolo en el contenedor 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 el parámetromessageTypeIdentifieral asignar el tipo de mensaje al destino a través deAddSQSPublisher,AddSNSPublisheroAddEventBridgePublisher. -
"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 o el ID de la instancia si está en Amazon EC2. De lo contrario, será un valor alternativo de
/aws/messaging. -
Puede anularlo mediante
AddMessageSourceoAddMessageSourceSuffixen el elementoMessageBusBuilder.
-
-
"time"se ha definido en la fecha y hora actual en UTC. Esto se puede anular implementando su propio elementoIDateTimeHandlere inyectándolo en el contenedor DI. -
"data"contiene una representación en JSON del objeto .NET que se envió o recibió como mensaje:-
ConfigureSerializationOptionsen el elementoMessageBusBuilderle permite configurar el objetoSystem.Text.Json.JsonSerializerOptionsque se utilizará para serializar y deserializar el mensaje. -
Para añadir atributos adicionales o transformar el sobre del mensaje una vez que el marco lo haya creado, puede implementar
ISerializationCallbacky registrarlo medianteAddSerializationCallbackenMessageBusBuilder.
-