Crea un trigger per un evento CodeDeploy - 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 evento CodeDeploy

Puoi creare un trigger che pubblica un argomento di Amazon Simple Notification Service (Amazon SNS) per un AWS CodeDeploy evento di distribuzione o istanza. Quindi, quando si verifica l'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 iscriversi agli argomenti.

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

È inoltre necessario concedere ad Amazon SNS le autorizzazioni per un ruolo di CodeDeploy servizio prima che le notifiche possano essere inviate per il trigger. Per informazioni, consulta Concedi le autorizzazioni Amazon SNS per un ruolo di servizio CodeDeploy .

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

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

È possibile utilizzare 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 evento CodeDeploy
  1. In AWS Management Console, apri la AWS CodeDeploy console.

  2. Accedi AWS Management Console e apri 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 Distribuisci, 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. Scegli 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 eventi per attivare l'argomento Amazon SNS per l'invio di notifiche.

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

    4. Scegli Crea trigger. CodeDeploy invia una notifica di prova per confermare che l'accesso è stato configurato correttamente tra CodeDeploy e l'argomento Amazon SNS. 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. Seleziona Salvataggio delle 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 sostitutive in una distribuzione blu/verde)

      • InstanceStart

      • InstanceSuccess

      • InstanceFailure

      • InstanceReady (Si applica solo alle istanze sostitutive in una distribuzione 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'opzione AWS CLI 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 comando utilizzando l'update-deployment-groupopzione. --cli-input-json

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