

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.

# Étape 3 : créer une AWS AppConfig extension personnalisée
<a name="working-with-appconfig-extensions-creating-custom-extensions"></a>



Une extension définit une ou plusieurs actions qu'elle exécute au cours d'un AWS AppConfig flux de travail. Par exemple, l'`AWS AppConfig deployment events to Amazon SNS`extension AWS créée inclut une action permettant d'envoyer une notification à une rubrique Amazon SNS. Chaque action est invoquée soit lorsque vous interagissez avec, AWS AppConfig AWS AppConfig soit lorsque vous exécutez un processus en votre nom. C'est ce que l'on appelle *des points d'action*. AWS AppConfig les extensions prennent en charge les points d'action suivants :

**Points d'action PRE\$1\$1** : les actions d'extension configurées sur les points `PRE_*` d'action sont appliquées après la validation de la demande, mais avant AWS AppConfig d'exécuter l'activité correspondant au nom du point d'action. Ces appels d'action sont traités en même temps qu'une demande. Si plusieurs demandes sont effectuées, les appels d'action s'exécutent de manière séquentielle. Notez également que les points `PRE_*` d'action reçoivent et peuvent modifier le contenu d'une configuration. `PRE_*`les points d'action peuvent également répondre à une erreur et empêcher une action de se produire. 
+ `PRE_CREATE_HOSTED_CONFIGURATION_VERSION`
+ `PRE_START_DEPLOYMENT`

**Points d'action ON\$1\$1** : une extension peut également s'exécuter en parallèle avec un AWS AppConfig flux de travail en utilisant un point d'`ON_*`action. `ON_*`les points d'action sont invoqués de manière asynchrone. `ON_*`les points d'action ne reçoivent pas le contenu d'une configuration. Si une extension rencontre une erreur pendant un point `ON_*` d'action, le service ignore l'erreur et poursuit le flux de travail.
+ `ON_DEPLOYMENT_START`
+ `ON_DEPLOYMENT_STEP`
+ `ON_DEPLOYMENT_BAKING`
+ `ON_DEPLOYMENT_COMPLETE`
+ `ON_DEPLOYMENT_ROLLED_BACK`

**Points d'action AT\$1\$1** : les actions d'extension configurées sur les points `AT_*` d'action sont invoquées de manière synchrone et en parallèle à un flux de travail. AWS AppConfig Si une extension rencontre une erreur pendant un point `AT_*` d'action, le service arrête le flux de travail et annule le déploiement.
+ `AT_DEPLOYMENT_TICK`

Le point `AT_DEPLOYMENT_TICK` d'action prend en charge l'intégration de la surveillance par des tiers. `AT_DEPLOYMENT_TICK`est invoqué lors de l'orchestration du traitement du déploiement de la configuration. Si vous utilisez une solution de surveillance tierce (par exemple, Datadog ou New Relic), vous pouvez créer une AWS AppConfig extension qui vérifie la présence d'alarmes au point `AT_DEPLOYMENT_TICK` d'action et, à titre de garde-fou, annule le déploiement s'il déclenche une alarme. 

Si vous utilisez une solution de surveillance tierce telle que Datadog ou New Relic, vous pouvez créer une AWS AppConfig extension qui vérifie la présence d'alarmes au point `AT_DEPLOYMENT_TICK` d'action et, à titre de garde-fou, annule le déploiement s'il déclenche une alarme. Pour plus d'informations, consultez les exemples d'intégration de Datadog et New Relic suivants sur : GitHub 
+ [Datadog](https://github.com/aws-samples/aws-appconfig-tick-extn-for-datadog)
+ [New Relic](https://github.com/aws-samples/sample-aws-appconfig-tick-extn-for-newrelic)

Pour plus d'informations sur les AWS AppConfig extensions, consultez les rubriques suivantes :
+ [Étendre AWS AppConfig les workflows à l'aide d'extensions](working-with-appconfig-extensions.md)
+ [Procédure pas à pas : création d'extensions personnalisées AWS AppConfig](working-with-appconfig-extensions-creating-custom.md)

**Exemple d'extension**  
L'exemple d'extension suivant définit une action qui appelle le point `PRE_CREATE_HOSTED_CONFIGURATION_VERSION` d'action. Sur le `Uri` terrain, l'action spécifie le nom de ressource Amazon (ARN) de la fonction `MyS3ConfigurationBackUpExtension` Lambda créée précédemment dans cette procédure pas à pas. L'action spécifie également l'ARN Gestion des identités et des accès AWS (IAM) assume le rôle créé précédemment dans cette procédure pas à pas.

**Exemple d' AWS AppConfig extension**

```
{
    "Name": "MySampleExtension",
    "Description": "A sample extension that backs up configurations to an S3 bucket.",
    "Actions": {
        "PRE_CREATE_HOSTED_CONFIGURATION_VERSION": [
            {
                "Name": "PreCreateHostedConfigVersionActionForS3Backup",
                "Uri": "arn:aws:lambda:aws-region:111122223333:function:MyS3ConfigurationBackUpExtension",
                "RoleArn": "arn:aws:iam::111122223333:role/ExtensionsTestRole"
            }
        ]
    },
    "Parameters" : {
        "S3_BUCKET": {
            "Required": false
        }
    }
}
```

**Note**  
Pour consulter la syntaxe des demandes et les descriptions des champs lors de la création d'une extension, consultez la [CreateExtension](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateExtension.html)rubrique du Guide de *référence des AWS AppConfig API*.

**Pour créer une extension (console)**

1. Ouvrez la AWS Systems Manager console à l'adresse [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/).

1. Dans le panneau de navigation, sélectionnez **AWS AppConfig**.

1. Dans l'onglet **Extensions**, choisissez **Créer une extension**.

1. Pour **Nom de l'extension**, entrez un nom unique. Pour les besoins de cette procédure pas à pas, entrez**MyS3ConfigurationBackUpExtension**. Entrez éventuellement une description.

1. Dans la section **Actions**, choisissez **Ajouter une nouvelle action**.

1. Pour **Nom de l’action**, saisissez un nom unique. Pour les besoins de cette procédure pas à pas, entrez**PreCreateHostedConfigVersionActionForS3Backup**. Ce nom décrit le point d'action utilisé par l'action et le but de l'extension.

1. Dans la liste des **points d'action**, choisissez **PRE\$1CREATE\$1HOSTED\$1CONFIGURATION\$1VERSION**.

1. Pour **Uri**, choisissez fonction **Lambda, puis choisissez la fonction** dans la liste des fonctions **Lambda**. Si vous ne voyez pas votre fonction, vérifiez que vous vous trouvez bien à l' Région AWS endroit où vous l'avez créée.

1. Pour le rôle **IAM, choisissez le rôle** que vous avez créé plus tôt dans cette procédure pas à pas.

1. Dans la section **Paramètres d'extension (facultatif)**, choisissez **Ajouter un nouveau paramètre**. 

1. Pour **Nom du paramètre**, entrez un nom. Pour les besoins de cette procédure pas à pas, entrez**S3\$1BUCKET**.

1. Répétez les étapes 5 à 11 pour créer une deuxième action pour le point `PRE_START_DEPLOYMENT` d'action.

1. Choisissez **Créer une extension**.

# Personnalisation des extensions AWS de notification créées
<a name="working-with-appconfig-extensions-creating-custom-notification"></a>

Il n'est pas nécessaire de créer un Lambda ou une extension pour utiliser des extensions de notification [AWS créées par des auteurs.](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-about-predefined.html) Vous pouvez simplement créer une association d'extension, puis effectuer une opération qui appelle l'un des points d'action pris en charge. Par défaut, les extensions de AWS notification créées prennent en charge les points d'action suivants : 
+ `ON_DEPLOYMENT_START`
+ `ON_DEPLOYMENT_COMPLETE`
+ `ON_DEPLOYMENT_ROLLED_BACK`

Si vous créez des versions personnalisées de l'`AWS AppConfig deployment events to Amazon SNS`extension et des `AWS AppConfig deployment events to Amazon SQS` extensions, vous pouvez spécifier les points d'action pour lesquels vous souhaitez recevoir des notifications. 

**Note**  
L'`AWS AppConfig deployment events to EventBridge`extension ne prend pas en charge les points `PRE_*` d'action. Vous pouvez créer une version personnalisée si vous souhaitez supprimer certains des points d'action par défaut attribués à la AWS version créée.

Il n'est pas nécessaire de créer une fonction Lambda si vous créez des versions personnalisées des extensions de notification AWS créées. Il vous suffit de spécifier un Amazon Resource Name (ARN) dans le `Uri` champ correspondant à la nouvelle version de l'extension.
+ Pour une extension de EventBridge notification personnalisée, entrez l'ARN des événements EventBridge par défaut dans le `Uri` champ.
+ Pour une extension de notification Amazon SNS personnalisée, entrez l'ARN d'une rubrique Amazon SNS dans le champ. `Uri`
+ Pour une extension de notification Amazon SQS personnalisée, entrez l'ARN d'une file de messages Amazon SQS dans le champ. `Uri`