Un ingegnere DevOps ha distribuito un template CloudFormation che avvia una web app (ALB, target group, launch template che usa Amazon Linux 2 AMI, Auto Scaling group, security group e un DB RDS MySQL). I user data del launch template eseguono uno script per installare e avviare l'app. Dopo aver aggiornato i user data a una nuova versione dell'app e aver ridistribuito tramite la pipeline CI/CD, i controlli di integrità dell'ALB falliscono e tutti i target risultano non integri. Lo stack CloudFormation mostra UPDATE_COMPLETE, ma un log dell'istanza EC2 mostra che Apache non è riuscito ad avviarsi a causa di un errore di configurazione. Come può l'ingegnere far fallire la distribuzione di CloudFormation se lo script dei user data non viene completato con successo?
Scegli una risposta
Tocca un'opzione per controllare la tua risposta.
Risposta corretta: Utilizzare il helper cfn-signal per inviare segnali di successo o fallimento a CloudFormation. Aggiungere la policy di aggiornamento WaitOnResourceSignals alla risorsa nel template CloudFormation e configurare un timeout appropriato per la policy di aggiornamento..
Perché questa è la risposta
L'opzione corretta è usare cfn-signal perché è il meccanismo nativo di CloudFormation per gestire il successo o il fallimento degli script di user data durante la creazione o l'aggiornamento delle risorse. Aggiungendo WaitOnResourceSignals alla policy di aggiornamento della risorsa (ad esempio, l'Auto Scaling Group), CloudFormation attenderà i segnali da cfn-signal prima di considerare l'aggiornamento completo. Se lo script fallisce o il timeout scade senza un segnale di successo, CloudFormation farà il rollback. Le altre opzioni sono meno efficaci o non risolvono direttamente il problema: Creare un allarme CloudWatch sulla metrica UnhealthyHostCount rileva il problema dopo che l'aggiornamento è già stato completato e le istanze sono state lanciate, non impedendo il completamento dello stack. Aggiungere un Auto Scaling lifecycle hook può essere utile per azioni personalizzate durante il ciclo di vita dell'istanza, ma non è il meccanismo primario per segnalare il successo o il fallimento degli script di user data a CloudFormation per il completamento dello stack. Trasmettere i log di cloud-init con l'agente CloudWatch e usare Lambda per chiamare SignalResource è una soluzione più complessa e indiretta rispetto all'uso diretto di cfn-signal, che è progettato per questo scopo.
Supera il tuo esame — senza l'infinita caccia alle risposte
Ottieni ogni domanda e spiegazione verificata per questo esame in un unico posto, e risparmia ore di preparazione. Oltre 1.000 certificazioni · Oltre 20 lingue · Inizia gratuitamente.
Supera il tuo esame più velocemente → Nessuna carta richiesta