AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Come faccio a risolvere l'errore "Failed to receive X resource signal(s) within the specified duration" in AWS CloudFormation?
Ricevo il seguente errore: "Failed to receive X resource signal(s) within the specified duration" per le istanze Linux Amazon Elastic Compute Cloud (Amazon EC2) in AWS CloudFormation.
Breve descrizione
Questo errore si verifica quando CloudFormation non riceve segnali di esito positivo per risorse che hanno un attributo CreationPolicy con una specificazione ResourceSignal. L'errore potrebbe verificarsi per un'istanza Amazon EC2, un gruppo Auto Scaling o una AWS::CloudFormation::WaitCondition.
Nota: la seguente risoluzione si applica solo agli stack CloudFormation creati con istanze Linux. Per le istanze Windows, consulta How do I resolve the error "Failed to receive X resource signal(s) within the specified duration" for EC2 Windows instances in AWS CloudFormation?
Risoluzione
In base al caso d'uso, utilizza i seguenti passaggi per risolvere il problema.
Nota: per evitare il rollback dello stack, scegli Mantieni le risorse con il provisioning riuscito per le Opzioni di errore dello stack nella console CloudFormation. Questa opzione significa che non è previsto alcun rollback in caso di errore e l'istanza non verrà arrestata finché non elimini lo stack.
Lo script cfn-signal non è installato sull'istanza dello stack CloudFormation
Per verificare se lo script cfn-signal è installato sull'istanza configurata per inviare segnali allo stack, completa i seguenti passaggi:
- Utilizza la modalità SSH per connetterti all'istanza Linux.
- Utilizza uno dei seguenti script per verificare se lo script cfn-signal è installato.
Per verificare se lo script cfn-signal si trova nella tua directory, esegui questo comando:
Per verificare se il pacchetto di script di supporto di CloudFormation che contiene lo script cfn-signal è installato, esegui questo comando:$ sudo find / -name cfn-signal/opt/aws/bin/cfn-signal/opt/aws/apitools/cfn-init-1.4-30.amzn2/bin/cfn-sign
Importante: il comando precedente funziona solo sulle distribuzioni che utilizzano RPM Package Manager (RPM). Per ulteriori informazioni su RPM Package Manager, consulta Chaper 1. Introduction to RPM (Capitolo 1. Introduzione a RPM) sul sito web di Red Hat. Per impostazione predefinita, gli script di supporto di CloudFormation sono installati su Amazon Machine Image (AMI) Amazon Linux. Per installare gli script di supporto, consulta Riferimento agli script di supporto di CloudFormation.$ sudo rpm -q aws-cfn-bootstrapaws-cfn-bootstrap-1.4-30.amzn2.noarch
Sono presenti errori di sintassi o valori errati nel modello AWS CloudFormation
Per individuare errori e valori errati, completa i seguenti passaggi:
- In un editor di codice, apri il modello per il tuo stack. Quindi, trova la sezione della proprietà UserData.
- Verifica la presenza di errori di sintassi, spazi mancanti, errori di ortografia e altri errori di battitura.
- Verifica che i valori per le proprietà dello stack, della risorsa e della Regione AWS siano corretti.
Nota: controlla lo script di bootstrap incluso nella proprietà userData. Lo script chiama cfn-signal. Verifica la presenza di errori di sintassi o valori errati.
Se la segnalazione avviene all'interno dei comandi cfn-init, verifica la presenza di informazioni sul segnale nei log cfn-init. Per cercare errori nei log cloud-init o cfn-init, utilizza SSH per connetterti all'istanza. Quindi utilizza la parola chiave error o failure per cercare messaggi di errore dettagliati nei seguenti log:
/var/log/cloud-init-output.log /var/log/cloud-init.log /var/log/cfn-init.log /var/log/cfn-init-cmd.log /var/log/cfn-wire.log
Per analizzare tutte le occorrenze delle parole error o failure nei file /var/log/cfn o /var/log/cloud-init , esegui questo comando:
grep -ni 'error\|failure' $(sudo find /var/log -name cfn\* -or -name cloud-init\*)
Nota: il comando precedente restituisce il nome del file, il numero di riga e il messaggio di errore.
Il valore della proprietà timeout per l'attributo CreationPolicy è troppo basso
L'attributo CreationPolicy definisce il valore della proprietà timeout. Verifica che il valore sia sufficientemente alto per eseguire le attività prima che lo script cfn-signal invii segnali alle risorse di CloudFormation.
Per controllare il valore della proprietà timeout e confrontare i timestamp di segnalazione e di errore delle risorse, completa i seguenti passaggi:
- In un editor di codice, apri il modello CloudFormation per il tuo stack per trovare il valore della proprietà timeout.
**Nota:**Il valore della proprietà timeout è il tempo massimo in cui CloudFormation attende un segnale prima di restituire un errore. - Per avere una stima di quando è stato attivato lo script cfn-signal, usa SSH per connetterti all'istanza. Quindi esegui questo comando:
Il file di log mostra un timestamp quando alle risorse CloudFormation viene inviato il segnale ESITO POSITIVO.less /var/log/cfn-init.log - Apri la console CloudFormation.
- Scegli la vista Eventi.
- Scegli Motivo dello stato. Espandi la riga relativa all'evento con il motivo dello stato "Failed to receive X resource signal(s) within the specified duration." (Non è stato possibile ricevere X segnali di risorse entro la durata specificata.)
- Confronta il timestamp del segnale con quello dell'errore della risorsa.
Nota: per un corretto completamento, lo script deve inviare il segnale prima che l'istanza venga creata o prima di non riuscire a crearla.
Il segnale cfn non viene inviato dall'istanza
Verifica che il segnale ricevuto da CloudFormation sia provenuto dall'istanza. Controlla il log cfn wire disponibile in /var/log/cfn-wire.log. Se la risposta non è 200, potrebbe trattarsi di un problema di connettività tra l'istanza e l'endpoint di CloudFormation.
Quando invii segnali da una posizione che non corrisponde all'istanza, utilizza l'API SignalResource. Ad esempio, puoi utilizzare una funzione AWS Lambda per chiamare l'API SignalResource e poi inviare il segnale allo stack. Se ricevi un errore, utilizza CloudWatch Logs per controllare i log Lambda e capire perché il segnale non è stato inviato allo stack.
- Argomenti
- Management & Governance
- Lingua
- Italiano
