Exemple : création d'un AWS CodeCommit déclencheur pour une rubrique Amazon SNS - AWS CodeCommit

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemple : création d'un AWS CodeCommit déclencheur pour une rubrique Amazon SNS

Vous pouvez créer un déclencheur pour un CodeCommit référentiel afin que les événements de ce référentiel déclenchent des notifications depuis une rubrique Amazon Simple Notification Service (Amazon SNS). Vous souhaiterez peut-être créer un déclencheur pour une rubrique Amazon SNS afin de permettre aux utilisateurs de s'abonner aux notifications concernant les événements du référentiel, tels que la suppression de branches. Vous pouvez également tirer parti de l'intégration des rubriques Amazon SNS à d'autres services, tels qu'Amazon Simple Queue Service (Amazon SQS) et. AWS Lambda

Note
  • Vous devez pointer le déclencheur vers une rubrique Amazon SNS existante qui représente l'action entreprise en réponse aux événements du référentiel. Pour plus d'informations sur la création et l'abonnement à des rubriques Amazon SNS, consultez Getting Started with Amazon Simple Notification Service.

  • Les rubriques Amazon SNS FIFO (premier entré, premier sorti) ne sont pas prises en charge pour les déclencheurs. CodeCommit

Création d'un déclencheur vers une rubrique Amazon SNS pour un CodeCommit référentiel (console)

  1. Ouvrez la CodeCommit console à l'adresse https://console.aws.amazon.com/codesuite/codecommit/home.

  2. Dans Référentiels, sélectionnez le référentiel dans lequel vous souhaitez créer des déclencheurs pour des événements de référentiel.

  3. Dans le volet de navigation pour le référentiel, choisissez Paramètres, puis Déclencheurs.

  4. Choisissez Create trigger (Créer un déclencheur) puis effectuez les opérations suivantes :

    • Dans Nom du déclencheur, entrez le nom du déclencheur (par exemple, MyFirstTrigger).

    • Dans Events, choisissez les événements du référentiel qui déclenchent l'envoi de notifications par la rubrique Amazon SNS.

      Si vous choisissez All repository events, vous ne pouvez pas choisir d'autres événements. Pour choisir un sous-ensemble d'événements, supprimez All repository events, puis sélectionnez un ou plusieurs événements dans la liste. Par exemple, si vous souhaitez que le déclencheur s'exécute uniquement lorsqu'un utilisateur crée une branche ou une étiquette dans le CodeCommit référentiel, supprimez tous les événements du référentiel, puis choisissez Créer une branche ou une étiquette.

    • Si vous souhaitez que le déclencheur s'applique à toutes les branches du référentiel, dans Branches, conservez la sélection vide, car cette option par défaut applique automatiquement le déclencheur à toutes les branches. Si vous souhaitez que ce déclencheur s'applique uniquement à certaines branches spécifiques, choisissez jusqu'à 10 noms de branches dans la liste des branches du référentiel.

    • Dans Choisissez le service à utiliser, sélectionnez Amazon SNS.

    • Dans Amazon SNS, choisissez le nom d'un sujet dans la liste ou entrez l'ARN du sujet.

      Note

      Les rubriques Amazon SNS FIFO (premier entré, premier sorti) ne sont pas prises en charge pour les déclencheurs. CodeCommit Vous devez choisir une rubrique Amazon SNS dont le type est défini sur Standard. Si vous souhaitez utiliser un sujet Amazon SNS FIFO, vous devez configurer une règle Amazon Eventbridge pour les CodeCommit événements dont le sujet SNS FIFO est configuré comme cible.

    • Dans Données personnalisées, fournissez toutes les informations facultatives que vous souhaitez inclure dans la notification envoyée par le sujet Amazon SNS (par exemple, le nom d'un canal IRC que les développeurs utilisent lorsqu'ils discutent du développement dans ce référentiel). Ce champ est une chaîne. Celle-ci ne peut pas être utilisée pour transmettre des paramètres dynamiques.

  5. (Facultatif) Choisissez Test trigger (Tester le déclencheur). Cette étape vous permet de confirmer que vous avez correctement configuré l'accès entre CodeCommit et la rubrique Amazon SNS. Il utilise la rubrique Amazon SNS pour envoyer une notification de test à l'aide des données de votre référentiel, si elles sont disponibles. Si aucune donnée réelle n'est disponible, la notification test contient des exemples de données.

  6. Choisissez Create trigger (Créer un déclencheur) afin de finaliser la création du déclencheur.

Création d'un déclencheur vers une rubrique Amazon SNS pour un CodeCommit référentiel ()AWS CLI

Vous pouvez également utiliser la ligne de commande pour créer un déclencheur pour une rubrique Amazon SNS en réponse à des événements CodeCommit du référentiel, par exemple lorsque quelqu'un envoie un commit vers votre référentiel.

Pour créer un déclencheur pour une rubrique Amazon SNS
  1. Ouvrez un éditeur de texte brut et créez un fichier JSON qui spécifie :

    • Le nom de la rubrique Amazon SNS.

      Note

      Les rubriques Amazon SNS FIFO (premier entré, premier sorti) ne sont pas prises en charge pour les déclencheurs. CodeCommit Vous devez choisir une rubrique Amazon SNS dont le type est défini sur Standard. Si vous souhaitez utiliser un sujet Amazon SNS FIFO, vous devez configurer une règle Amazon Eventbridge pour les CodeCommit événements dont le sujet SNS FIFO est configuré comme cible.

    • Le référentiel et les branches que vous souhaitez surveiller avec ce déclencheur. (Si vous ne spécifiez pas de branche, le déclencheur s'applique à toutes les branches du référentiel).

    • Les événements qui peuvent activer ce déclencheur.

    Enregistrez le fichier.

    Par exemple, pour créer un déclencheur pour un référentiel nommé MyDemoRepoqui publie tous les événements du référentiel sur une rubrique Amazon SNS nommée mySNSTopic pour deux branches, main et preprod :

    { "repositoryName": "MyDemoRepo", "triggers": [ { "name": "MyFirstTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "customData": "", "branches": [ "main", "preprod" ], "events": [ "all" ] } ] }

    Un bloc de déclencheur doit exister dans le fichier JSON pour chaque déclencheur correspondant à un référentiel. Pour créer plusieurs déclencheurs pour le référentiel, incluez plusieurs blocs de déclencheur dans le fichier JSON. N'oubliez pas que tous les déclencheurs créés dans ce fichier sont pour le référentiel spécifié. Vous ne pouvez pas créer des déclencheurs pour plusieurs référentiels dans un seul fichier JSON. Par exemple, si vous souhaitez créer deux déclencheurs pour un référentiel, vous pouvez créer un fichier JSON avec deux blocs de déclencheur. Dans l'exemple suivant, aucune branche n'est spécifiée pour le deuxième bloc de déclencheur ; le déclencheur s'applique donc à toutes les branches :

    { "repositoryName": "MyDemoRepo", "triggers": [ { "name": "MyFirstTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "customData": "", "branches": [ "main", "preprod" ], "events": [ "all" ] }, { "name": "MySecondTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic2", "customData": "", "branches": [], "events": [ "updateReference", "deleteReference" ] } ] }

    Vous pouvez créer des déclencheurs pour les événements que vous spécifiez, par exemple si une validation est transmise vers un référentiel. Les types d'événements comprennent :

    • all pour tous les événements dans le référentiel et les branches spécifiés.

    • updateReference pour quand des validations sont transmises vers le référentiel et les branches spécifiés.

    • createReference pour quand une nouvelle branche ou balise est créée dans le référentiel spécifié.

    • deleteReference pour quand une branche ou balise est supprimée dans le référentiel spécifié.

    Note

    Vous pouvez utiliser plusieurs types d'événement dans un déclencheur. Toutefois, si vous spécifiez all, vous ne pouvez pas indiquer d'autres événements.

    Pour afficher la liste complète des types d'événement valides, depuis le terminal ou l'invite de commande, saisissez aws codecommit put-repository-triggers help.

    En outre, vous pouvez inclure une chaîne dans customData (par exemple, un nom de canal IRC que les développeurs utilisent lors de leur discussion de développement dans ce référentiel). Ce champ est une chaîne. Celle-ci ne peut pas être utilisée pour transmettre des paramètres dynamiques. Cette chaîne est ajoutée en tant qu'attribut au CodeCommit JSON renvoyé en réponse au déclencheur.

  2. (Facultatif) Depuis un terminal ou l'invite de commande, exécutez la commande test-repository-triggers. Ce test utilise des exemples de données provenant du référentiel (ou génère des exemples de données si aucune donnée n'est disponible) pour envoyer une notification aux abonnés de la rubrique Amazon SNS. Par exemple, ce qui suit est utilisé pour vérifier que le JSON du fichier de déclenchement nommé trigger.json est valide et qu'il CodeCommit peut être publié dans la rubrique Amazon SNS :

    aws codecommit test-repository-triggers --cli-input-json file://trigger.json

    Si elle aboutit, cette commande renvoie des informations similaires à ce qui suit :

    { "successfulExecutions": [ "MyFirstTrigger" ], "failedExecutions": [] }
  3. Sur un terminal ou une invite de commande, exécutez la put-repository-triggers commande pour créer le déclencheur dans CodeCommit. Par exemple, pour utiliser un fichier JSON nommé trigger.json pour créer le déclencheur :

    aws codecommit put-repository-triggers --cli-input-json file://trigger.json

    Cette commande renvoie un ID de configuration semblable à ce qui suit :

    { "configurationId": "0123456-I-AM-AN-EXAMPLE" }
  4. Pour afficher la configuration du déclencheur, exécutez la commande get-repository-triggers en spécifiant le nom du référentiel :

    aws codecommit get-repository-triggers --repository-name MyDemoRepo

    Cette commande renvoie la structure de tous les déclencheurs configurés pour le référentiel, similaire à ce qui suit :

    { "configurationId": "0123456-I-AM-AN-EXAMPLE", "triggers": [ { "events": [ "all" ], "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "branches": [ "main", "preprod" ], "name": "MyFirstTrigger", "customData": "Project ID 12345" } ] }
  5. Pour tester les fonctionnalités du déclencheur proprement dit, créez et transmettez une validation vers le référentiel où vous avez configuré le déclencheur. Vous devriez voir une réponse provenant de la rubrique Amazon SNS. Par exemple, si vous avez configuré la rubrique Amazon SNS pour envoyer un e-mail, vous devriez voir un e-mail d'Amazon SNS sur le compte e-mail abonné à la rubrique.

    Voici un exemple de sortie d'un e-mail envoyé depuis Amazon SNS en réponse à un push vers un CodeCommit référentiel :

    { "Records":[ { "awsRegion":"us-east-2", "codecommit":{ "references" : [ { "commit":"317f8570EXAMPLE", "created":true, "ref":"refs/heads/NewBranch" }, { "commit":"4c925148EXAMPLE", "ref":"refs/heads/preprod", } ] }, "eventId":"11111-EXAMPLE-ID", "eventName":"ReferenceChange", "eventPartNumber":1, "eventSource":"aws:codecommit", "eventSourceARN":"arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "eventTime":"2016-02-09T00:08:11.743+0000", "eventTotalParts":1, "eventTriggerConfigId":"0123456-I-AM-AN-EXAMPLE", "eventTriggerName":"MyFirstTrigger", "eventVersion":"1.0", "customData":"Project ID 12345", "userIdentityARN":"arn:aws:iam::111122223333:user/JaneDoe-CodeCommit", } ] }