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
-
Apri la console Amazon SNS all'indirizzo https://console.aws.amazon.com/sns/home
. -
Nel pannello di navigazione a sinistra, selezionare Topics (Argomenti).
-
Seleziona l'argomento e scegli Modifica.
-
In Dimensione massima del messaggio, imposta il limite desiderato (fino a 1.024 KiB).
-
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
MaximumMessageSizepuò essere impostato fino a 1.024 KiB (1.048.576 byte). Per questo motivo, ti consigliamo di impostare un valore inferioreMaximumMessageSizeper 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
MaximumMessageSizeAmazon SNS. L'argomento di Amazon SNSMaximumMessageSizeè 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 MaximumMessageSize prima di scegliere questo approccio, vedereConfigurazione dell'argomento per messaggi di grandi dimensioni.