Come posso risolvere l'errore "Codice di stato: 400; codice di errore: xxx" quando utilizzo CloudFormation per ElastiCache?

Ultimo aggiornamento: 20-06-2022

Quando si richiama lo stack AWS CloudFormation o si utilizza la chiamata API AWS per Amazon ElastiCache, la richiesta non riesce e viene visualizzato il seguente errore:

"Codice di stato: 400; codice di errore: xxx"

Come posso risolvere questo errore?

Breve descrizione

Quando si avvia una richiesta API AWS direttamente o utilizzando uno stack CloudFormation, AWS esegue i controlli della sintassi iniziali. Questi controlli verificano che la richiesta sia completa e disponga di tutti i parametri obbligatori. Di seguito sono riportati i motivi comuni per cui si verifica l'errore 400 quando si invia una richiesta API per Amazon ElastiCache:

  • La tua richiesta è stata rifiutata a causa della limitazione (della larghezza di banda della rete) impostata per le richieste API.
  • AWS non dispone di una capacità disponibile sufficiente per completare la tua richiesta.
  • Il nodo di cache non è supportato nella Regione o nella zona di disponibilità specificate nella richiesta.
  • Hai utilizzato una combinazione di parametri non valida.
  • Per il parametro di input hai utilizzato un valore non valido o fuori intervallo.
  • All'API manca un parametro o un'azione che sono richiesti.
  • Stai cercando di rimuovere una risorsa attualmente utilizzata da un'altra risorsa ElastiCache o da un altro servizio AWS.

Risoluzione

Identifica l'errore specifico di ElastiCache Invoke API che ti è stato segnalato. Quindi, segui i passaggi per la risoluzione dei problemi elencati per tale errore.

Nota: per un elenco dei possibili errori con le relative descrizioni, consulta Errori comuni nella Guida di riferimento a ElastiCache Invoke API.

Codice di errore: Throttling

Errore: "Frequenza superata (servizio: AmazonElastiCache; codice di stato: 400; codice di errore: Throttling; ID richiesta: xxx)"

Questo errore indica che la tua richiesta è stata rifiutata a causa della limitazione (della larghezza di banda della rete) impostata per le richieste API. Questi limiti per le chiamate API a livello di account non sono specifici per nessun servizio.

Nota: non è possibile aumentare o modificare i limiti per una particolare chiamata. AWS si assicura che le chiamate API non superino il tasso massimo consentito per le richieste API. Questo include le chiamate API che provengono da un'applicazione, o che sono una chiamata a un'interfaccia a riga di comando o alla Console di gestione AWS.

Evita questo errore utilizzando i seguenti metodi:

  • Riprova la chiamata con backoff e jitter esponenziali.
  • Distribuisci le tue chiamate API in modo uniforme nel corso del tempo, invece di effettuare varie chiamate API in un breve lasso di tempo.

Codice di errore: InsufficientCacheClusterCapacity

Errore: "La cache.xxx (VPC) non è attualmente supportata nella zona di disponibilità xxx. Riprova a effettuare il lancio senza zona di disponibilità o destinazione: xxx. (Servizio: AmazonElastiCache; codice di stato: 400; codice di errore: InsufficientCacheClusterCapacity; ID richiesta: xxx)".

Questo errore indica che attualmente AWS non dispone di capacità on demand a sufficienza per completare la richiesta. Per ulteriori informazioni, consulta Messaggi di errore: InsufficidentCacheClusterCapacity.

Se ricevi questo errore, procedi come segue:

  1. Attendi qualche minuto e poi invia nuovamente la tua richiesta. La capacità cambia frequentemente.
  2. Usa un altro tipo di nodo di cache e invia nuovamente la tua richiesta.
  3. Usa un'altra sottorete e un'altra zona di disponibilità, quindi invia nuovamente la tua richiesta.

Codice di errore: SubnetInUse

Errore: "L'ID sottorete subnet-xxx è in uso (Servizio: AmazonElastiCache; codice di stato: 400; codice di errore: SubnetInUse; ID richiesta: xxx)".

Questo errore si verifica se si tenta di rimuovere una sottorete da un gruppo di sottoreti Elasticache a cui sono attualmente associate istanze. È necessario rimuovere tutte le risorse correlate dalla sottorete e quindi inviare nuovamente la richiesta. Per ulteriori informazioni, consulta DeleteCacheSubnetGroup.

Codice di errore: InvalidParameterValue

Questo errore indica che il valore di un parametro non è valido, non è supportato o non può essere utilizzato nella richiesta. Controlla ogni parametro per la chiamata della tua richiesta. Ad esempio, se hai utilizzato un valore di parametro non supportato, potresti visualizzare uno dei seguenti messaggi di errore:

  • "È stato fornito un AuthToken non valido. (Servizio: AmazonElastiCache; codice di stato: 400; codice di errore: invalidParameterValue»; ID richiesta: xxx)".
    Questo errore indica che l'impostazione auth-token non soddisfa i vincoli quando si utilizza AUTH con ElastiCache per Redis. Per ulteriori informazioni, consulta Autenticazione degli utenti con il comando AUTH di Redis.
  • "La finestra dello snapshot e la finestra di manutenzione non devono sovrapporsi. (Servizio: AmazonElastiCache; codice di stato: 400; codice di errore: invalidParameterValue; ID richiesta: xxx)".
    Le finestre degli snapshot e le finestre di manutenzione non possono essere configurate contemporaneamente. Per evitare questo errore, imposta la finestra operativa su un altro periodo.
  • "Il numero di repliche per gruppo di nodi deve essere compreso tra 0 e 5. (Servizio: AmazonElastiCache; codice di stato: 400; codice di errore: invalidParameterValue; ID richiesta: xxx)".
    ElastiCache Redis supporta una replica primaria e da 0 a 5 repliche per partizione. Se si aggiungono più di 5 nodi di replica, viene visualizzato questo errore. Per ulteriori informazioni, consulta Informazioni sulle repliche di Redis.

Codice di errore: InvalidParameterCombination

Questo errore indica che la chiamata della tua richiesta presenta una combinazione errata di parametri o un parametro mancante. In questo caso, è possibile che venga visualizzato uno dei seguenti messaggi di errore:

  • "Impossibile trovare la versione 5.0.0 per redis (Servizio: AmazonElastiCache; codice di stato: 400; codice di errore: InvalidParameterCombination; ID richiesta: xxx)".
    Questo errore indica che la versione di Redis indicata nella chiamata della richiesta non è supportata. Per maggiori informazioni, consulta Versioni supportate di ElastiCache per Redis e Versioni supportate di ElastiCache per Memcached.
  • "Impossibile ripristinare redis dalla versione 6.0.5 alla 5.0.6. (Servizio: AmazonElastiCache; codice di stato: 400; codice di errore: InvalidParameterCombination; ID richiesta: xxx)".
    ElastiCache per Redis non supporta le versioni del motore Redis sottoposte a downgrade quando si utilizza un backup per creare un nuovo cluster Redis. Inoltre, ElastiCache per Redis non supporta il downgrade del motore Redis su un cluster Redis in esecuzione. Quando si crea un nuovo cluster Redis utilizzando un backup, la versione del motore Redis deve essere superiore o uguale alla versione del motore corrente.
  • "Quando si utilizza il failover automatico, devono essere presenti almeno 2 cluster di cache nel gruppo di replica. (Servizio: AmazonElastiCache; codice di stato: 400; codice di errore: InvalidParameterCombination; ID richiesta: xxx)".
    È possibile attivare l'opzione di failover automatico in un cluster Redis che dispone di almeno una replica di lettura. Verificare che il gruppo di replica di Redis abbia più di un nodo di replica e quindi inviare nuovamente la richiesta. Per ulteriori informazioni, consulta Ridurre al minimo i tempi di inattività in ElastiCache per Redis con Multi-AZ.