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à.
Applicazione di una politica di filtro degli abbonamenti in Amazon SNS
Il filtraggio dei messaggi in Amazon ti SNS consente di recapitare messaggi in modo selettivo agli abbonati in base a politiche di filtro. Queste politiche definiscono le condizioni che i messaggi devono soddisfare per essere recapitati a un abbonamento. Sebbene l'invio di messaggi non elaborati sia un'opzione che può influire sull'elaborazione dei messaggi, non è necessario che i filtri di abbonamento funzionino.
Puoi applicare una politica di filtro a un SNS abbonamento Amazon utilizzando la SNS console Amazon. Oppure, per applicare le politiche a livello di codice, puoi utilizzare Amazon SNSAPI, il AWS Command Line Interface (AWS CLI) o qualsiasi altro AWS SDK che supporti Amazon. SNS Puoi anche usare. AWS CloudFormation
Abilitazione del recapito di messaggi non elaborati
La consegna non elaborata dei messaggi garantisce che i payload dei messaggi vengano consegnati così come sono agli abbonati senza alcuna codifica o trasformazione aggiuntiva. Ciò può essere utile quando gli abbonati richiedono il formato originale dei messaggi per l'elaborazione. Tuttavia, il recapito dei messaggi non elaborati non è direttamente correlato alla funzionalità dei filtri di abbonamento.
Applicazione dei filtri di abbonamento
Per applicare i filtri dei messaggi a un abbonamento, è necessario definire una politica di filtro utilizzando la JSON sintassi. Questa politica specifica le condizioni che un messaggio deve soddisfare per essere recapitato all'abbonamento. I filtri possono essere basati sugli attributi del messaggio, come gli attributi del messaggio, la struttura del messaggio o persino il contenuto del messaggio.
Relazione tra i filtri di invio di messaggi non elaborati e di sottoscrizione
Sebbene l'attivazione del recapito dei messaggi non elaborati possa influire sul modo in cui i messaggi vengono recapitati ed elaborati dagli abbonati, non è un prerequisito per l'utilizzo dei filtri di abbonamento. Tuttavia, negli scenari in cui gli abbonati richiedono il formato originale dei messaggi senza alcuna modifica, l'attivazione del recapito dei messaggi non elaborati potrebbe essere utile oltre ai filtri di abbonamento.
Considerazioni per un filtraggio efficace
Quando implementate il filtraggio dei messaggi, tenete conto dei requisiti specifici dell'applicazione e degli abbonati. Definite politiche di filtro che soddisfino accuratamente i criteri di recapito dei messaggi per garantire una distribuzione efficiente e mirata dei messaggi.
Importante
AWS servizi come Amazon IAM e Amazon SNS utilizzano un modello di calcolo distribuito chiamato eventuale coerenza. Le aggiunte o le modifiche a una policy di filtro sottoscrizione richiedono fino a 15 minuti per essere pienamente effettive.
AWS Management Console
Accedi alla SNSconsole Amazon
. -
Nel riquadro di navigazione, scegli Sottoscrizioni.
-
Seleziona una sottoscrizione e quindi scegli Edit (Modifica).
-
Nella pagina Edit (Modifica), espandi la sezione Policy di filtro per sottoscrizione.
-
Scegli tra il filtro basato sugli attributi o sul payload.
-
Nel campo dell'JSONeditor, fornisci il JSONcorpo della tua politica di filtro.
-
Seleziona Salvataggio delle modifiche.
Amazon SNS applica la tua politica di filtro all'abbonamento.
AWS CLI
Per applicare una politica di filtro con AWS Command Line Interface (AWS CLI), usa il set-subscription-attributes
comando, come mostrato nell'esempio seguente. Per l'opzione --attribute-name
specifica FilterPolicy
. Per--attribute-value
, specifica la tua JSONpolitica.
$
aws sns set-subscription-attributes --subscription-arn
arn:aws:sns: ...
--attribute-name FilterPolicy --attribute-value'{"store":["example_corp"],"event":["order_placed"]}'
Per fornire una politica validaJSON, racchiudi i nomi e i valori degli attributi tra virgolette doppie. Devi inoltre racchiudere l'intero argomento della policy tra virgolette. Per evitare virgolette errate, è possibile utilizzare le virgolette singole per racchiudere la politica e le virgolette doppie per racchiudere i JSON nomi e i valori, come illustrato nell'esempio precedente.
Se desideri passare dal filtraggio dei messaggi basato sugli attributi (impostazione predefinita) a quello basato sul payload, puoi utilizzare anche il comando. set-subscription-attributes Per l'opzione --attribute-name
specifica FilterPolicyScope
. Per --attribute-value
, specificare MessageBody
.
$
aws sns set-subscription-attributes --subscription-arn arn:aws:sns: ... --attribute-name FilterPolicyScope --attribute-value MessageBody
Per verificare l'applicazione della policy di filtro, usa il comando get-subscription-attributes
. Gli attributi nell'output su terminale devono mostrare la policy di filtro per la chiave FilterPolicy
, come mostrato nell'esempio seguente:
$
aws sns get-subscription-attributes --subscription-arn arn:aws:sns: ...
{
"Attributes": {
"Endpoint": "endpoint . . .",
"Protocol": "https",
"RawMessageDelivery": "false",
"EffectiveDeliveryPolicy": "delivery policy . . .",
"ConfirmationWasAuthenticated": "true",
"FilterPolicy": "{\"store\": [\"example_corp\"], \"event\": [\"order_placed\"]}",
"FilterPolicyScope": "MessageAttributes",
"Owner": "111122223333",
"SubscriptionArn": "arn:aws:sns: . . .",
"TopicArn": "arn:aws:sns: . . ."
}
}
AWS SDKs
I seguenti esempi di codice mostrano come utilizzareSetSubscriptionAttributes
.
Importante
Se si utilizza l'esempio SDK per Java 2.x, la classe non SNSMessageFilterPolicy
è disponibile immediatamente. Per istruzioni su come installare questa classe, consultate l'esempio
Amazon SNS API
Per applicare una politica di filtro con Amazon SNSAPI, invia una richiesta all'SetSubscriptionAttributes
azione. Imposta il AttributeName
parametro su FilterPolicy
e imposta il AttributeValue
parametro sulla tua politica di filtroJSON.
Se desideri passare dal filtro dei messaggi basato sugli attributi (opzione predefinita) a quello basato sul payload, puoi utilizzare anche l'azione SetSubscriptionAttributes
. Imposta il parametro AttributeName
su FilterPolicyScope
e il parametro AttributeValue
su MessageBody
.
AWS CloudFormation
Per applicare una politica di filtro utilizzando AWS CloudFormation, utilizzate un YAML modello JSON or per creare uno AWS CloudFormation
stack. Per ulteriori informazioni, consultate la FilterPolicy
proprietà della AWS::SNS::Subscription
risorsa nella Guida per l'AWS CloudFormation utente e il AWS CloudFormation modello di esempio
-
Accedere alla console AWS CloudFormation
. -
Scegli Create Stack (Crea stack).
-
Nella pagina Select Template (Scegli modello), scegli Upload a template to Amazon S3 (Carica un modello in Amazon S3), scegli il file, quindi scegli Next (Avanti).
-
Nella pagina Specify Details (Specifica dettagli), procedi come segue:
-
Per Nome stack, digita
MyFilterPolicyStack
. -
Per myHttpEndpoint, digita l'HTTPendpoint a cui iscriverti al tuo argomento.
Suggerimento
Se non disponi di un HTTP endpoint, creane uno.
-
-
Nella pagina Opzioni, scegli Next (Avanti).
-
Nella pagina Revisione scegli Create (Crea).