Een bedrijf gebruikt AWS CodePipeline met AWS CodeDeploy om een applicatie te implementeren naar Amazon ECS met behulp van blue/green deployments. Het team moet testscripts uitvoeren op de groene omgeving (tests zijn binnen 5 minuten klaar) voordat het verkeer wordt omgeschakeld. Als tests mislukken, moet de deployment worden teruggedraaid. Welke aanpak voldoet aan deze vereiste?
Kies een antwoord
Tik op een optie om je antwoord te controleren.
Correct antwoord: Voeg hooks toe aan het CodeDeploy AppSpec-bestand en gebruik de AfterAllowTestTraffic lifecycle-gebeurtenis om een AWS Lambda-functie aan te roepen die de testscripts uitvoert; als de Lambda met een fout afsluit, zal CodeDeploy terugdraaien..
Waarom dit het antwoord is
De AfterAllowTestTraffic lifecycle-gebeurtenis is specifiek ontworpen voor het uitvoeren van tests op de nieuw geïmplementeerde (groene) omgeving voordat live verkeer ernaartoe wordt omgeschakeld. Door een Lambda-functie aan te roepen via deze hook, kunnen de testscripts worden uitgevoerd. Als de Lambda-functie met een foutcode eindigt (wat duidt op mislukte tests), zal CodeDeploy automatisch de deployment terugdraaien naar de vorige stabiele versie, wat voldoet aan de vereiste. De andere opties zijn minder geschikt: Het toevoegen van een CodeBuild- of Lambda-stage tussen source en deploy in CodePipeline voert tests uit voordat de deployment daadwerkelijk plaatsvindt op de groene omgeving, wat niet de bedoeling is. Bovendien vereist het handmatig aanroepen van aws deploy stop-deployment extra logica die niet inherent is aan de pipeline-flow voor een rollback. De AfterAllowTraffic lifecycle-gebeurtenis vindt plaats nadat het verkeer al is omgeschakeld naar de nieuwe versie, wat te laat is voor het uitvoeren van pre-switch tests.
Slaag voor je examen — zonder eindeloos zoeken naar antwoorden
Krijg elke geverifieerde vraag en uitleg voor dit examen op één plek, en bespaar uren voorbereiding. Meer dan 1.000 certificeringen · Meer dan 20 talen · gratis om te beginnen.
Slaag sneller voor je examen → Geen kaart nodig