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à.
Amazon SNS supporta la consegna di attributi di messaggio che consentono di fornire elementi di metadati strutturati (come timestamp, dati geospaziali, firme e identificatori) relativi al messaggio. Per gli abbonamenti SQS, è possibile inviare un massimo di 10 attributi di messaggio quando Consegna di messaggi non elaborati è abilitato. Per inviare più di 10 attributi di messaggio, è necessario disabilitare Consegna di messaggi non elaborati. I messaggi con più di 10 attributi indirizzati verso abbonamenti Amazon SQS abilitati alla consegna di messaggi non elaborati verranno eliminati come errori lato client.
Gli attributi di messaggio sono facoltativi e separati dal corpo del messaggio, sebbene vengano inviati insieme a esso. Il destinatario può utilizzare queste informazioni per decidere come gestire il messaggio senza dover prima elaborare il corpo del messaggio.
Per informazioni sull'invio di messaggi con attributi utilizzando AWS Management Console o il AWS SDK per Java, consulta il Per pubblicare messaggi su argomenti Amazon SNS utilizzando il AWS Management Console tutorial.
Nota
Gli attributi di messaggio vengono inviati solo quando la struttura del messaggio è String, non JSON.
Puoi utilizzare gli attributi di messaggio anche per strutturare il messaggio di notifica push per gli endpoint mobili. In questo scenario, gli attributi di messaggio sono usati solo per strutturare il messaggio di notifica push. Gli attributi non vengono distribuiti all'endpoint così come sono quando si inviano i messaggi con gli attributi di messaggio agli endpoint Amazon SQS.
Puoi utilizzare gli attributi di messaggio anche per rendere i messaggi filtrabili utilizzando le policy di filtro della sottoscrizione. Le policy di filtro possono essere applicate alle sottoscrizioni dell'argomento. Quando viene applicata una policy di filtro con l'ambito impostato su MessageAttributes
(valore predefinito), una sottoscrizione riceve solo i messaggi che hanno gli attributi accettati dalla policy. Per ulteriori informazioni, consulta Filtraggio messaggi di Amazon SNS.
Nota
Quando si utilizzano gli attributi di messaggio per il filtro, il valore deve essere una stringa JSON valida. Questo garantisce che il messaggio venga distribuito a una sottoscrizione con il filtro degli attributi di messaggio abilitato.
Elementi dell'attributo di messaggio e convalida
Ogni attributo di messaggio è costituito dai seguenti elementi:
-
Name – Il nome dell'attributo del messaggio può contenere i seguenti caratteri: A-Z, a-z, 0-9, sottolineatura (_), trattino (-) e punto (.). Il nome non deve iniziare o terminare con un punto e non deve avere punti in successione. Il nome rispetta la distinzione tra maiuscole e minuscole e deve essere univoco tra tutti i nomi di attributo per il messaggio. Il nome può contenere fino a 256 caratteri. Il nome non può iniziare con
AWS.
oAmazon.
(o qualsiasi variazione in maiuscole/minuscole) perché questi prefissi sono riservati per l'uso da parte di Amazon Web Services. -
Type – I tipi di dati di attributo di messaggio supportati sono
String
,String.Array
,Number
eBinary
. Il tipo di dati ha le stesse restrizioni sul contenuto del corpo del messaggio. Per ulteriori informazioni, consulta la sezione Tipi di dati dell'attributo di messaggio e convalida. -
Value – Il valore dell'attributo di messaggio specificato dall'utente. Per i tipi di dati di tipo stringa, l'attributo value deve seguire le stesse restrizioni di contenuto del corpo del messaggio. Tuttavia, se l'attributo message viene utilizzato per il filtraggio, il valore deve essere una stringa JSON valida per garantire la compatibilità con le politiche di filtro degli abbonamenti di Amazon SNS. Per ulteriori informazioni, consulta l’operazione Pubblicare nella Documentazione di riferimento API di Amazon Simple Notification Service.
Nome, tipo e valore non devono essere vuoti o nulli. Inoltre, il corpo del messaggio non deve essere vuoto o nullo. Tutte le parti dell'attributo di messaggio, inclusi nome, tipo e valore, sono incluse nella limitazione della dimensione del messaggio che è di 256 KB.
Tipi di dati dell'attributo di messaggio e convalida
I tipi di dati degli attributi di messaggio identificano il modo in cui vengono gestiti i valori degli attributi dei messaggi da Amazon SNS. Ad esempio, se il tipo è un numero, Amazon SNS convalida che si tratta di un numero.
Amazon SNS supporta i seguenti tipi di dati logici per tutti gli endpoint tranne quanto indicato:
-
String – Le stringhe sono Unicode con codifica binaria UTF-8. Per un elenco dei valori di codice, consulta http://en.wikipedia. org/wiki/ASCII
#ASCII_printable_characters. Nota
I valori surrogati non sono supportati negli attributi del messaggio. Ad esempio, l'utilizzo di un valore surrogato per rappresentare un'emoji ti darà il seguente errore:
Invalid attribute value was passed in for message attribute
. -
String.Array: una matrice, formattata come una stringa, che può contenere più valori. I valori possono essere stringhe, numeri o le parole chiave
true
,false
enull
. Uno String.Array di tipo numerico o booleano non richiede virgolette. I valori String.Array sono separati da virgole.Questo tipo di dati non è supportato per AWS Lambda gli abbonamenti. Se si specifica questo tipo di dati per gli endpoint Lambda, viene passato come
String
tipo di dati nel payload JSON che Amazon SNS consegna a Lambda. -
Number – I numeri sono interi positivi o negativi oppure in virgola mobile. I numeri hanno un intervallo e una precisione sufficienti per comprendere la maggior parte dei possibili valori supportati in genere da valori interi, a virgola mobile e doppi. Un numero può avere un valore compreso fra -109 e 109, con 5 cifre di precisione dopo la virgola. Gli zero iniziali e finali vengono tagliati.
Questo tipo di dati non è supportato per AWS Lambda gli abbonamenti. Se si specifica questo tipo di dati per gli endpoint Lambda, viene passato come
String
tipo di dati nel payload JSON che Amazon SNS consegna a Lambda. -
Binary – Gli attributi di tipo binario possono archiviare qualsiasi tipo di dati binari, ad esempio dati compressi, dati crittografati o immagini.
Attributi di messaggio riservati per notifiche push per dispositivi mobili
Nella tabella seguente sono elencati gli attributi di messaggio riservati per i servizi di notifica push di dispositivi mobili che puoi usare per strutturare il messaggio di notifica push:
Servizio di notifiche push | Attributo di messaggio riservato |
---|---|
ADM | AWS.SNS.MOBILE.ADM.TTL |
APNs1 | AWS.SNS.MOBILE.APNS_MDM.TTL |
AWS.SNS.MOBILE.APNS_MDM_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS_PASSBOOK.TTL |
|
AWS.SNS.MOBILE.APNS_PASSBOOK_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS_VOIP.TTL |
|
AWS.SNS.MOBILE.APNS_VOIP_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS.COLLAPSE_ID |
|
AWS.SNS.MOBILE.APNS.PRIORITY |
|
AWS.SNS.MOBILE.APNS.PUSH_TYPE |
|
AWS.SNS.MOBILE.APNS.TOPIC |
|
AWS.SNS.MOBILE.APNS.TTL |
|
Baidu |
AWS.SNS.MOBILE.BAIDU.DeployStatus
|
AWS.SNS.MOBILE.BAIDU.MessageKey |
|
AWS.SNS.MOBILE.BAIDU.MessageType |
|
AWS.SNS.MOBILE.BAIDU.TTL |
|
FCM | AWS.SNS.MOBILE.FCM.TTL |
AWS.SNS.MOBILE.GCM.TTL |
|
macOS | AWS.SNS.MOBILE.MACOS_SANDBOX.TTL |
AWS.SNS.MOBILE.MACOS.TTL |
|
MPNS |
AWS.SNS.MOBILE.MPNS.NotificationClass |
AWS.SNS.MOBILE.MPNS.TTL |
|
|
|
WNS | AWS.SNS.MOBILE.WNS.CachePolicy |
AWS.SNS.MOBILE.WNS.Group |
|
AWS.SNS.MOBILE.WNS.Match |
|
AWS.SNS.MOBILE.WNS.SuppressPopup |
|
AWS.SNS.MOBILE.WNS.Tag |
|
AWS.SNS.MOBILE.WNS.TTL |
|
AWS.SNS.MOBILE.WNS.Type
|
1 Apple rifiuterà le notifiche Amazon SNS se gli attributi di messaggio non soddisfano i requisiti. Per ulteriori dettagli, consulta Invio di richieste di notifica a APNs