Crea un trigger per un CodeDeploy evento - AWS CodeDeploy

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à.

Crea un trigger per un CodeDeploy evento

Puoi creare un trigger che pubblica un argomento Amazon Simple Notification Service (Amazon SNS) per un eventoAWS CodeDeploy di implementazione o istanza. Quindi, quando si verifica quell'evento, tutti gli abbonati all'argomento associato ricevono notifiche tramite l'endpoint specificato nell'argomento, ad esempio un messaggio SMS o un messaggio e-mail. Amazon SNS offre diversi metodi per la sottoscrizione agli argomenti.

Prima di creare un trigger, devi impostare l'argomento Amazon SNS a cui il trigger deve puntare. Per informazioni, consulta Creare un argomento. Quando crei un argomento, ti consigliamo di assegnargli un nome che ne identifichi lo scopo, in formati comeTopic-group-us-west-3-deploy-fail oTopic-group-project-2-instance-stop.

Devi inoltre concedere ad Amazon SNS le autorizzazioni per un ruolo di CodeDeploy servizio prima di poter inviare notifiche per il tuo trigger. Per informazioni, consulta Concedi le autorizzazioni di Amazon SNS a un ruolo CodeDeploy di servizio.

Dopo aver creato l'argomento, si possono aggiungere i sottoscrittori. Per informazioni sulla creazione, la gestione e la sottoscrizione agli argomenti, consulta Cos'è Amazon Simple Notification Service.

Crea un trigger per inviare notifiche per CodeDeploy gli eventi (console)

Puoi usare la CodeDeploy console per creare trigger per un CodeDeploy evento. Al termine del processo di installazione, viene inviato un messaggio di notifica di prova per verificare che le autorizzazioni e i dettagli dei trigger siano impostati correttamente.

Per creare un trigger per un CodeDeploy evento
  1. Nella AWS Management Console aprire la console AWS CodeDeploy.

  2. Accedere aAWS Management Console e aprire la CodeDeploy console all'indirizzo https://console.aws.amazon.com/codedeploy.

    Nota

    Accedi con lo stesso utente che hai configuratoGuida introduttiva con CodeDeploy.

  3. Nel riquadro di navigazione, espandi Deploy, quindi scegli Applicazioni.

  4. Nella pagina Applications (Applicazioni) scegliere il nome dell'applicazione associata al gruppo di distribuzione in cui si intende aggiungere un trigger.

  5. Nella pagina Application details (Dettagli applicazione) scegliere il gruppo di distribuzione in cui si intende aggiungere un trigger.

  6. Scegliere Edit (Modifica).

  7. Espandere Advanced - optional (Opzioni avanzate - opzionale).

  8. Nell'area Triggers (Trigger), scegliere Create trigger (Crea trigger).

  9. Nel riquadro Create deployment trigger (Crea trigger di distribuzione) eseguire le operazioni seguenti:

    1. In Trigger name (Nome trigger), immettere un nome per il trigger che consenta di identificarne lo scopo. Si consiglia di utilizzare formati come Trigger-group-us-west-3-deploy-fail o Trigger-group-eu-central-instance-stop.

    2. In Eventi, scegli il tipo o i tipi di evento per attivare l'argomento Amazon SNS per inviare notifiche.

    3. Negli argomenti di Amazon SNS, scegli il nome dell'argomento che hai creato per inviare notifiche per questo trigger.

    4. Scegli Crea trigger. CodeDeploy invia una notifica di prova per confermare che l'accesso tra CodeDeploy e l'argomento Amazon SNS è stato configurato correttamente. La conferma verrà inviata in un messaggio SMS o in un messaggio e-mail, in base al tipo di endpoint selezionato per l'argomento e a seconda che sia stata effettuata la sottoscrizione all'argomento.

  10. Sceglie Save changes (Salva modifiche).

Crea un trigger per inviare notifiche per CodeDeploy gli eventi (CLI)

È possibile utilizzare l'interfaccia a riga di comando per includere i trigger al momento della creazione di un gruppo di distribuzione oppure è possibile aggiungere trigger a un gruppo di distribuzione esistente.

Per creare un trigger per l'invio di notifiche per un nuovo gruppo di distribuzione

Crea un file JSON per configurare il gruppo di distribuzione, quindi esegui il create-deployment-groupcomando utilizzando l'--cli-input-jsonopzione.

Il modo più semplice per creare il file JSON consiste nell'utilizzare l'opzione --generate-cli-skeleton per ottenere una copia del formato JSON, quindi fornire i valori richiesti in un editor di testo normale.

  1. Eseguire il comando seguente, quindi copiare i risultati in un editor di testo normale.

    aws deploy create-deployment-group --generate-cli-skeleton
  2. Aggiungi il nome di un' CodeDeploy applicazione esistente all'output:

    { "applicationName": "TestApp-us-east-2", "deploymentGroupName": "", "deploymentConfigName": "", "ec2TagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "onPremisesInstanceTagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "autoScalingGroups": [ "" ], "serviceRoleArn": "", "triggerConfigurations": [ { "triggerName": "", "triggerTargetArn": "", "triggerEvents": [ "" ] } ] }
  3. Fornire i valori per i parametri che si desidera configurare.

    Quando si utilizza il create-deployment-groupcomando, è necessario fornire almeno i valori per i seguenti parametri:

    • applicationName: il nome di un'applicazione già creata nel proprio account.

    • deploymentGroupName: un nome per il gruppo di distribuzione da creare.

    • serviceRoleArn: l'ARN di un ruolo di servizio esistente impostato CodeDeploy nel tuo account. Per informazioni, consulta Fase 2: Creare un ruolo di servizio per CodeDeploy.

    Nella sezione triggerConfigurations fornire i valori per i seguenti parametri:

    • triggerName: il nome da assegnare al trigger per poterlo identificare facilmente. Si consiglia di utilizzare formati come Trigger-group-us-west-3-deploy-fail o Trigger-group-eu-central-instance-stop.

    • triggerTargetArn: L'ARN dell'argomento Amazon SNS che hai creato per associarlo al tuo trigger, in questo formato:arn:aws:sns:us-east-2:444455556666:NewTestTopic.

    • triggerEvents: il tipo di evento o gli eventi per cui si desidera attivare le notifiche. È possibile specificare uno o più tipi di evento utilizzando le virgole per separare i diversi nomi (ad esempio, "triggerEvents":["DeploymentSuccess","DeploymentFailure","InstanceFailure"]). Quando si aggiungono più tipi di evento, le notifiche vengono inviate all'argomento specificato per tutti i tipi di evento, anziché a un argomento diverso per ciascuno di essi. Puoi scegliere tra i seguenti tipi di evento:

      • DeploymentStart

      • DeploymentSuccess

      • DeploymentFailure

      • DeploymentStop

      • DeploymentRollback

      • DeploymentReady (Si applica solo alle istanze di sostituzione in un'implementazione blu/verde)) in blu/verde)) in blu/verde) in blu/verde)

      • InstanceStart

      • InstanceSuccess

      • InstanceFailure

      • InstanceReady (Si applica solo alle istanze di sostituzione in un'implementazione blu/verde)) in blu/verde)) in blu/verde) in blu/verde)

    L'esempio di configurazione seguente crea un gruppo di distribuzione denominato dep-group-ghi-789-2 per un'applicazione denominata TestApp-us-east-2 e un trigger che richiede l'invio di notifiche ogni volta che viene avviata una distribuzione, indipendentemente dall'esito:

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "deploymentGroupName": "dep-group-ghi-789-2", "ec2TagFilters": [ { "Key": "Name", "Value": "Project-ABC", "Type": "KEY_AND_VALUE" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "triggerConfigurations": [ { "triggerName": "Trigger-group-us-east-2", "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments", "triggerEvents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ] } ] }
  4. Salva gli aggiornamenti come file JSON e chiama il file utilizzando l'opzione --cli-input-json quando esegui il comando create-deployment-group:

    Importante

    Assicurarsi di includere file:// prima del nome del file. Questo è obbligatorio in questo comando.

    aws deploy create-deployment-group --cli-input-json file://filename.json

    Al termine del processo di creazione riceverai un messaggio di notifica di prova che indica che i dettagli delle autorizzazioni e dei trigger sono impostati correttamente.

Per creare un trigger per l'invio di notifiche per un gruppo di distribuzione esistente

Per utilizzare l'AWS CLIopzione per aggiungere trigger per CodeDeploy eventi a un gruppo di distribuzione esistente, crea un file JSON per aggiornare il gruppo di distribuzione, quindi esegui il update-deployment-groupcomando utilizzando l'--cli-input-jsonopzione.

Il modo più semplice per creare il file JSON consiste nell'eseguire il comando get-deployment-group per ottenere una copia della configurazione del gruppo di distribuzione in formato JSON, quindi aggiornare i valori di parametro in un editor di testo normale.

  1. Eseguire il comando seguente, quindi copiare i risultati in un editor di testo normale.

    aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group
  2. Eliminare quanto segue dall'output:

    • Eliminare { "deploymentGroupInfo": all'inizio dell'output.

    • Eliminare } alla fine dell'output.

    • Eliminare la riga contenente deploymentGroupId.

    • Eliminare la riga contenente deploymentGroupName.

    Il contenuto del file di testo dovrebbe essere analogo al seguente:

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerConfigurations": [], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": [] }
  3. Nella sezione triggerConfigurations aggiungere i dati per i parametri triggerEvents, triggerTargetArn e triggerName. Per informazioni sui parametri di configurazione del trigger, vedere TriggerConfig.

    Il contenuto del file di testo dovrebbe essere analogo al seguente. Questo codice richiede l'invio di notifiche ogni volta che viene avviata una distribuzione, indipendentemente dall'esito.

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerConfigurations": [ { "triggerEvents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ], "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments", "triggerName": "Trigger-group-us-east-2" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": [] }
  4. Salva gli aggiornamenti come file JSON, quindi esegui il update-deployment-groupcomando utilizzando l'--cli-input-jsonopzione. Assicurarsi di includere l'opzione --current-deployment-group-name e sostituire il nome del file JSON in filename:

    Importante

    Assicurarsi di includere file:// prima del nome del file. Questo è obbligatorio in questo comando.

    aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json

    Al termine del processo di creazione riceverai un messaggio di notifica di prova che indica che i dettagli delle autorizzazioni e dei trigger sono impostati correttamente.