Personalizzazione del framework di elaborazione dei AWS messaggi per.NET - AWS SDK for .NET

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Personalizzazione del framework di elaborazione dei AWS messaggi per.NET

Questa è la documentazione non definitiva per una funzionalità della versione di anteprima. ed è soggetta a modifiche.

Il AWS Message Processing Framework per .NET crea, invia e gestisce i messaggi in tre diversi «livelli»:

  1. Al livello più esterno, il framework crea la richiesta o la risposta AWS-native specifica per un servizio. Con Amazon SQS, ad esempio, crea SendMessagerichieste e lavora con gli Messageoggetti definiti dal servizio.

  2. All'interno della richiesta e della risposta SQS, il framework imposta l'MessageBodyelemento (o Message per Amazon SNS Detail o EventBridge Amazon) su un formato JSON. CloudEvent Contiene i metadati impostati dal framework accessibile sull'oggetto durante la gestione di un messaggio. MessageEnvelope

  3. Al livello più interno, l'dataattributo all'interno dell'oggetto CloudEvent JSON contiene una serializzazione JSON dell'oggetto.NET che è stato inviato o ricevuto come messaggio.

    { "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>" }

È possibile personalizzare la modalità di configurazione e lettura della busta del messaggio:

  • "id"identifica in modo univoco il messaggio. Per impostazione predefinita è impostato su un nuovo GUID, ma questo può essere sovrascritto implementando il proprio IMessageIdGenerator e inserendolo nel contenitore DI.

  • "type"controlla come il messaggio viene indirizzato ai gestori. Per impostazione predefinita, utilizza il nome completo del tipo.NET che corrisponde al messaggio. È possibile sovrascriverlo tramite il messageTypeIdentifier parametro durante la mappatura del tipo di messaggio alla destinazione tramite AddSQSPublisherAddSNSPublisher, o. AddEventBridgePublisher

  • "source"indica quale sistema o server ha inviato il messaggio.

    • Questo sarà il nome della funzione in caso di pubblicazione da AWS Lambda, il nome del cluster e l'ARN dell'attività se su Amazon ECS, l'ID dell'istanza se su Amazon EC2, altrimenti un valore di fallback di. /aws/messaging

    • Puoi sovrascriverlo tramite o su. AddMessageSource AddMessageSourceSuffix MessageBusBuilder

  • "time"impostato sulla corrente DateTime in UTC. Questo può essere sovrascritto implementando il proprio IDateTimeHandler e iniettandolo nel contenitore DI.

  • "data"contiene una rappresentazione JSON dell'oggetto.NET che è stato inviato o ricevuto come messaggio:

    • ConfigureSerializationOptionson MessageBusBuilder consente di configurare System.Text.Json.JsonSerializerOptionsciò che verrà utilizzato durante la serializzazione e la deserializzazione del messaggio.

    • Per inserire attributi aggiuntivi o trasformare la busta del messaggio una volta creata dal framework, puoi implementarla e registrarla tramite on. ISerializationCallback AddSerializationCallback MessageBusBuilder