Configurare le condizioni per una fase - AWS CodePipeline

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurare le condizioni per una fase

Quando si crea una condizione, si specifica cosa deve succedere se vengono rilevati i problemi per i quali le regole sono configurate. È possibile configurare una pipeline per verificare le condizioni della fase durante l'esecuzione, specificando i controlli per una fase e quindi specificando come la fase deve continuare quando vengono soddisfatte determinate condizioni. Le condizioni contengono una o più regole disponibili in un elenco di regole in CodePipeline. Se tutte le regole di una condizione hanno esito positivo, la condizione viene soddisfatta. È possibile configurare le condizioni in modo che, quando i criteri non vengono soddisfatti, venga attivato il risultato specificato.

Ogni condizione ha un set di regole che è un insieme ordinato di regole che vengono valutate insieme. Pertanto, se una regola non soddisfa la condizione, la condizione fallisce. È possibile sovrascrivere le condizioni delle regole in fase di esecuzione della pipeline.

Le condizioni vengono utilizzate per tipi specifici di espressioni e ognuna presenta opzioni specifiche per i risultati, disponibili come segue:

  • Ingresso: le condizioni per effettuare i controlli che, se soddisfatte, consentono l'accesso a una fase. Le regole vengono applicate con la seguente opzione di risultato: Fallito

  • In caso di errore: le condizioni per effettuare i controlli della fase in caso di errore. Le regole vengono attivate con la seguente opzione di risultato: Rollback

  • In caso di successo: le condizioni per effettuare i controlli per la fase in caso di esito positivo. Le regole si basano sulle seguenti opzioni di risultato: Rollback o Fail

Le condizioni sono supportate da una serie di regole per ogni tipo di condizione.

Per ogni tipo di condizione, esistono azioni specifiche impostate dalla condizione. L'azione è il risultato del controllo delle condizioni riuscito o fallito. Ad esempio, la condizione di ingresso (condizione di ingresso) genera un allarme (regola), quindi il controllo ha esito positivo e il risultato (azione) è che l'ingresso allo stage è bloccato.

È inoltre possibile utilizzare la AWS CodePipeline console o AWS CLI ripristinare manualmente o riprovare una o più azioni in una fase. Per informazioni, consulta Configurare le condizioni per una fase.

Casi d'uso per le condizioni dello stage

Le condizioni di fase hanno diversi casi d'uso per impostare la sicurezza di rilascio e modifica nelle tubazioni. Di seguito sono riportati esempi di casi d'uso per le condizioni dello stadio.

  • Utilizzate una condizione di ingresso per definire una condizione che verifichi lo stato di CloudWatch allarme, che quindi bloccherà una modifica se l'ambiente di produzione non è in uno stato integro.

  • Utilizzate una condizione di ingresso con un tempo di attesa di 60 per definire una condizione da valutare quando tutte le azioni di una fase sono state completate con successo, quindi ripristinate le modifiche se un CloudWatch allarme entra in ALARM stato entro 60 minuti.

  • Utilizzate una condizione On Success per definire una condizione in modo che, una volta completata correttamente la fase, la regola verifichi se l'ora corrente è presente nella finestra di distribuzione e quindi venga distribuita se la regola ha esito positivo.

Considerazioni sulle condizioni dello stage

Le considerazioni relative alle condizioni dello stadio sono le seguenti:

  • Per la LambdaInvoke regola, devi prima configurare la funzione Lambda da utilizzare nella regola. Tieni ARN pronta la funzione Lambda da fornire quando configuri la regola.

  • Per la CloudWatchAlarm regola, devi prima configurare l'evento CloudWatch Events da utilizzare nella regola. ARNPrepara l'evento da fornire quando configuri la regola.

  • Quando si configura una condizione con un risultato di rollback, lo stage può tornare a un'esecuzione precedente solo se disponibile nella versione corrente della struttura della pipeline.

  • Quando si configura una condizione con un risultato di rollback, non è possibile ripristinare un ID di esecuzione di destinazione che sia un tipo di esecuzione di rollback.

  • È possibile sovrascrivere una condizione di fase quando si avvia l'esecuzione di una pipeline. Per una condizione di fase in cui è attiva un'override, l'esecuzione verrà eseguita come descritto nella tabella seguente.

    Type Risultato configurato in caso di guasto della condizione Stato dello stage Ignora il comportamento
    Voce Fail In corso La fase procede.

    OnFailure

    Rollback Non riuscito La fase è fallita.
    OnSuccess Rollback Riuscito La fase procede.

    OnSuccess

    Fail Non riuscito La scena procede.

Creazione delle condizioni di ingresso

È possibile configurare le condizioni di ingresso per uno stage utilizzando la console oCLI. Configurerai le regole e i risultati corrispondenti per ogni condizione. Per ottenere un risultato di rollback, la pipeline può tornare a un'esecuzione precedente solo se l'esecuzione precedente è stata avviata nella versione corrente della struttura della pipeline.

I passaggi forniscono un esempio di condizione di ingresso che utilizza una regola di monitoraggio.

Per ulteriori informazioni, consultate Condition e RuleExecutionnella CodePipeline APIGuida. RuleTypeId

Creazione di condizioni di ingresso: esempio di CloudWatchAlarm regola (Console)

È possibile configurare le condizioni di ingresso per una fase, insieme alle regole e ai risultati che si desidera che la fase esegua quando le condizioni sono soddisfatte.

Configurare una condizione di ingresso (console)
  1. Completa tutti i prerequisiti, ad esempio la creazione della risorsa e ARN per una regola in base alla quale viene fornita una risorsa, ad esempio la AWS CloudWatchAlarm.

  2. Accedere AWS Management Console e aprire la CodePipeline console all'indirizzo http://console.aws.amazon.com/codesuite/codepipeline/home.

    Account AWS Vengono visualizzati i nomi e lo stato di tutte le pipeline associate al tuo.

  3. In Name (Nome), scegliere il nome della pipeline da modificare.

  4. Nella pagina dei dettagli della pipeline, scegliere Edit (Modifica).

  5. Nella pagina Modifica, per l'azione che desideri modificare, scegli Modifica fase.

  6. Scegli Aggiungi condizione di ingresso. Viene visualizzata la scheda Prima della fase di accesso alla fase, con l'opzione Fail disponibile per questa condizione.

  7. Scegli Aggiungi regola, quindi completa quanto segue.

    1. In Nome regola, inserisci un nome per la regola. In questo esempio, inserisci MyAlarmRule.

    2. In Rule provider, scegli il provider di regole preconfigurato da aggiungere alla tua condizione. Per questo esempio AWS CloudWatchAlarm, scegli e completa i passaggi seguenti.

    3. In Regione, scegli la regione per la tua condizione o lascia quella predefinita.

    4. In Nome allarme, scegli la CloudWatch risorsa da utilizzare per la regola. Devi aver già creato la risorsa nel tuo account.

    5. (Facoltativo) In Tempo di attesa, inserisci il tempo CodePipeline di attesa se l'allarme è attivo quando ALARM viene valutato per la prima volta. Se lo stato dell'allarme è OK quando la regola viene verificata per la prima volta, la regola avrà effetto immediato.

    6. (Facoltativo) Inserisci eventuali stati di allarme specifici da monitorare e inserisci il ruolo, ARN se appropriato.

    7. Quando hai finito di modificare lo stage, scegli Fine. Nella pagina di modifica della pipeline, scegliete Salva.

  8. Dopo l'esecuzione, visualizza il risultato.

Creazione di condizioni di ingresso (CLI)

AWS CLI Per configurare una condizione di ingresso, utilizzate i comandi per creare o aggiornare una pipeline come descritto in Crea una pipeline, fasi e azioni eModificare una tubazione in CodePipeline.

Configura la condizione e la regola o le regole () CLI
  • Apri un terminale (Linux, macOS o Unix) o il prompt dei comandi (Windows) e usalo AWS CLI per eseguire il update-pipeline comando, specificando la condizione di errore nella struttura della pipeline. L'esempio seguente configura una condizione di ingresso per uno stage denominato: Deploy

    { "name": "Deploy", "actions": [ { "name": "Deploy", "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "S3", "version": "1" }, "runOrder": 1, "configuration": { "BucketName": "MyBucket", "Extract": "false", "ObjectKey": "object.xml" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1", "namespace": "DeployVariables" } ], "beforeEntry": { "conditions": [ { "result": "FAIL", "rules": [ { "name": "MyAlarmRule", "ruleTypeId": { "category": "Rule", "owner": "AWS", "provider": "CloudWatchAlarm", "version": "1" }, "configuration": { "AlarmName": "CWAlarm", "WaitTime": "1" }, "inputArtifacts": [], "region": "us-east-1" } ] } ] } }

    Per ulteriori informazioni sulla configurazione delle condizioni di successo per lo stage rollback, consulta SuccessConditionsla sezione Reference. CodePipeline API

Creazione di condizioni di ingresso () CFN

Da utilizzare AWS CloudFormation per configurare una condizione di ingresso, utilizzate il beforeEntry parametro. All'ingresso, lo stage eseguirà la regola ed eseguirà il risultato.

beforeEntry: Result: FAIL
  • Aggiorna il modello come mostrato nel frammento seguente. L'esempio seguente configura una condizione di ingresso con una regola denominata: MyMonitorRule

    name: Deploy actions: - name: Deploy actionTypeId: category: Deploy owner: AWS provider: S3 version: '1' runOrder: 1 configuration: BucketName: MyBucket Extract: 'false' ObjectKey: object.xml outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1 namespace: DeployVariables beforeEntry: conditions: - result: FAIL rules: - name: MyMonitorRule ruleTypeId: category: Rule owner: AWS provider: CloudWatchAlarm version: '1' configuration: AlarmName: CWAlarm WaitTime: '1' inputArtifacts: [] region: us-east-1

    Per ulteriori informazioni sulla configurazione delle condizioni di errore, vedere la sezione successiva della OnFailureGuida StageDeclaration per l'AWS CloudFormation utente.

Creazione delle condizioni On Failure

È possibile configurare le condizioni On Failure per una fase utilizzando la console oCLI. Configurerai le regole e i risultati corrispondenti per ogni condizione. Per ottenere un risultato di rollback, la pipeline può tornare a un'esecuzione precedente solo se l'esecuzione precedente è stata avviata nella versione corrente della struttura della pipeline.

Creazione delle condizioni On Failure (Console)

È possibile configurare le condizioni On Failure per una fase, insieme alle regole e ai risultati che si desidera che la fase esegua quando le condizioni sono soddisfatte.

Configurare una condizione On Failure (console)
  1. Completa tutti i prerequisiti, ad esempio la creazione della risorsa e ARN per una regola in cui viene fornita una risorsa, ad esempio la LambdaInvokeregola.

  2. Accedi AWS Management Console e apri la CodePipeline console all'indirizzo http://console.aws.amazon.com/codesuite/codepipeline/home.

    Account AWS Vengono visualizzati i nomi e lo stato di tutte le pipeline associate al tuo.

  3. In Name (Nome), scegliere il nome della pipeline da modificare.

  4. Nella pagina dei dettagli della pipeline, scegliere Edit (Modifica).

  5. Nella pagina Modifica, per l'azione che desideri modificare, scegli Modifica fase.

  6. Scegli Aggiungi condizione di errore. Viene visualizzata la scheda Condizione di errore con l'opzione Rollback disponibile per questa condizione.

  7. Scegli Aggiungi regola, quindi completa quanto segue.

    1. In Nome regola, inserisci un nome per la regola. In questo esempio, inserisci MyLambdaRule.

    2. In Rule provider, scegli il provider di regole preconfigurato da aggiungere alla tua condizione. Per questo esempio AWS LambdaInvoke, scegli e completa i passaggi seguenti.

    3. In Regione, scegli la regione per la tua condizione o lascia quella predefinita.

    4. In Inserisci artefatti, scegli l'artefatto di origine.

    5. In Nome funzione, scegli la risorsa Lambda da utilizzare per la regola. Devi aver già creato la risorsa nel tuo account.

    6. (Facoltativo) In Parametri utente, inserite tutte le coppie che rappresentano i parametri per una configurazione aggiuntiva.

    7. (Facoltativo) In Role Arn, immettete il ruolo, ARN se configurato.

    8. (Facoltativo) In Timeout in minuti, inserisci il tempo in minuti che la regola deve attendere prima del timeout.

    9. Quando avete finito di modificare lo stage, scegliete Fine. Nella pagina di modifica della pipeline, scegliete Salva.

Creazione delle condizioni On Failure () CLI

AWS CLI Per configurare una condizione On Failure, utilizzate i comandi per creare o aggiornare una pipeline come descritto in Crea una pipeline, fasi e azioni eModificare una tubazione in CodePipeline.

Configura la condizione e la regola o le regole () CLI
  • Apri un terminale (Linux, macOS o Unix) o il prompt dei comandi (Windows) e usalo AWS CLI per eseguire il update-pipeline comando, specificando la condizione di errore nella struttura della pipeline. L'esempio seguente configura una condizione On Failure per una fase denominata: Deploy

    { "name": "Deploy", "actions": [ { "name": "Deploy", "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "S3", "version": "1" }, "runOrder": 1, "configuration": { "BucketName": "MyBucket", "Extract": "false", "ObjectKey": "object.xml" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1", "namespace": "DeployVariables" } ], "onFailure": { "conditions": [ { "result": "ROLLBACK", "rules": [ { "name": "MyLambdaRule", "ruleTypeId": { "category": "Rule", "owner": "AWS", "provider": "LambdaInvoke", "version": "1" }, "configuration": { "FunctionName": "my-function" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1" } ] } ] } }

    Per ulteriori informazioni sulla configurazione delle condizioni di errore, vedere FailureConditionsnella Guida di riferimento. CodePipeline API

Creazione delle condizioni On Failure () CFN

Da utilizzare AWS CloudFormation per configurare una condizione On Failure, utilizzate il OnFailure parametro. In caso di successo, lo stage eseguirà la regola ed eseguirà il risultato.

OnFailure: Result: ROLLBACK
  • Aggiorna il modello come mostrato nel frammento seguente. L'esempio seguente configura una OnFailure condizione con una regola denominata: MyMonitorRule

    name: Deploy actions: - name: Deploy actionTypeId: category: Deploy owner: AWS provider: S3 version: '1' runOrder: 1 configuration: BucketName: MyBucket Extract: 'false' ObjectKey: object.xml outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1 namespace: DeployVariables onFailure: conditions: - result: ROLLBACK rules: - name: MyMonitorRule ruleTypeId: category: Rule owner: AWS provider: CloudWatchAlarm version: '1' configuration: AlarmName: AlarmOnHelloWorldInvocation AlarmStates: ALARM WaitTime: '1' inputArtifacts: [] region: us-east-1

    Per ulteriori informazioni sulla configurazione delle condizioni di errore, vedere la sezione successiva della OnFailureGuida StageDeclaration per l'AWS CloudFormation utente.

Condizioni di creazione in caso di successo

Puoi configurare le condizioni On Success per una fase utilizzando la console oCLI. Configurerai le regole e i risultati corrispondenti per ogni condizione. Per ottenere un risultato di rollback, la pipeline può tornare a un'esecuzione precedente solo se l'esecuzione precedente è stata avviata nella versione corrente della struttura della pipeline.

I passaggi forniscono un esempio di condizione On Success che utilizza una regola della finestra di distribuzione.

Per ulteriori informazioni, vedere Condizione e RuleExecutionnella CodePipeline APIGuida. RuleTypeId

Condizioni di creazione in caso di successo (console)

È possibile configurare le condizioni On Success per una fase, insieme alle regole e ai risultati che si desidera che la fase esegua quando le condizioni sono soddisfatte.

Configurare una condizione On Success (console)
  1. Completa tutti i prerequisiti, ad esempio la creazione della risorsa e ARN per una regola in base alla quale viene fornita una risorsa, ad esempio la AWS LambdaRule.

  2. Accedere AWS Management Console e aprire la CodePipeline console all'indirizzo http://console.aws.amazon.com/codesuite/codepipeline/home.

    Account AWS Vengono visualizzati i nomi e lo stato di tutte le pipeline associate al tuo.

  3. In Name (Nome), scegliere il nome della pipeline da modificare.

  4. Nella pagina dei dettagli della pipeline, scegliere Edit (Modifica).

  5. Nella pagina Modifica, per l'azione che desideri modificare, scegli Modifica fase.

  6. Scegli Aggiungi condizione di successo. Viene visualizzata la scheda Condizione di successo sul palco. Scegli l'opzione Rollback o Fail mostrata tra i risultati disponibili per questo tipo di condizione.

  7. Scegli Aggiungi regola, quindi completa quanto segue.

    1. In Nome regola, inserisci un nome per la tua condizione. In questo esempio, inserisci MyDeploymentRule.

    2. In Rule provider, scegli la regola preconfigurata da aggiungere alla tua condizione. Per questo esempio AWS DeploymentWindow, scegli e completa i passaggi seguenti.

    3. In Regione, scegli la regione per la tua condizione o lascia quella predefinita.

    4. In Cron, inserisci l'espressione cron per la finestra di distribuzione. L'espressione cron definisce i giorni e gli orari in cui la distribuzione deve essere consentita. Per informazioni di riferimento sulle espressioni cron, vedi Uso delle espressioni cron e rate per pianificare le regole.

    5. (Facoltativo) In TimeZone, inserisci il fuso orario per la finestra di distribuzione.

  8. Dopo l'esecuzione, visualizza il risultato.

    Un esempio di condizione in CodePipeline.

Condizioni di creazione in caso di successo (CLI)

AWS CLI Per configurare una condizione On Success, utilizzate i comandi per creare o aggiornare una pipeline come descritto in Crea una pipeline, fasi e azioni eModificare una tubazione in CodePipeline.

Configura la condizione e la regola o le regole () CLI
  • Apri un terminale (Linux, macOS o Unix) o il prompt dei comandi (Windows) e usalo AWS CLI per eseguire il update-pipeline comando, specificando la condizione di errore nella struttura della pipeline. L'esempio seguente configura una condizione On Success per uno staged named, in cui viene Deploy denominata la regola: MyDeploymentRule

    { "name": "Deploy", "actions": [ { "name": "Deploy", "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "S3", "version": "1" }, "runOrder": 1, "configuration": { "BucketName": "MyBucket", "Extract": "false", "ObjectKey": "object.xml" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1", "namespace": "DeployVariables" } ], "onSuccess": { "conditions": [ { "result": "FAIL", "rules": [ { "name": "MyAlarmRule", "ruleTypeId": { "category": "Rule", "owner": "AWS", "provider": "CloudWatchAlarm", "version": "1" }, "configuration": { "AlarmName": "CWAlarm", "WaitTime": "1" }, "inputArtifacts": [], "region": "us-east-1" } ] } ] } }

    Per ulteriori informazioni sulla configurazione delle condizioni di successo, vedere SuccessConditionsnella Guida di riferimento. CodePipeline API

Crea una condizione On Success () CFN

Da utilizzare AWS CloudFormation per configurare una condizione On Success, utilizzate il OnSuccess parametro. In caso di successo, lo stage eseguirà la regola ed eseguirà il risultato.

OnSuccess: Result: ROLLBACK
  • Aggiorna il modello come mostrato nel frammento seguente. L'esempio seguente configura una OnSuccess condizione con una regola denominata: MyDeploymentWindowRule

    name: Deploy actions: - name: Deploy actionTypeId: category: Deploy owner: AWS provider: S3 version: '1' runOrder: 1 configuration: BucketName: MyBucket Extract: 'false' ObjectKey: object.xml outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1 namespace: DeployVariables onSuccess: conditions: - result: FAIL rules: - name: MyMonitorRule ruleTypeId: category: Rule owner: AWS provider: CloudWatchAlarm version: '1' configuration: AlarmName: CWAlarm WaitTime: '1' inputArtifacts: [] region: us-east-1

    Per ulteriori informazioni sulla configurazione delle condizioni di errore per lo stage rollback, consulta la OnFailuresezione StageDeclaration successiva della Guida per l'AWS CloudFormation utente.

Eliminazione delle condizioni dello stadio

Puoi eliminare le condizioni della fase che sono state configurate per la tua pipeline.

Per eliminare una condizione dello stadio
  1. Accedere AWS Management Console e aprire la CodePipeline console all'indirizzo http://console.aws.amazon.com/codesuite/codepipeline/home.

    Account AWS Vengono visualizzati i nomi e lo stato di tutte le pipeline associate al tuo.

  2. In Name (Nome), scegliere il nome della pipeline da modificare.

  3. Nella pagina dei dettagli della pipeline, scegliere Edit (Modifica).

  4. Nella pagina Modifica, per la condizione che desideri modificare, scegli Modifica fase.

  5. Accanto alla condizione che desideri eliminare, scegli Elimina condizione.

Ignorare le condizioni dello stage

Puoi sovrascrivere le condizioni della fase che sono state configurate per la tua pipeline. Nella console, quando la fase e la regola sono in esecuzione, puoi scegliere di ignorare la condizione della fase. Ciò comporta lo svolgimento della fase

Per ignorare una condizione dello stage
  1. In questo esempio, la fase della pipeline è in esecuzione con una condizione. Il pulsante Override è abilitato.

    Un esempio di condizione in CodePipeline.
  2. Accanto alla condizione che desideri sostituire, scegli Sostituisci.

    Un esempio di condizione in. CodePipeline
  3. Per rivedere i dettagli, scegli Revisione. I dettagli dell'esempio seguente mostrano che il risultato configurato per la condizione è Fail, che è stato sovrascritto. Lo stato della regola è Abbandonato a causa dell'override.

    Un esempio di pagina dei dettagli della condizione che mostra la condizione sostituita in. CodePipeline