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à.
SNSEsempi di politiche di filtro di Amazon
L'esempio seguente mostra un payload di messaggi recapitato da un SNS argomento di Amazon che elabora le transazioni dei clienti.
Il primo esempio include il campo MessageAttributes
, che presenta attributi che descrivono la transazione:
-
Interessi del cliente
-
Nome dello store
-
Stato dell'evento
-
Prezzo di acquisto in USD
Poiché questo messaggio include il campo MessageAttributes
, qualsiasi sottoscrizione all'argomento che imposta un FilterPolicy
può accettare o rifiutare in modo selettivo il messaggio, a condizione che FilterPolicyScope
sia impostato su MessageAttributes
nella sottoscrizione. Per informazioni sull'applicazione di attributi a un messaggio, consulta Attributi SNS dei messaggi Amazon.
{
"Type": "Notification",
"MessageId": "a1b2c34d-567e-8f90-g1h2-i345j67klmn8",
"TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic",
"Message": "message-body-with-transaction-details
",
"Timestamp": "2019-11-03T23:28:01.631Z",
"SignatureVersion": "4",
"Signature": "signature
",
"UnsubscribeURL": "unsubscribe-url
",
"MessageAttributes": {
"customer_interests": {
"Type": "String.Array",
"Value": "[\"soccer\", \"rugby\", \"hockey\"]"
},
"store": {
"Type": "String",
"Value":"example_corp"
},
"event": {
"Type": "String",
"Value": "order_placed"
},
"price_usd": {
"Type": "Number",
"Value": "210.75"
}
}
}
L'esempio seguente mostra gli stessi attributi inclusi nel campo Message
, denominato anche payload del messaggio o corpo del messaggio. Qualsiasi sottoscrizione a un argomento che includa un FilterPolicy
può accettare o rifiutare in modo selettivo il messaggio, a condizione che FilterPolicyScope
sia impostato su MessageBody
nella sottoscrizione.
{
"Type": "Notification",
"MessageId": "a1b2c34d-567e-8f90-g1h2-i345j67klmn8",
"TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic",
"Message": "{
\"customer_interests\": [\"soccer\", \"rugby\", \"hockey\"],
\"store\": \"example_corp\",
\"event\":\"order_placed\",
\"price_usd\":210.75
}",
"Timestamp": "2019-11-03T23:28:01.631Z",
"SignatureVersion": "4",
"Signature": "signature",
"UnsubscribeURL": "unsubscribe-url"
}
Le seguenti policy di filtro accettano o rifiutano i messaggi in base ai relativi nomi e valori delle proprietà.
Policy che accetta il messaggio di esempio
Le proprietà nella seguente policy di filtro per le sottoscrizioni corrispondono a quelli assegnati al messaggio di esempio. È importante notare che la stessa policy di filtro funziona per un FilterPolicyScope
indipendentemente dal fatto che sia impostata su MessageAttributes
o su MessageBody
. Ogni sottoscrittore sceglie il proprio ambito di filtro in base alla composizione dei messaggi che riceve dall'argomento.
Se una singola proprietà specificata in questa policy non corrisponde a un attributo assegnato al messaggio, la policy rifiuta il messaggio.
{
"store": ["example_corp"],
"event": [{"anything-but": "order_cancelled"}],
"customer_interests": [
"rugby",
"football",
"baseball"
],
"price_usd": [{"numeric": [">=", 100]}]
}
Policy che rifiuta il messaggio di esempio
La policy seguente presenta diverse mancate corrispondenze tra le sue proprietà e quelle assegnate al messaggio di esempio. Ad esempio, poiché il nome della proprietà encrypted
non figura fra gli attributi del messaggio, tale proprietà della policy causa il rifiuto del messaggio, indipendentemente dal valore a esso assegnato.
Se si verifica una qualsiasi mancata corrispondenza, la policy rifiuta il messaggio.
{
"store": ["example_corp"],
"event": ["order_cancelled"],
"encrypted": [false],
"customer_interests": [
"basketball",
"baseball"
]
}