View a markdown version of this page

Pubblicazione di messaggi di grandi dimensioni con Amazon SNS - Amazon Simple Notification Service

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à.

Pubblicazione di messaggi di grandi dimensioni con Amazon SNS

Amazon SNS supporta payload di messaggi fino a 1 MiB (1.048.576 byte) quando si configura l'attributo topic. MaximumMessageSize Per impostazione predefinita, gli argomenti accettano messaggi fino a 256 KiB. Gli argomenti con MaximumMessageSize un valore impostato superiore a 256 KiB supportano Amazon Data Firehose, Amazon SQS e AWS Lambda gli abbonamenti, con un massimo di 100 sottoscrizioni totali per argomento.

Come funziona la pubblicazione di messaggi di grandi dimensioni

È possibile impostare l'attributo MaximumMessageSize topic su qualsiasi valore intero compreso tra 1.024 e 1.048.576 byte. Per impostazione predefinita, tutti gli argomenti esistenti e quelli appena creati hanno una dimensione MaximumMessageSize di 262.144 byte (256 KiB).

Quando pubblichi un messaggio, Amazon SNS convalida la dimensione combinata del corpo del messaggio e degli attributi del messaggio rispetto all'argomento configurato. MaximumMessageSize Se la dimensione combinata supera il limite, Amazon SNS restituisce un InvalidParameter errore al momento della pubblicazione.

Configurazione supportata

Se imposti un MaximumMessageSize valore superiore a 256 KiB, Amazon SNS supporta la seguente configurazione.

Limiti di abbonamento

L'argomento supporta fino a 100 abbonamenti totali. Se si tenta di creare abbonamenti aggiuntivi, Amazon SNS restituisce un errore. InvalidParameter

Tipi di endpoint supportati

Gli argomenti con MaximumMessageSize più di 256 KiB supportano i seguenti tipi di endpoint:

  • Amazon Data Firehose

  • Amazon SQS

  • AWS Lambda

Gli argomenti con MaximumMessageSize una dimensione pari o inferiore a 256 KiB supportano anche gli endpoint SMS HTTP/HTTPS, email, email-json e mobile push (applicazione).

Impostazione su argomenti MaximumMessageSize esistenti

Puoi aumentare o diminuire il numero di un argomento MaximumMessageSize in qualsiasi momento. Dopo aver modificato il valore, Amazon SNS convalida le nuove richieste di pubblicazione rispetto al limite aggiornato.

Per MaximumMessageSize superare i 256 KiB, l'argomento deve avere un totale di 100 o meno sottoscrizioni, tutte di tipi di endpoint supportati (Amazon Data Firehose, Amazon SQS o). AWS Lambda Se l'argomento ha tipi di endpoint non supportati o più di 100 abbonamenti, Amazon SNS restituisce un errore. InvalidParameter

Configurazione dell'argomento per messaggi di grandi dimensioni

Utilizzo di AWS Console di gestione

Per configurare l'argomento per pubblicare messaggi di dimensioni maggiori
  1. Apri la console Amazon SNS all'indirizzo https://console.aws.amazon.com/sns/home.

  2. Nel pannello di navigazione a sinistra, selezionare Topics (Argomenti).

  3. Seleziona l'argomento e scegli Modifica.

  4. In Dimensione massima del messaggio, imposta il limite desiderato (fino a 1.024 KiB).

  5. Scegli Save changes (Salva modifiche).

Utilizzo di AWS CLI

Imposta MaximumMessageSize quando crei un nuovo argomento:

aws sns create-topic \ --name my-large-message-topic \ --attributes MaximumMessageSize=1048576

Sostituiscilo my-large-message-topic con il nome dell'argomento e 1048576 con la dimensione massima del messaggio desiderata in byte.

Impostato MaximumMessageSize su un argomento esistente:

aws sns set-topic-attributes \ --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic \ --attribute-name MaximumMessageSize \ --attribute-value 1048576

Sostituiscilo arn:aws:sns:us-east-1:123456789012:my-topic con l'ARN del tuo argomento e 1048576 con la dimensione massima del messaggio desiderata in byte.

Verifica che l'argomento sia attuale. MaximumMessageSize Se l'attributo non è stato impostato in modo esplicito, non viene visualizzato nella risposta e l'argomento utilizza il valore predefinito di 262.144 byte (256 KiB).

aws sns get-topic-attributes \ --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic

Riferimento all'API Amazon SNS per messaggi di grandi dimensioni

Il supporto per i messaggi di grandi dimensioni utilizza le API Amazon SNS esistenti. Non sono necessarie nuove operazioni API.

"Hello, World!" Modifica
CreateTopic Accetta MaximumMessageSize nel Attributes parametro. Intervallo valido: 1.024-1048.576 byte.
SetTopicAttributes MaximumMessageSizeAccetta come nome di attributo.
GetTopicAttributes Restituisce MaximumMessageSize se l'attributo è stato impostato in modo esplicito. Se non viene restituito, l'argomento utilizza il valore predefinito di 262.144 byte (256 KiB).
Publish Convalida la dimensione combinata del corpo del messaggio e degli attributi del messaggio rispetto a quelle dell'argomento. MaximumMessageSize
PublishBatch Convalida la dimensione combinata di tutti i messaggi del batch (corpo e attributi di ciascun messaggio) rispetto a quelle dell'argomento. MaximumMessageSize

Compatibilità degli endpoint

L'elenco seguente descrive in che modo Amazon SNS invia i tuoi messaggi di grandi dimensioni a ciascun tipo di endpoint supportato.

  • Amazon Data Firehose: Amazon Data Firehose carica i dati in streaming in archivi dati e servizi di analisi. Supporta registrazioni fino a 1.000 KiB (1.024.000 byte). Il messaggio recapitato deve rimanere al di sotto di questo limite. Il limite include i metadati di consegna di Amazon SNS, come l'ID del messaggio e il timestamp. I messaggi che superano il limite non vengono recapitati. Un argomento MaximumMessageSize può essere impostato fino a 1.024 KiB (1.048.576 byte). Per questo motivo, ti consigliamo di impostare un valore inferiore MaximumMessageSize per gli argomenti con abbonamenti Firehose. Per conoscere l'attuale limite di dimensione del record, consulta le quote di Amazon Data Firehose.

  • Amazon SQS — Amazon SNS è in grado di recapitare un messaggio a una coda Amazon SQS sottoscritta fino alla dimensione massima supportata da Amazon SQS. La coda propria non si applica ai messaggi provenienti da MaximumMessageSize Amazon SNS. L'argomento di Amazon SNS MaximumMessageSize è il limite di dimensione effettivo per questi messaggi.

  • AWS Lambda— Amazon SNS richiama AWS Lambda le funzioni in modo asincrono. AWS Lambda supporta payload di chiamata asincrona fino a 1 MiB. Non è richiesta alcuna configurazione aggiuntiva per gli abbonamenti. AWS Lambda

Best practice

Configura le code per le lettere morte

Consigliamo di configurare una coda per le lettere morte (DLQ) su tutti gli abbonamenti per gestire il mancato recapito dei messaggi. Un DLQ acquisisce i messaggi che Amazon SNS non è in grado di recapitare correttamente all'endpoint sottoscritto, consentendoti di ispezionarli e rielaborarli. Per ulteriori informazioni, consulta Code per le lettere morte di Amazon SNS.

CloudWatch Monitora con metriche e allarmi

Usa le CloudWatch metriche per monitorare la consegna dei messaggi e impostare allarmi in caso di consegne non riuscite. La NumberOfNotificationsFailed metrica tiene traccia dei messaggi che Amazon SNS non è in grado di recapitare agli endpoint sottoscritti. Crea un CloudWatch allarme su questa metrica per ricevere avvisi quando si verificano errori di consegna. Per ulteriori informazioni, consulta Monitoraggio degli argomenti di Amazon SNS utilizzando CloudWatch.

Pubblicazione di messaggi di dimensioni superiori a 1 MiB con Amazon S3

Per pubblicare messaggi di dimensioni superiori a 1 MiB, utilizza Amazon SNS Extended Client Library per Java o Amazon SNS Extended Client Library for Python per archiviare i payload in Amazon S3 e pubblicare un riferimento tramite Amazon SNS. Queste librerie supportano messaggi fino a 2 GB e sono compatibili con argomenti Standard e FIFO. Per istruzioni sull'aumento MaximumMessageSize prima di scegliere questo approccio, vedereConfigurazione dell'argomento per messaggi di grandi dimensioni.