Domande frequenti su HAQM SQS
Argomenti della pagina
PanoramicaPanoramica
Apri tuttoQuali sono i vantaggi di HAQM SQS rispetto ai sistemi di accodamento di messaggi sviluppati internamente o in commercio?
HAQM SQS offre diversi vantaggi rispetto alla costruzione di software personali per la gestione delle code di messaggi o all'uso di sistemi di code di messaggi open source o commerciali, che richiedono, almeno all'inizio, notevoli sforzi di sviluppo e di configurazione.
Queste alternative richiedono manutenzione hardware continua e occupano risorse di amministrazione del sistema. La complessità di configurazione e gestione di questi sistemi è aggravata dalla necessità di prevedere storage ridondante che eviti la perdita di messaggi in caso di guasti hardware.
Al contrario, HAQM SQS richiede una configurazione minima senza sovraccarico amministrativo. Inoltre, HAQM SQS funziona su vasta scala ed è in grado di elaborare miliardi di messaggi al giorno. È possibile ridimensionare la quantità di traffico in HAQM SQS in qualsiasi momento e con qualsiasi configurazione. Infine, HAQM SQS fornisce una durabilità di messaggi molto elevata, offrendo una maggiore sicurezza a te e ai tuoi collaboratori.
In che cosa si differenzia HAQM SQS da HAQM Simple Notification Service (SNS)?
HAQM SNS consente alle applicazioni di inviare messaggi con vincoli tempistici specifici a più sottoscrittori grazie a un meccanismo "push" che elimina la necessità di controllare periodicamente (polling) l'eventuale presenza di aggiornamenti. HAQM SQS è un servizio di accodamento dei messaggi utilizzato dalle applicazioni distribuite per scambiare messaggi mediante un modello di polling, che può essere impiegato per decuplicare i componenti di invio e ricezione.
Quali sono le differenze tra HAQM SQS e HAQM MQ?
Se è in uso un'applicazione esistente e occorre trasferire la messaggistica nel cloud in modo semplice e veloce, si consiglia di utilizzare HAQM MQ. Supporta i protocolli e le API standard di settore e consente pertanto di passare da un qualsiasi broker di messaggistica basato su standard ad HAQM MQ senza dover ricompilare il codice dell'applicazione. Se è previsto lo sviluppo di una nuova applicazione nel cloud, si consiglia di utilizzare HAQM SQS e HAQM SNS. HAQM SQS ed SNS sono servizi di gestione di code di messaggi e argomenti completamente gestiti, che ricalibrano le risorse praticamente all'infinito e forniscono API intuitive.
HAQM SQS fornisce l'ordine di messaggi?
Sì. Le code FIFO (first-in-first-out) conservano l'ordine esatto nel quale i messaggi vengono inviati e ricevuti. Se si utilizza una coda FIFO, non c'è bisogno di aggiungere informazioni di sequenziamento nei messaggi. Per maggiori informazioni, consulta la sezione Logica delle code FIFO nella Guida per gli sviluppatori di HAQM SQS.
Le code standard forniscono una funzionalità loose-FIFO che cerca di mantenere l'ordine dei messaggi. Tuttavia, poiché le code standard sono progettate per essere altamente scalabili utilizzando un'architettura estremamente distribuita, non è garantito che i messaggi ricevuti siano nello stesso esatto ordine nel quale sono stati inviati.
HAQM SQS garantisce la consegna dei messaggi?
Le code standard offrono una distribuzione di tipo at-least-once, ovvero ciascun messaggio viene distribuito almeno una volta.
Le code FIFO forniscono singole elaborazioni precise, ovvero ciascun messaggio viene distribuito una volta e rimane disponibile fino a che un consumer lo elabora e lo elimina. Non vengono introdotti duplicati nella coda.
Quali sono le differenze tra HAQM SQS e HAQM Kinesis Streams?
HAQM SQS offre code in hosting affidabili e a scalabilità elevata per memorizzare i messaggi durante il trasferimento fra applicazioni o microservizi. Trasferisce dati fra i componenti di applicazioni distribuite e consente di disaccoppiare questi componenti. HAQM SQS fornisce costrutti di middleware comuni quali code DLQ e gestione a pillola di veleno. Inoltre fornisce un'API web service generica ed è accessibile con qualsiasi linguaggio di programmazione supportato dall'SDK AWS. HAQM SQS supporta sia le code standard sia le code FIFO.
HAQM Kinesis Streams permette l'elaborazione in tempo reale di streaming di big data e la capacità di leggere e riprodurre i record su più applicazioni HAQM Kinesis. L'HAQM Kinesis Client Library (KCL) distribuisce tutti i record per una determinata chiave di partizione allo stesso processore, facilitando la creazione di più applicazioni in grado di leggere dallo stesso flusso di HAQM Kinesis (ad esempio, per l'applicazione di conteggi, aggregazioni o filtri).
Per ulteriori informazioni, consulta la documentazione su HAQM Kinesis.
HAQM utilizza HAQM SQS per le sue applicazioni?
Sì. Gli sviluppatori di HAQM usano HAQM SQS per diverse applicazioni che elaborano un elevato numero di messaggi al giorno. I processi aziendali più importanti di HAQM.com e di AWS impiegano HAQM SQS.
Fatturazione
Apri tuttoQuanto costa HAQM SQS?
I prezzi sono calcolati solo in base all'uso effettivo, senza tariffe minime.
Il costo di HAQM SQS viene calcolato in base alle richieste, a cui si aggiungono i costi di trasferimento dei dati da HAQM SQS (a meno che i dati non vengano trasferiti in istanze HAQM Elastic Compute Cloud (EC2) o funzioni AWS Lambda nella stessa regione). Per i dettagli sui prezzi per tipo di coda e per regione, consulta i prezzi di HAQM SQS.
Cosa prevede il piano gratuito di HAQM SQS?
Il piano gratuito di HAQM SQS offre 1 milione di richieste al mese senza alcun costo.
Molte applicazioni di piccole dimensioni possono operare interamente nell'ambito del piano gratuito. Saranno tuttavia applicati i costi di trasferimento dei dati. Per maggiori informazioni, consulta i Prezzi di HAQM SQS.
Il piano gratuito è un'offerta mensile. L'uso gratuito non viene accumulato di mese in mese.
Vengono addebitati i costi di tutte le richieste HAQM SQS?
Sì, per ogni richiesta che va oltre il piano gratuito. Tutte le richieste di HAQM SQS sono soggette a costi e vengono fatturate alla stessa tariffa.
Le operazioni in batch di HAQM SQS costano più delle altre richieste?
No, le operazioni in batch (SendMessageBatch, DeleteMessageBatch e ChangeMessageVisibilityBatch) hanno lo stesso costo delle altre richieste HAQM SQS. Raggruppando le richieste in batch, potrai ridurre i costi correlati ad HAQM SQS.
Come viene addebitato e fatturato l'utilizzo di HAQM SQS?
Non sono previsti costi di avvio per iniziare a usare HAQM SQS. Alla fine del mese, verrà addebitato sulla carta di credito il costo delle risorse utilizzate in quel mese.
Puoi visualizzare in qualsiasi momento i costi relativi al periodo di fatturazione corrente sul sito Web di AWS:
- Accedi al tuo account AWS.
- Nella pagina in Account Web Services, seleziona Attività account.
In che modo è possibile tenere traccia e gestire i costi associati alle code HAQM SQS?
Per monitorare le code per determinate risorse e calcolarne i costi, puoi utilizzare i tag per l'allocazione dei costi. Un tag è un'etichetta di metadati che include una coppia chiave-valore. Ad esempio, è possibile contrassegnare con dei tag le code in base al centro di costo, per poi suddividere le spese in categorie separate.
Per ulteriori informazioni, consulta la sezione Applicazione di tag alle tue code HAQM SQS nella guida per sviluppatori di HAQM SQS. Per ulteriori informazioni sull'applicazione di tag per l'allocazione dei costi, consulta la sezione Tag di allocazione dei costi nel documento guida per l’utente Fatturazione e gestione costi AWS.
I prezzi includono le tasse?
Salvo diversamente specificato, i prezzi sono al netto di eventuali tasse e imposte doganali, inclusa l'IVA ed eventuali imposte sulle vendite.
Per i clienti con indirizzo di fatturazione in Giappone, l'utilizzo di AWS (in qualunque area geografica) è soggetto all'imposta sul consumo giapponese. Per ulteriori informazioni, consulta la pagina Domande frequenti sull'imposta sul consumo per HAQM Web Services.
Caratteristiche, funzionalità e interfacce
Apri tuttoÈ possibile usare HAQM SQS con altri servizi AWS?
Sì. Puoi rendere le applicazioni più flessibili e scalabili utilizzando HAQM SQS con servizi di calcolo quali HAQM EC2, HAQM Elastic Container Service (ECS) e AWS Lambda, oppure con servizi di archiviazione e di database quali HAQM Simple Storage Service (HAQM S3) e HAQM DynamoDB.
Come si interagisce con HAQM SQS?
Puoi accedere ad HAQM SQS utilizzando la Console di gestione AWS, che consente di creare code di HAQM SQS e inviare messaggi facilmente.
HAQM SQS fornisce anche un API web service. Inoltre è integrato con gli SDK AWS, che consentono di lavorare nel linguaggio di programmazione di tua scelta.
Quali operazioni API sono disponibili per HAQM SQS?
Per dettagli sulle operazioni sulle code, consulta la Documentazione di riferimento delle API di HAQM SQS.
Chi può effettuare operazioni su una coda di messaggi?
Solo il proprietario dell'account AWS (o di un account a cui il proprietario ne abbia delegato i diritti) può effettuare operazioni su una coda di messaggi HAQM SQS.
È possibile utilizzare il servizio messaggi Java (JMS) con HAQM SQS?
Sì. Puoi sfruttare scalabilità, costi ridotti e disponibilità elevata di HAQM SQS senza dover gestire un cluster JMS.
HAQM fornisce la libreria di messaggistica HAQM SQS Java, che implementa le specifiche di JMS 1.1 e utilizza HAQM SQS come provider JMS. Per maggiori informazioni, consulta Utilizzo di JMS con HAQM SQS nella Guida per gli sviluppatori di HAQM SQS.
Come fa HAQM SQS a identificare i messaggi?
Tutti i messaggi hanno un ID univoco globale che HAQM SQS restituisce quando il messaggio viene consegnato nella coda. L'ID non è necessario per eseguire ulteriori operazioni sul messaggio, ma è utile per monitorare la corretta ricezione di un determinato messaggio in una coda.
Quando ricevi un messaggio dalla coda, la risposta include un handle di ricezione, che devi fornire quando elimini un messaggio.
Per ulteriori informazioni, consulta la sezione Identificatori di code e messaggi nella Guida per gli sviluppatori di HAQM SQS.
In che modo HAQM SQS gestisce i messaggi che non possono essere elaborati?
In HAQM SQS, puoi usare l'API o la console per configurare code DLQ che ricevono messaggi provenienti da altre code di origine. Quando si configura una coda DLQ, è necessario impostare le autorizzazioni appropriate per il riorientamento della coda DLQ utilizzando RedriveAllowPolicy.
RedriveAllowPolicy include i parametri per l'autorizzazione di riorientamento della coda DLQ. Definisce quali code di origine possono specificare le code DLQ come oggetto JSON.
Una volta che crei una coda DLQ, questa riceve messaggi dopo che il numero massimo di tentativi di elaborazione non può essere completato. Puoi usare code DLQ per isolare i messaggi che non possono essere elaborati, in modo da analizzarli in un secondo momento.
Per maggiori informazioni, consulta la sezione Utilizzo delle code DLQ di HAQM SQS nella Guida per gli sviluppatori di HAQM SQS.
Cos'è il timeout della visibilità?
Il timeout visibilità è un intervallo di tempo durante il quale HAQM SQS impedisce ad altri componenti la ricezione e l'elaborazione di un messaggio. Per ulteriori informazioni, consulta la sezione Timeout della visibilità nella Guida per gli sviluppatori di HAQM SQS.
HAQM SQS supporta i metadati nei messaggi?
Sì. Un messaggio HAQM SQS può contenere fino a 10 attributi di metadati. Puoi usare tali attributi per separare il corpo del messaggio dai metadati che lo descrivono. In questo modo è più semplice elaborare e memorizzare le informazioni più rapidamente e in modo più intelligente, perché le applicazioni non devono analizzare l'intero messaggio prima di apprendere come elaborarlo.
Gli attributi di messaggio HAQM SQS hanno la forma del gruppo nome-tipo-valore. I tipi supportati includono stringhe, valori binari e numeri (numeri interi, a virgola mobile e a doppia precisione). Per maggiori informazioni, consulta Utilizzo degli attributi di messaggi di HAQM SQS nella Guida per gli sviluppatori di HAQM SQS.
In che modo è possibile determinare il valore del tempo in coda?
Per determinare il valore del tempo in coda, è possibile richiedere l'attributo SentTimestamp al momento della ricezione del messaggio. Sottraendo quel valore dall'ora attuale si ottiene il valore del tempo in coda.
Qual è, in genere, la latenza di HAQM SQS?
In genere, la latenza per le richieste API SendMessage, ReceiveMessage e DeleteMessage è quantificabile nell'ordine di qualche decina o poche centinaia di millisecondi.
Per l'accesso in forma anonima, qual è il valore dell'attributo SenderId per un messaggio?
Quando l'ID account AWS non è disponibile (ad esempio quando invia un messaggio un utente anonimo), HAQM SQS fornisce un indirizzo IP.
Cos'è il polling lungo in HAQM SQS?
Il polling lungo in HAQM SQS è un modo per recuperare messaggi dalle code HAQM SQS. Mentre il comune polling breve restituisce i messaggi immediatamente, anche quando la coda interrogata è vuota, il polling lungo non restituisce la risposta finché il messaggio non arriva nella coda o il polling lungo scade.
Con il polling lungo, recuperare i messaggi dalla coda HAQM SQS non appena sono disponibili è facile e poco costoso. Il polling lungo può ridurre il costo di utilizzo di SQS, poiché riduce il numero di ricezioni a vuoto. Per maggiori informazioni, consulta la sezione Polling lungo di HAQM SQS nella Guida per gli sviluppatori di HAQM SQS.
Il polling lungo di HAQM SQS comporta costi aggiuntivi?
No, le chiamate ReceiveMessage associate al polling lungo vengono fatturate esattamente come le altre chiamate ReceiveMessage.
In quali casi è più utile usare il polling lungo di HAQM SQS e in quali casi il polling breve?
In quasi tutti i casi, il polling lungo HAQM SQS è preferibile al polling breve. Le richieste a polling lungo consentono la ricezione dei messaggi non appena raggiungono la coda, riducendo il numero di istanze ReceiveMessageResponse restituite vuote.
Il polling lungo di HAQM SQS ha prestazioni più elevate e un costo ridotto nella maggior parte dei casi d'uso. Tuttavia, se un'applicazione è stata progettata per ricevere una risposta immediata da una chiamata ReceiveMessage, sarà necessario apportare alcune modifiche per poter approfittare dei vantaggi del polling lungo.
Per esempio, se la tua applicazione impiega un thread singolo per interrogare più code, potrebbe non essere possibile passare dal polling breve a quello lungo, perché il thread singolo attenderà il timeout del polling lungo sulle code vuote, ritardando l'elaborazione delle code che possono contenere messaggi.
In applicazioni di questo genere, consigliamo di usare un thread singolo per elaborare una sola coda, consentendo all'applicazione di sfruttare i vantaggi del polling lungo di HAQM SQS.
Quale valore è consigliabile usare per il timeout del polling lungo?
In generale, il timeout di un polling lungo dovrebbe essere al massimo di 20 secondi. Poiché valori di timeout più elevati riducono il numero di istanze ReceiveMessageResponse restituite vuote, prova a impostare un timeout il più elevato possibile.
Se il limite di 20 secondi non è adatto per l'applicazione in uso (come nell'esempio della domanda precedente), imposta un timeout di durata inferiore, fino a 1 secondo.
Tutti i kit SDK AWS sono impostati con polling lunghi di 20 secondi come valore predefinito. Se non usi un kit SDK AWS per accedere ad HAQM SQS, oppure se lo hai configurato con un timeout più breve, potresti dover modificare il client HAQM SQS perché accetti richieste con termini più lunghi o utilizzare un timeout con polling breve.
Cos'è HAQMSQSBufferedAsyncClient per Java?
HAQMSQSBufferedAsyncClient per Java fornisce un'implementazione dell'interfaccia HAQMSQSAsyncClient e aggiunge diverse importanti caratteristiche:
- L'inclusione automatica in batch di più richieste SendMessage, DeleteMessage o ChangeMessageVisibility senza dover modificare l'applicazione
- Prelettura dei messaggi in un buffer locale per consentire all'applicazione di elaborare immediatamente i messaggi da HAQM SQS senza attenderne il recupero
La combinazione di queste due caratteristiche (la creazione automatica di batch e la prelettura) permette di migliorare il throughput e ridurre la latenza delle applicazioni, contenendo al contempo i costi grazie alla diminuzione del numero di richieste HAQM SQS. Per maggiori informazioni, consulta la sezione Buffering lato client e inclusione in batch di richieste nella Guida per gli sviluppatori di HAQM SQS.
Dove è possibile scaricare HAQMSQSBufferedAsyncClient per Java?
HAQMSQSBufferedAsyncClient fa parte dell’AWS SDK per Java.
È necessario riscrivere un'applicazione per poter utilizzare HAQMSQSBufferedAsyncClient per Java?
no, HAQMSQSBufferedAsyncClient per Java viene implementata come una sostituzione nel codice per le istanze esistenti di HAQMSQSAsyncClient.
Se aggiorni un'applicazione per consentire l'utilizzo del kit SDK AWS più recente e modifichi il client perché utilizzi HAQMSQSBufferedAsyncClient per Java invece di HAQMSQSAsyncClient, l'applicazione potrà beneficiare del batching automatico e della prelettura.
In che modo è possibile abbonarsi alle code di messaggi HAQM SQS per ricevere le notifiche dagli argomenti HAQM SNS?
- Nella console di HAQM SQS, seleziona una coda di messaggi standard.
- In Queue Actions, seleziona Subscribe Queue to SNS Topic dall'elenco a discesa.
- Nella finestra di dialogo, seleziona l'argomento desiderato nell'elenco a discesa Choose a Topic e fai clic su Subscribe.
Per maggiori informazioni, consulta la sezione Sottoscrizione di una coda a un argomento di HAQM SNS nella Guida per gli sviluppatori di HAQM SQS.
È possibile eliminare tutti i messaggi in una coda di messaggi senza eliminare la coda?
Sì. Puoi eliminare tutti i messaggi in una coda HAQM SQS tramite l'operazione PurgeQueue.
Quando si ripulisce una coda, tutti i messaggi precedentemente inviati a quella coda vengono eliminati. Poiché la coda e i relativi attributi non vengono cancellati, non è necessario riconfigurarla, ma è possibile continuare a utilizzarla.
Per cancellare solo messaggi specifici, usa le chiamate DeleteMessage e DeleteMessageBatch.
Per ulteriori informazioni, guarda questo tutorial: Ripulire messaggi da una coda di HAQM SQS.
Code FIFO
Apri tuttoIn quali regioni sono disponibili le code FIFO?
Le code FIFO sono disponibili in tutte le regioni AWS in cui è disponibile HAQM SQS. Per dettagli sulla disponibilità di HAQM SQS, consulta questa pagina.
Quante copie di un messaggio si ricevono?
Le code FIFO sono progettate per non introdurre mai messaggi duplicati. Tuttavia, in alcuni casi, il produttore di messaggi può introdurre duplicati: per esempio, se il produttore invia un messaggio, non riceve una risposta e allora rimanda lo stesso messaggio. Le API di HAQM SQS forniscono una funzionalità di disaccoppiamento che impedisce al produttore del messaggio di inviare duplicati. I duplicati introdotti dal produttore del messaggio vengono eliminati entro un intervallo di disaccoppiamento di 5 minuti.
Con le code standard, è possibile che si riceva occasionalmente il duplicato di un messaggio (consegna almeno una volta). Se si usa una coda standard, le applicazioni devono essere idempotenti (ovvero non devono essere influenzate nel momento in cui un messaggio viene elaborato più di una volta).
Per ulteriori informazioni, consulta la sezione Elaborazione singola nella Guida per gli sviluppatori di HAQM SQS.
Le code HAQM SQS che ho usato precedentemente diventeranno code FIFO?
Le code standard di HAQM SQS (il nuovo nome delle code esistenti) non cambiano e si possono ancora creare code standard. Queste code continuano a fornire la scalabilità e il throughput più elevati, tuttavia l'ordine non è garantito e possono esserci duplicati.
Le code standard sono adatta a più scenari, come ad esempio la distribuzione di lavoro con più consumer idempotenti.
È possibile convertire una coda standard esistente in una coda FIFO?
No. Quando crei una coda, devi sceglierne il tipo. Tuttavia è possibile passare a una coda FIFO. Per ulteriori informazioni, consulta la sezione Passaggio da una coda standard a una FIFO nella Guida per gli sviluppatori di HAQM SQS.
Le code FIFO di HAQM SQS sono compatibili con versioni precedenti?
Per utilizzare la funzionalità di coda FIFO si deve usare l'SDK AWS più recente.
Le code FIFO utilizzano le stesse azioni API delle code standard e i meccanismi di ricezione ed eliminazione dei messaggi e di modifica del timeout visibilità sono gli stessi. Tuttavia, quando si inviano messaggi, si deve specificare un ID di gruppo di messaggi. Per maggiori informazioni, consulta la sezione Logica delle code FIFO nella Guida per gli sviluppatori di HAQM SQS.
Quali parametri di AWS CloudWatch supportano le code FIFO di HAQM SQS?
Le code FIFO supportano tutti i parametri supportati dalle code standard. Per le code FIFO, tutti i parametri approssimativi restituiscono conteggi accurati. Per esempio, sono supportati i seguenti parametri di CloudWatch AWS:
- ApproximateNumberOfMessagesDelayed – Il numero dei messaggi nella coda che vengono differiti e non sono disponibili per la lettura immediata.
- ApproximateNumberOfMessagesVisible – Il numero dei messaggi disponibili per il recupero dalla coda.
- ApproximateNumberOfMessagesNotVisible – Il numero dei messaggi in volo, ovvero inviati a un client ma che non sono ancora stati eliminati e che non hanno ancora raggiunto il limite della finestra di visibilità.
Cosa sono i gruppi di messaggi?
I messaggi sono raggruppati in "pacchetti" distinti e ordinati in una coda FIFO. Per ogni ID di gruppo di messaggi, tutti i messaggi vengono inviati e ricevuti nell'ordine esatto. Tuttavia, i messaggi con valori ID gruppo messaggi diversi possono essere inviati e ricevuti fuori ordine. Devi associare un ID gruppo di messaggi a un messaggio. Se non si fornisce un ID di gruppo di messaggi, l'azione non viene completata.
Se più host (o diversi thread sullo stesso host) inviano messaggi con lo stesso ID di gruppo di messaggi a una coda FIFO, HAQM SQS li consegna nell'ordine in cui sono arrivati per l'elaborazione. Per garantire che HAQM SQS conservi l'ordine nel quale i messaggi vengono inviati e ricevuti, i mittenti devono inviare ciascun messaggio con un ID di gruppo di messaggi univoco.
Per maggiori informazioni, consulta la sezione Logica delle code FIFO nella Guida per gli sviluppatori di HAQM SQS.
Le code FIFO di HAQM SQS supportano più producer?
Sì. Uno o più produttori possono inviare messaggi a una coda FIFO. I messaggi vengono memorizzati nell'ordine in cui sono ricevuti correttamente da HAQM SQS.
Se più produttori inviano messaggi in parallelo senza attendere la risposta di esito positivo delle azioni SendMessage o SendMessageBatch, l'ordine fra i produttori può non essere rispettato. La risposta delle azioni SendMessage or SendMessageBatch contiene la sequenza d'ordine finale utilizzata dalle code FIFO per collocare i messaggi nella coda in modo che il codice di più produttori in parallelo possa determinare l'ordine finale dei messaggi nella coda.
Le code FIFO di HAQM SQS supportano più consumer?
Le code FIFO di HAQM SQS non distribuiscono messaggi da uno stesso gruppo di messaggi a più di un consumer alla volta. Tuttavia, se la coda FIFO dispone di più gruppi di messaggi, è possibile sfruttare i consumer in parallelo, consentendo ad HAQM SQS di distribuire messaggi da gruppi di messaggi diversi a consumer differenti.
Qual è la quota di velocità di trasmissione effettiva per una coda FIFO di HAQM SQS?
Per impostazione predefinita, le code FIFO supportano fino a 3.000 messaggi al secondo con la divisione in batch o fino a 300 messaggi al secondo (300 operazioni di invio, ricezione o eliminazione al secondo) senza batch. Se si necessita di una velocità di trasmissione effettiva più elevata, è possibile abilitare la modalità di velocità di trasmissione effettiva elevata per FIFO nella console HAQM SQS, che supporterà fino a 70.000 messaggi al secondo senza batch e anche di più con i batch. Per un'analisi dettagliata delle quote della modalità FIFO di velocità di trasmissione effettiva elevata per regione, consultare la documentazione AWS.
Sono previste limitazioni specifiche per gli attributi delle code FIFO?
Il nome di una coda FIFO deve terminare con il suffisso .fifo. Il suffisso viene conteggiato nei limiti del nome della coda di 80 caratteri. Per determinare se una coda è FIFO, verifica che il suo nome termini con tale suffisso.
Sicurezza e affidabilità
Apri tuttoQual è il livello di affidabilità dell’archiviazione di dati in HAQM SQS?
HAQM SQS memorizza tutte le code di messaggi e i messaggi all'interno di una singola regione AWS ad elevata disponibilità, su diverse zone di disponibilità; in questo modo il messaggio può essere reperibile anche se in un computer, una rete o una zona di disponibilità dovessero verificarsi guasti. Per ulteriori informazioni, consulta la pagina Regioni e zone di disponibilità nella Guida per l'utente di HAQM Relational Database Service.
In che modo è possibile proteggere i messaggi nelle code?
Sono disponibili meccanismi di autenticazione per accertare che i messaggi memorizzati nelle code di HAQM SQS siano protetti da accessi non autorizzati. Puoi controllare chi può inviare messaggi a una coda e chi può riceverne da una coda. Per maggiore sicurezza, puoi creare un'applicazione in modo che crittografi i messaggi prima che vengono messi nella coda.
HAQM SQS dispone di un proprio sistema di autorizzazioni basato sulle risorse, che impiega policy scritte con la stessa sintassi delle policy di AWS Identity and Access Management (IAM) come in IAM, ad esempio, è possibile usare variabili. Per maggiori informazioni, consulta la sezione Esempi di policy di HAQM SQS nella Guida per gli sviluppatori di HAQM SQS.
HAQM SQS supporta i protocolli HTTP over SSL (HTTPS) e Transport Layer Security (TLS). La maggior parte dei client sono in grado di utilizzare le versioni più recenti di TLS senza modificare il codice o la configurazione. HAQM SQS supporta le versioni 1.0, 1.1 e 1.2 del protocollo Transport Layer Security (TLS) in tutte le regioni.
Perché esistono le operazioni separate ReceiveMessage e DeleteMessage?
Quando HAQM SQS ti restituisce un messaggio, quel messaggio resta nella coda, che tu l'abbia ricevuto o no. Sei tu a decidere se vuoi eliminare il messaggio e la richiesta di eliminazione conferma che hai terminato l'elaborazione del messaggio.
Se non elimini il messaggio, HAQM SQS lo consegnerà di nuovo nel momento in cui giunge un'altra richiesta di ricezione. Per ulteriori informazioni, consulta la sezione Timeout della visibilità nella Guida per gli sviluppatori di HAQM SQS.
Un messaggio eliminato può essere ricevuto di nuovo?
No. Le code FIFO non introducono mai messaggi duplicati.
Per le code standard, in casi particolari, è possibile che un messaggio precedentemente eliminato venga ricevuto una seconda volta.
Cosa succede se viene inoltrata una richiesta DeleteMessage su un messaggio già eliminato?
Quando inoltri una richiesta DeleteMessage su un messaggio già eliminato, HAQM SQS restituisce una risposta di operazione riuscita.
Crittografia lato server (SSE)
Apri tuttoQuali sono i vantaggi della SSE per HAQM SQS?
La SSE consente di trasmettere dati sensibili in code crittografate. La SSE protegge il contenuto dei messaggi in code HAQM SQS utilizzando chiavi gestite in Sistema AWS di gestione delle chiavi (AWS KMS). SSE crittografa i messaggi non appena HAQM SQS li riceve. I messaggi sono archiviati in forma crittografata e HAQM SQS li decrittografa solo quando vengono inviati a un consumer autorizzato.
Per ulteriori informazioni, consulta la sezione Protezione di dati con crittografia lato server (SSE) e AWS KMS nella guida per sviluppatori di HAQM SQS.
È possibile utilizzare SNS, Cloud Watch Events ed S3 Events con code crittografate?
Sì. Per farlo è necessario abilitare la compatibilità tra i servizi AWS (ad esempio HAQM CloudWatch Events, HAQM S3 e HAQM SNS) e le code con SSE. Per informazioni dettagliate, consulta la sezione Compatibilità della Guida per gli sviluppatori di SQS.
In quali regioni sono disponibili le code con SSE?
La crittografia sul lato server o SSE (Server-Side Encryption) per HAQM SQS è disponibile in tutte le regioni AWS in cui il servizio è disponibile. Per dettagli sulla disponibilità di HAQM SQS, consulta questa pagina.
Come si abilita SSE per una coda HAQM SQS nuova o esistente?
Per abilitare SSE per una coda nuova o esistente con l'API HAQM SQS, bisogna specificare l'ID della chiave master del cliente (CMK): l'alias, l'ARN dell'alias, l'ID della chiave o l'ARN della chiave di una CMK gestita da AWS o di una CMK personalizzata impostando l'attributo KmsMasterKeyId dell'operazione CreateQueue o SetQueueAttributes.
Per istruzioni dettagliate, consulta Creazione di una coda HAQM SQS con la crittografia lato server e Configurazione della crittografia lato server (SSE) per una coda HAQM SQS esistente nella Guida per gli sviluppatori di HAQM SQS.
Quali tipi di code HAQM SQS possono usare SSE?
SSE è supportato sia dalle code standard sia dalle code FIFO.
Quali permessi servono per utilizzare SSE con HAQM SQS?
Prima di poter utilizzare SSE, occorre configurare le policy chiave AWS KMS per permettere la crittografia delle code e la crittografia e decrittografia dei messaggi.
Per abilitare SSE per una coda, si può utilizzare la chiave master del cliente (CMK) per HAQM SQS gestita da AWS o una CMK personalizzata. Per ulteriori informazioni, consulta la sezione Chiavi master del cliente nella Guida per gli sviluppatori di AWS KMS.
Per inviare messaggi a una coda crittografata, il produttore deve avere i permessi kms:GenerateDataKey e kms:Decrypt per la CMK.
Per ricevere messaggi da una coda crittografata, il consumer deve avere il permesso kms:Decrypt per qualsiasi CMK utilizzata per crittografare il messaggio nella coda specificata. Se la coda agisce come una coda DLQ, il consumer deve avere l'autorizzazione kms:Decrypt per qualsiasi CMK utilizzata per crittografare il messaggio nella coda specificata.
Per ulteriori informazioni, consulta la sezione Quali permessi occorrono per utilizzare SSE? nella Guida per gli sviluppatori di HAQM SQS.
Ci sono costi relativi all'utilizzo di SSE con HAQM SQS?
Non ci sono costi supplementari di HAQM SQS. Tuttavia ci sono costi associati alle chiamate da HAQM SQS ad AWS KMS. Per ulteriori informazioni, consulta la sezione relativa ai prezzi di AWS Key Management Service.
I costi di utilizzo di AWS KMS dipendono dal periodo di riutilizzo della chiave dati configurata per le tue code. Per ulteriori informazioni, consulta le sezione Come calcolare i costi di utilizzo del mio AWS KMS nella Guida per gli sviluppatori di HAQM SQS.
Che cosa crittografa SSE per HAQM SQS e in che modo?
SSE crittografa il corpo di un messaggio in una coda HAQM SQS.
SSE non crittografa gli elementi seguenti:
- Metadata della coda (nome e attributo della coda)
- Metadati del messaggio (ID messaggio, time stamp e attributo)
- Parametri della coda
HAQM SQS genera chiavi dati basate sulla chiave master del cliente (CMK) per HAQM SQS gestita da AWS o una CMK personalizzata per fornire una crittografia a busta e la decrittografia di messaggi per un periodo di tempo configurabile (da 1 minuto a 24 ore).
Per ulteriori informazioni, consulta la sezione Che cosa crittografa SSE per HAQM SQS? nella Guida per gli sviluppatori di HAQM SQS.
Quali algoritmi utilizza SSE per HAQM SQS per crittografare i messaggi?
SSE usa l'algoritmo AES-GCM 256.
SSE limita le transazioni al secondo (TPS) o il numero di code che possono essere create con HAQM SQS?
SSE non limita la velocità effettiva (TPS) di HAQM SQS. Il numero di code SSE che possono essere create è limitato dagli elementi seguenti:
- Il periodo di riutilizzo della chiave dati (da 1 minuto a 24 ore).
- La quota per account di AWS KMS (100 TPS per impostazione predefinita).
- Il numero di utenti o account IAM che accedono alle code.
- L'esistenza di un backlog di grandi dimensioni (un backlog importante richiede più chiamate AWS KMS).
Per esempio, supponiamo che:
- Hai impostato il periodo di riutilizzo della chiave dati a 5 minuti (300 secondi).
- Il tuo account KMS ha una quota predefinita di TPS AWS KMS di 100 TPS.
- Usi una coda HAQM SQS senza un backlog e con 1 utente IAM per le operazioni SendMessage o ReceiveMessage su tutte le code.
In questo caso puoi calcolare il numero massimo teorico di code HAQM SQS con SSE come segue:
300 secondi × 100 TPS/1 utente IAM = 30.000 code
Come si stimano i costi di utilizzo di AWS KMS?
Per prevedere i costi e capire meglio la tua fattura AWS, è necessario sapere con quale frequenza HAQM SQS utilizza la tua CMK.
Nota: sebbene la formula seguente possa fornire un'idea molto precisa dei costi previsti, i costi effettivi possono essere più elevati a causa della distribuzione che caratterizza HAQM SQS.
Per calcolare il numero di richieste API per coda (R), usa la formula seguente:
R = B / D * (2 * P + C)
B è il periodo di fatturazione (in secondi)
D è il periodo di riutilizzo della chiave di dati (in secondi).
P è il numero di principali generatori che inviano alla coda HAQM SQS.
C è il numero di principali utilizzatori che ricevono dalla coda HAQM SQS.
Importante: in generale, i principali generatori costano il doppio dei principali utilizzatori. Per ulteriori informazioni, consulta la sezione Come funziona il periodo di riutilizzo delle chiavi di dati? nella Guida per gli sviluppatori di HAQM SQS.
Se il produttore e l'utilizzatore hanno utenti IAM diversi, il costo aumenta.
Per ulteriori informazioni, consulta le sezione Come calcolare i costi di utilizzo del mio AWS KMS nella guida per sviluppatori di HAQM SQS.
Conformità
Apri tuttoHAQM SQS è certificato PCI DSS?
Sì. HAQM SQS è certificato PCI DSS livello 1. Per ulteriori informazioni, consulta la pagina Conformità PCI.
HAQM SQS è conforme agli standard HIPAA?
Sì, AWS ha esteso il proprio programma di conformità agli standard HIPAA in modo da includere HAQM SQS. Se disponi di un contratto di società in affari o BAA (Business Associate Agreement) con AWS, puoi utilizzare HAQM SQS per creare applicazioni conformi allo standard HIPAA, memorizzare messaggi in transito e trasmettere messaggi, inclusi messaggi contenenti informazioni sanitarie protette.
Se disponi di un BAA con AWS, puoi iniziare subito a utilizzare HAQM SQS. In caso contrario, oppure se hai domande sull'utilizzo di AWS con applicazioni conformi agli standard HIPAA, contattaci.
Nota: se preferisci non trasferire informazioni sanitarie protette tramite HAQM SQS (oppure se le dimensioni dei messaggi sono superiori a 256 KB), puoi inviare payload di messaggi HAQM SQS tramite HAQM S3 utilizzando la libreria client ampia di HAQM SQS per Java (HAQM S3 è un servizio conforme agli standard HIPAA, fatta eccezione per HAQM S3 Transfer Acceleration). Per maggiori informazioni, consulta la sezione Utilizzo della libreria client ampia di HAQM SQS per Java nella Guida per gli sviluppatori di HAQM SQS.
Limitazioni e restrizioni
Apri tuttoPer quanto tempo è possibile conservare i messaggi nelle code HAQM SQS?
Una retention dei messaggi maggiore offre più flessibilità permettendo intervalli più lunghi fra la produzione e il consumo dei messaggi.
Il periodo di retention dei messaggi di HAQM SQS può essere configurato tra 1 minuto e 14 giorni. L'impostazione di default è 4 giorni. Quando la quota di retention viene raggiunta, i messaggi vengono automaticamente eliminati.
Come si configura un periodo di conservazione dei messaggi maggiore in HAQM SQS?
Per modificare il periodo di retention dei messaggi, configura l'attributo MessageRetentionPeriod tramite la console o usando il metodo Distributiveness. Tramite questo attributo, puoi specificare il numero di secondi di retention di un messaggio in HAQM SQS.
Puoi usare l'attributo MessageRetentionPeriod per impostare il periodo di retention tra 60 secondi (1 minuto) e 1.209.600 secondi (14 giorni). Per ulteriori informazioni su come utilizzare questo attributo di messaggio, consulta la Documentazione di riferimento delle API di HAQM SQS.
Come si configurano le dimensioni massime dei messaggi per HAQM SQS?
Per configurare le dimensioni massime dei messaggi, usa la console o il metodo SetQueueAttributes per impostare l'attributo MaximumMessageSize. Questo attributo specifica il numero di byte che può contenere un messaggio HAQM SQS. Imposta questo attributo con un valore compreso tra 1.024 byte (1 KB) e 262.144 byte (256 KB). Per maggiori informazioni, consulta Utilizzo degli attributi di messaggi di HAQM SQS nella Guida per gli sviluppatori di HAQM SQS.
Per inviare messaggi che superano i 256 KB, usa la libreria client ampia di HAQM SQS per Java. Questa libreria permette di inviare messaggi HAQM SQS che contengono riferimenti a un payload di messaggio in HAQM S3, con dimensioni massime di 2 GB.
Quali tipi di dati possono essere inclusi in un messaggio?
I messaggi HAQM SQS possono contenere fino a 256 KB di dati di testo, incluso testo XML, JSON e testo non formattato. Sono accettati i seguenti caratteri Unicode:
#x9 | #xA | #xD | [#x20 – #xD7FF] | [#xE000 – #xFFFD] | [#x10000 – #x10FFFF]
Per ulteriori informazioni, consulta la specifica XML 1.0.
Quali sono le dimensioni massime possibili per le code di messaggi HAQM SQS?
Una singola coda di messaggi HAQM SQS può contenere un numero illimitato di messaggi. Tuttavia c'è una quota di 120.000 messaggi in volo per una coda standard e di 120.000 per una coda FIFO. I messaggi sono in fase di consegna dopo la ricezione di una coda da un componente di consumo, ma non sono ancora stati cancellati da essa.
Quante code di messaggi è possibile creare?
Puoi creare un numero illimitato di code di messaggi.
C'è un limite alla lunghezza del nome delle code di messaggi HAQM SQS?
I nomi di coda sono limitati a 80 caratteri.
Sono previste restrizioni sui nomi delle code di messaggi HAQM SQS?
I nomi possono contenere caratteri alfanumerici, trattini (-) e trattini bassi (_).
È possibile utilizzare più di una volta il nome di una coda di messaggi?
Il nome delle code di messaggi deve essere univoco all'interno dell'account AWS e della regione. Puoi usare nuovamente un nome se elimini la relativa coda di messaggi.
Condivisione di code
Apri tuttoCome si condivide una coda di messaggi?
È possibile associare un'istruzione di policy di accesso (e specificarne le autorizzazioni) con la coda di messaggi da condividere. HAQM SQS fornisce le API per creare e gestire le istruzioni di policy di accesso:
- AddPermission
- RemovePermission
- SetQueueAttributes
- GetQueueAttributes
Per ulteriori informazioni, consulta la Documentazione di riferimento delle API di HAQM SQS.
Chi paga l'accesso a una coda condivisa?
L'accesso a una coda condivisa viene addebitato al proprietario della coda.
In che modo si identifica l'utente AWS con cui condividere una coda di messaggi?
L'API HAQM SQS utilizza il numero di account AWS per identificare gli utenti AWS.
Quali informazioni è necessario fornire a un utente AWS per condividere con lui una coda di messaggi?
Per condividere una coda di messaggi, devi fornire all'utente AWS l'URL completo della coda da condividere. Le operazioni CreateQueue e ListQueues restituiscono questo URL nella risposta.
HAQM SQS supporta l'accesso anonimo?
Sì. Puoi configurare una policy di accesso che consente agli utenti anonimi di accedere a una coda di messaggi.
In quali casi è consigliato utilizzare l'API Permissions?
L'API Permissions fornisce un'interfaccia per la condivisione dell'accesso a una coda di messaggi per sviluppatori. Può tuttavia concedere privilegi di accesso condizionale o altri casi d'uso avanzati.
In quali casi è consigliato usare l'operazione SetQueueAttributes con gli oggetti JSON?
L'operazione SetQueueAttributes supporta la sintassi di policy di accesso completa. Ad esempio, puoi usare la sintassi di policy per limitare l'accesso a una coda di messaggi per indirizzo IP e ora del giorno. Per maggiori informazioni, consulta la sezione Esempi di policy di HAQM SQS nella Guida per gli sviluppatori di HAQM SQS.
Accesso e regioni del servizio
Apri tuttoIn quali regioni è disponibile HAQM SQS?
Per informazioni sulla disponibilità dei servizi, consulta la tabella delle regioni per l'infrastruttura globale AWS.
È possibile condividere messaggi tra code in regioni diverse?
No. Ogni coda di messaggi HAQM SQS è indipendente in ciascuna regione.
C'è una differenza di prezzo fra le regioni?
I prezzi di HAQM SQS sono gli stessi in tutte le regioni, tranne nella regione Cina (Pechino). Per maggiori informazioni, visita prezzi HAQM SQS.
Qual è la struttura dei prezzi fra più regioni?
Puoi trasferire dati tra HAQM SQS e HAQM EC2 o AWS Lambda all'interno di una stessa regione senza alcun costo.
Quando trasferisci dati tra HAQM SQS e HAQM EC2 o AWS Lambda in regioni diverse, viene addebitata la tariffa standard per il trasferimento di dati. Per maggiori informazioni, visita prezzi HAQM SQS.
Code di messaggi non recapitabili
Apri tuttoChe cosa sono le code DLQ?
Una coda di messaggi non recapitabili è una coda di HAQM SQS alla quale una coda fonte può inviare messaggi se la coda fonte dell'applicazione del cliente non è in grado di elaborare i messaggi con successo. Le code di messaggi non recapitabili ti aiutano a gestire la mancata elaborazione dei messaggi e il ciclo di vita dei messaggi non elaborati. Puoi configurare un allarme per ogni messaggio inviato a una coda di messaggi non recapitabili, verificare se nei registri sono presenti eccezioni che potrebbero avere causato l'invio alla coda, e analizzare i contenuti dei messaggi per rilevare problemi di elaborazione da parte dell'applicazione del cliente. Dopo avere ripristinato l'applicazione del tuo cliente, puoi reindirizzare i messaggi dalla coda di messaggi non recapitabili alla coda fonte.
Come funzionano le code DLQ?
Quando crei la tua coda fonte, HAQM SQS ti permette di specificare una coda di messaggi non recapitabili (DLQ) e in quale condizione SQS deve spostare i messaggi nella DLQ. La condizione corrisponde al numero di volte che un cliente può ricevere un messaggio dalla coda, definito con maxReceiveCount. Questa configurazione di una coda di messaggi non recapitabili con una coda fonte e maxReceiveCount è nota come policy di reindirizzamento. HAQM SQS è impostato per spostare il messaggio a una coda di messaggi non recapitabili (con il suo ID messaggio originale) quando il valore ReceiveCount di un messaggio supera il valore maxReceiveCount per una coda. Per esempio, se la coda fonte ha come policy di reindirizzamento un valore di maxReceiveCount impostato su cinque, e il cliente della coda fonte riceve un messaggio per sei volte senza elaborarlo con successo, SQS sposta il messaggio nella coda di messaggi non recapitabili.
La policy di reindirizzamento gestisce la prima metà del ciclo di vita dei messaggi non elaborati spostandoli da una coda fonte a una coda di messaggi non recapitabili. Il reindirizzamento alla coda di messaggi non recapitabili completa in modo efficace il ciclo riportando quei messaggi alla loro coda fonte, come mostrato di seguito.
Come funziona il reindirizzamento dalla coda DLQ alla coda di origine?
Innanzitutto, ti consente di ispezionare a campione i messaggi presenti nella coda di messaggi non recapitabili, mostrando gli attributi dei messaggi e i relativi metadati. In seguito, dopo avere ispezionato i messaggi, puoi riportarli nella/e loro coda/e fonte. Inoltre puoi scegliere la velocità di reindirizzamento per configurare il ritmo con cui HAQM SQS sposterà i messaggi dalla coda di messaggi non recapitabili alla coda fonte.
Posso utilizzare una coda DLQ con code FIFO?
Sì. Tuttavia, una coda DLQ FIFO va utilizzata con una coda FIFO. (Analogamente, una coda DLQ standard può essere utilizzata solo con una coda standard.)