

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.

# Utilisation de AWS AppConfig l'agent avec Amazon ECS et Amazon EKS
<a name="appconfig-integration-containers-agent"></a>

Vous pouvez intégrer Amazon Elastic Container Service (Amazon ECS) et Amazon Elastic Kubernetes Service (Amazon EKS) à l' AWS AppConfig aide d'un agent. AWS AppConfig L'agent fonctionne comme un conteneur annexe s'exécutant parallèlement à vos applications de conteneur Amazon ECS et Amazon EKS. L'agent améliore le traitement et la gestion des applications conteneurisées de la manière suivante :
+ L'agent appelle AWS AppConfig en votre nom en utilisant un rôle Gestion des identités et des accès AWS (IAM) et en gérant un cache local de données de configuration. En extrayant les données de configuration du cache local, votre application nécessite moins de mises à jour de code pour gérer les données de configuration, récupère les données de configuration en quelques millisecondes et n'est pas affectée par les problèmes réseau susceptibles de perturber les appels pour ces données. \$1
+ L'agent propose une expérience native pour récupérer et résoudre les indicateurs de AWS AppConfig fonctionnalités.
+ Prêt à l'emploi, l'agent fournit les meilleures pratiques en matière de stratégies de mise en cache, d'intervalles d'interrogation et de disponibilité des données de configuration locales, tout en suivant les jetons de configuration nécessaires pour les appels de service suivants.
+ Lorsqu'il s'exécute en arrière-plan, l'agent interroge régulièrement le plan de AWS AppConfig données pour obtenir des mises à jour des données de configuration. Votre application conteneurisée peut récupérer les données en se connectant à localhost sur le port 2772 (une valeur de port par défaut personnalisable) et en appelant HTTP GET pour récupérer les données.
+ AWS AppConfig L'agent met à jour les données de configuration de vos conteneurs sans avoir à redémarrer ou à recycler ces conteneurs.

\$1AWS AppConfig L'agent met en cache les données la première fois que le service récupère vos données de configuration. Pour cette raison, le premier appel pour récupérer les données est plus lent que les appels suivants.

**Avant de commencer**  
Pour intégrer vos applications AWS AppConfig de conteneur, vous devez créer des AWS AppConfig artefacts et des données de configuration, notamment des indicateurs de fonctionnalité ou des données de configuration sous forme libre. Pour de plus amples informations, veuillez consulter [Création d'indicateurs de fonctionnalités et de données de configuration sous forme libre dans AWS AppConfig](creating-feature-flags-and-configuration-data.md).

Pour récupérer les données de configuration hébergées par AWS AppConfig, vos applications de conteneur doivent être configurées de manière à accéder au plan de AWS AppConfig données. Pour autoriser l'accès à vos applications, mettez à jour la politique d'autorisations IAM utilisée par votre rôle IAM de service de conteneurs. Plus précisément, vous devez ajouter les `appconfig:GetLatestConfiguration` actions `appconfig:StartConfigurationSession` et à la politique. Les rôles IAM du service de conteneur sont les suivants :
+ Le rôle de tâche Amazon ECS
+ Le rôle du nœud Amazon EKS
+ Le rôle d'exécution du AWS Fargate pod (si vos conteneurs Amazon EKS utilisent Fargate pour le traitement informatique)

Pour plus d'informations sur l'ajout d'autorisations à une politique, consultez la section [Ajouter et supprimer des autorisations d'identité IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dans le guide de l'*utilisateur IAM*.

**Topics**
+ [Démarrage de l' AWS AppConfig agent pour l'intégration d'Amazon ECS](appconfig-integration-containers-agent-starting-ecs.md)
+ [Démarrage de l' AWS AppConfig agent pour l'intégration d'Amazon EKS](appconfig-integration-containers-agent-starting-eks.md)
+ [(Facultatif) Exécution DaemonSet en AWS AppConfig tant que dans Amazon EKS](appconfig-integration-containers-agent-daemon.md)
+ [(Facultatif) Utilisation de variables d'environnement pour configurer AWS AppConfig l'agent pour Amazon ECS et Amazon EKS](appconfig-integration-containers-agent-configuring.md)
+ [Extraction des données de configuration pour les applications exécutées dans Amazon ECS et Amazon EKS](appconfig-integration-containers-agent-retrieving-data.md)

# Démarrage de l' AWS AppConfig agent pour l'intégration d'Amazon ECS
<a name="appconfig-integration-containers-agent-starting-ecs"></a>

Le conteneur annexe de l' AWS AppConfig agent est automatiquement disponible dans votre environnement Amazon ECS. Pour l'utiliser, vous devez le démarrer, comme décrit dans la procédure suivante.

**Pour démarrer Amazon ECS (console)**

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Dans le panneau de navigation, choisissez **Task definitions** (Définition des tâches).

1. Choisissez la définition de tâche pour votre application, puis sélectionnez la dernière révision.

1. Choisissez **Créer une nouvelle révision**, puis **Créer une nouvelle révision**.

1. Choisissez **Ajouter d'autres conteneurs**.

1. Dans **Nom**, entrez un nom unique pour le conteneur de l' AWS AppConfig agent.

1. Pour **l'URI de l'image**, entrez : **public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x**

1. Pour le **contenant essentiel**, sélectionnez **Oui**.

1. Dans la section **Mappages de ports**, choisissez **Ajouter un mappage de port**.

1. Pour **Port à conteneurs**, entrez**2772**.
**Note**  
AWS AppConfig L'agent s'exécute sur le port 2772, par défaut. Vous pouvez spécifier un autre port.

1. Choisissez **Créer**. Amazon ECS crée une nouvelle révision de conteneur et affiche les détails.

1. Dans le volet de navigation, choisissez **Clusters**, puis choisissez votre cluster d'applications dans la liste.

1. Dans l'onglet **Services**, sélectionnez le service correspondant à votre application.

1. Choisissez **Mettre à jour**.

1. Sous **Configuration du déploiement**, pour **Révision**, choisissez la dernière révision.

1. Choisissez **Mettre à jour**. Amazon ECS déploie la dernière définition de tâche.

1. Une fois le déploiement terminé, vous pouvez vérifier que AWS AppConfig l'agent est en cours d'exécution dans l'onglet **Configuration et tâches**. Dans l'onglet **Tâches**, choisissez la tâche en cours d'exécution.

1. Dans la section **Conteneurs**, vérifiez que le conteneur de l' AWS AppConfig agent est répertorié.

1. Pour vérifier que AWS AppConfig l'agent a démarré, cliquez sur l'onglet **Logs**. Recherchez une instruction semblable à la suivante pour le conteneur de l' AWS AppConfig agent : `[appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772`

**Note**  
Notez les informations suivantes.  
AWS AppConfig L'agent est un processus de longue haleine. En tant que bonne pratique pour les conteneurs Amazon ECS, configurez les contrôles de santé de vos conteneurs, en définissant spécifiquement la dépendance du conteneur sur la condition SAINE. Pour plus d'informations, consultez le [ContainerDependency](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDependency.html)manuel *Amazon Elastic Container Service API Reference*.
Vous pouvez ajuster le comportement par défaut de l' AWS AppConfig Agent en saisissant ou en modifiant des variables d'environnement. Pour plus d'informations sur les variables d'environnement disponibles, consultez[(Facultatif) Utilisation de variables d'environnement pour configurer AWS AppConfig l'agent pour Amazon ECS et Amazon EKS](appconfig-integration-containers-agent-configuring.md). Pour plus d'informations sur la modification des variables d'environnement dans Amazon ECS, consultez la section [Transmission de variables d'environnement à un conteneur](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) dans le manuel *Amazon Elastic Container Service Developer Guide*.

# Démarrage de l' AWS AppConfig agent pour l'intégration d'Amazon EKS
<a name="appconfig-integration-containers-agent-starting-eks"></a>

Le conteneur annexe de l' AWS AppConfig agent est automatiquement disponible dans votre environnement Amazon EKS. Pour l'utiliser, vous devez le démarrer. La procédure suivante décrit comment utiliser l'outil de ligne de `kubectl` commande Amazon EKS pour démarrer l'agent.

**Note**  
Avant de continuer, assurez-vous que votre `kubeconfig` fichier est à jour. Pour plus d'informations sur la création ou la modification d'un `kubeconfig` fichier, consultez la section [Création ou mise à jour d'un fichier kubeconfig pour un cluster Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html) dans le guide de **l'utilisateur Amazon EKS**.

**Pour démarrer AWS AppConfig l'agent (outil de ligne de commande kubectl)**

1. Ouvrez le manifeste de votre application et vérifiez que votre application Amazon EKS s'exécute en tant que déploiement à conteneur unique. Le contenu du fichier doit ressembler à ce qui suit.

   ```
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     name: my-app
     namespace: my-namespace
     labels:
       app: my-application-label
   spec:
     replicas: 1
     selector:
       matchLabels:
         app: my-application-label
     template:
       metadata:
         labels:
           app: my-application-label
       spec:
         containers:
         - name: my-app
           image: my-repo/my-image
           imagePullPolicy: IfNotPresent
   ```

1. Ajoutez les détails de la définition du conteneur de l' AWS AppConfig agent à votre manifeste de déploiement.

   ```
   - name: appconfig-agent
           image: public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x
           ports:
           - name: http
             containerPort: 2772
             protocol: TCP
           env:
           - name: SERVICE_REGION
             value: Région AWS
           imagePullPolicy: IfNotPresent
   ```
**Note**  
Notez les informations suivantes.  
AWS AppConfig L'agent s'exécute sur le port 2772, par défaut. Vous pouvez spécifier un autre port.
Vous pouvez ajuster le comportement par défaut de l' AWS AppConfig Agent en saisissant des variables d'environnement. Pour de plus amples informations, veuillez consulter [(Facultatif) Utilisation de variables d'environnement pour configurer AWS AppConfig l'agent pour Amazon ECS et Amazon EKS](appconfig-integration-containers-agent-configuring.md).
Pour*Région AWS*, spécifiez le Région AWS code (par exemple,`us-west-1`) dans lequel AWS AppConfig l'agent récupère les données de configuration.

1. Exécutez la `kubectl` commande suivante pour appliquer les modifications à votre cluster. *my-deployment*Remplacez-le par le nom de votre manifeste de déploiement.

   ```
   kubectl apply -f my-deployment.yml
   ```

1. Une fois le déploiement terminé, vérifiez que AWS AppConfig l'agent est en cours d'exécution. Utilisez la commande suivante pour afficher le fichier journal du pod de l'application.

   ```
   kubectl logs -n my-namespace -c appconfig-agent my-pod
   ```

   Recherchez une instruction semblable à la suivante pour le conteneur de l' AWS AppConfig agent : `[appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772`

**Note**  
Vous pouvez ajuster le comportement par défaut de l' AWS AppConfig Agent en saisissant ou en modifiant des variables d'environnement. Pour plus d'informations sur les variables d'environnement disponibles, consultez[(Facultatif) Utilisation de variables d'environnement pour configurer AWS AppConfig l'agent pour Amazon ECS et Amazon EKS](appconfig-integration-containers-agent-configuring.md).

# (Facultatif) Exécution DaemonSet en AWS AppConfig tant que dans Amazon EKS
<a name="appconfig-integration-containers-agent-daemon"></a>

Avec Amazon EKS, vous pouvez exécuter AWS AppConfig l'agent en tant que sidecar, ce qui se traduit par un conteneur d'agent *par module d'application.* Ou, si vous préférez, vous pouvez exécuter l' AWS AppConfig agent en tant que tel [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/), ce qui se traduit par un conteneur d'agent *par nœud de votre cluster*. 

**Note**  
Si vous exécutez AWS AppConfig l'Agent en tant que DaemonSet, l'agent s'exécute dans un module séparé, ce qui signifie que vous ne pouvez pas y accéder avec des appels à`localhost`. Vous devez injecter ou découvrir l'adresse IP de l'agent pod pour pouvoir l'appeler.

Pour exécuter AWS AppConfig l'Agent en tant que DaemonSet, créez un fichier manifeste avec le contenu suivant. Remplacez *highlighted* le texte par des informations relatives à votre application et à votre environnement. Pour*Région AWS*, spécifiez un Région AWS code (par exemple,`us-west-1`). 

```
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: aws-appconfig-agent
  namespace: my_namespace
  labels:
    app: my_application_label
spec:
   selector:
    matchLabels:
      app: my_application_label
  template:
    metadata:
      labels:
        app: my_application_label
    spec:
      containers:
      - name: aws-appconfig-agent
        image: public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x
        ports:
        - name: http
          containerPort: 2772
          protocol: TCP
        env:
        - name: SERVICE_REGION
          value: Région AWS
        imagePullPolicy: IfNotPresent
      # set a high priority class to ensure the agent is running on every node
      priorityClassName: system-node-critical
```

Exécutez la commande suivante pour appliquer l' AWS AppConfig agent DaemonSet à votre cluster. Remplacez *aws\$1appconfig\$1agent\$1daemonset* par le nom de votre DaemonSet manifeste.

```
kubectl apply -f aws_appconfig_agent_daemonset.yml
```

# (Facultatif) Utilisation de variables d'environnement pour configurer AWS AppConfig l'agent pour Amazon ECS et Amazon EKS
<a name="appconfig-integration-containers-agent-configuring"></a>

Vous pouvez configurer AWS AppConfig l'agent en modifiant les variables d'environnement suivantes pour votre conteneur d'agents.

**Note**  
Le tableau suivant inclut une colonne **de valeurs d'exemple**. Selon la résolution de votre écran, vous devrez peut-être faire défiler le tableau vers le bas, puis vers la droite pour afficher la colonne.


****  

| Variable d'environnement | Détails | Valeur par défaut | Valeur (s) de l'échantillon | 
| --- | --- | --- | --- | 
|  `ACCESS_TOKEN`  |  Cette variable d'environnement définit un jeton qui doit être fourni lors de la demande de données de configuration auprès du serveur HTTP de l'agent. La valeur du jeton doit être définie dans l'en-tête d'autorisation de la demande HTTP avec un type d'autorisation de`Bearer`. Voici un exemple. <pre>GET /applications/my_app/...<br />                  Host: localhost:2772<br />                  Authorization: Bearer <token value></pre>  | Aucune | MyAccessToken | 
|  `BACKUP_DIRECTORY`  |  Cette variable d'environnement permet à l' AWS AppConfig agent d'enregistrer une sauvegarde de chaque configuration récupérée dans le répertoire spécifié.   Les configurations sauvegardées sur disque ne sont pas cryptées. Si votre configuration contient des données sensibles, il est AWS AppConfig recommandé de mettre en pratique le principe du moindre privilège avec les autorisations de votre système de fichiers. Pour de plus amples informations, veuillez consulter [Sécurité dans AWS AppConfig](appconfig-security.md).   | Aucune | /path/to/backups | 
|  `HTTP_PORT`  |  Cette variable d'environnement indique le port sur lequel s'exécute le serveur HTTP de l'agent.  | 2772 | 2772 | 
|  `HTTP_HOST`  |  La variable HTTP\$1HOST contrôle la manière dont l' AWS AppConfig agent se lie aux interfaces réseau. Le comportement de liaison varie en fonction de l'environnement d'exécution afin de garantir une sécurité et une accessibilité optimales.  |   ECS, EKS  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/appconfig/latest/userguide/appconfig-integration-containers-agent-configuring.html) EC2 et sur site [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/appconfig/latest/userguide/appconfig-integration-containers-agent-configuring.html)  |  Options de configuration personnalisées. Vous pouvez modifier le comportement par défaut à l'aide des valeurs suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/appconfig/latest/userguide/appconfig-integration-containers-agent-configuring.html)  | 
|  `LOG_LEVEL`  |  Cette variable d'environnement indique le niveau de détail enregistré par l'agent. Chaque niveau inclut le niveau actuel et tous les niveaux supérieurs. La valeur ne distingue pas les majuscules et minuscules. Du plus détaillé au moins détaillé, les niveaux de journalisation sont les suivants : `trace` `debug` `info``warn`,`error`,,`fatal`, et`none`. Le `trace` journal contient des informations détaillées, y compris des informations temporelles, sur l'agent.  |  info  |  trace debug info prévenir error fatal Aucune  | 
|  `LOG_PATH`  |  Emplacement du disque où les journaux sont écrits. Si ce n'est pas spécifié, les journaux sont écrits dans stderr.  |  Aucune  | /path/to/logs/agent.journal | 
|  `MANIFEST`  |  Cette variable d'environnement configure l' AWS AppConfig agent pour tirer parti de fonctionnalités supplémentaires par configuration, telles que la récupération de plusieurs comptes et l'enregistrement de la configuration sur disque. Pour de plus amples informations sur l'utilisation de ces modèles, consultez [Utilisation d'un manifeste pour activer des fonctionnalités de récupération supplémentaires](appconfig-agent-how-to-use-additional-features.md).   | Aucune | Lorsque vous utilisez AWS AppConfig la configuration comme manifeste :`MyApp:MyEnv:MyManifestConfig`.Lors du chargement du manifeste depuis le disque : `file:/path/to/manifest.json` | 
|  `MAX_CONNECTIONS`  |  Cette variable d'environnement configure le nombre maximal de connexions que l'agent utilise pour récupérer des AWS AppConfig configurations.   | 3 | 3 | 
|  `POLL_INTERVAL`  |  Cette variable d'environnement contrôle la fréquence à laquelle l'agent interroge les données AWS AppConfig de configuration mises à jour. Vous pouvez spécifier un nombre de secondes pour l'intervalle. Vous pouvez également spécifier un nombre avec une unité de temps : s pour les secondes, m pour les minutes et h pour les heures. Si aucune unité n'est spécifiée, l'agent utilise par défaut les secondes. Par exemple, 60, 60 s et 1 m donnent le même intervalle d'interrogation.   | 45 secondes | 4545 s5 min1 h | 
|  `PREFETCH_LIST`  |  Cette variable d'environnement spécifie les données de configuration que l'agent demande AWS AppConfig dès son démarrage. Plusieurs identifiants de configuration peuvent être fournis dans une liste séparée par des virgules.  | Aucune | MyApp:MyEnv:MyConfigabcd123 : efgh456 : ijkl789MyApp::Config1, ::Config2 MyEnv MyApp MyEnv | 
|  `PRELOAD_BACKUPS`  |  S'il est défini sur`true`, AWS AppConfig l'agent charge les sauvegardes de configuration présentes `BACKUP_DIRECTORY` dans la mémoire et vérifie immédiatement s'il existe une version plus récente du service. S'il est défini sur`false`, l' AWS AppConfig Agent charge le contenu d'une sauvegarde de configuration uniquement s'il ne peut pas récupérer les données de configuration du service, par exemple en cas de problème avec votre réseau.  | true | vrai false  | 
| PROXY\$1HEADERS | Cette variable d'environnement spécifie les en-têtes requis par le proxy référencé dans la variable d'PROXY\$1URLenvironnement. La valeur est une liste d'en-têtes séparés par des virgules.  | Aucune |  en-tête : valeur h1 : v1, h2 : v2  | 
| PROXY\$1URL | Cette variable d'environnement spécifie l'URL du proxy à utiliser pour les connexions entre l'agent Services AWS et, notamment AWS AppConfig. HTTPSet HTTP URLs sont pris en charge. | Aucune | http://localhost:7474https://my-proxy.example.com | 
|  `REQUEST_TIMEOUT`  |  Cette variable d'environnement contrôle le temps pendant lequel l'agent attend une réponse. AWS AppConfig Si le service ne répond pas, la demande échoue. Si la demande concerne la récupération initiale des données, l'agent renvoie une erreur à votre application. Si le délai d'attente survient lors d'une vérification des données mises à jour en arrière-plan, l'agent enregistre l'erreur et réessaie après un court laps de temps. Vous pouvez spécifier le nombre de millisecondes pour le délai d'expiration. Vous pouvez également spécifier un nombre avec une unité de temps : ms pour les millisecondes et s pour les secondes. Si aucune unité n'est spécifiée, l'agent utilise par défaut les millisecondes. Par exemple, 5 000, 5 000 ms et 5 s entraînent la même valeur de délai d'expiration de la demande.  | 3000 ms | 30003000 ms5s | 
| ROLE\$1ARN | Cette variable d'environnement spécifie le nom de ressource Amazon (ARN) d'un rôle IAM. AWS AppConfig L'agent assume ce rôle pour récupérer les données de configuration. | Aucune | arn:aws:iam : :123456789012:role/ MyRole | 
| ROLE\$1EXTERNAL\$1ID | Cette variable d'environnement indique l'ID externe à utiliser avec l'ARN du rôle assumé. | Aucune | MyExternalId | 
| ROLE\$1SESSION\$1NAME | Cette variable d'environnement spécifie le nom de session à associer aux informations d'identification pour le rôle IAM assumé. | Aucune | AWSAppConfigAgentSession | 
| SERVICE\$1REGION | Cette variable d'environnement indique une alternative Région AWS que AWS AppConfig l'agent utilise pour appeler le AWS AppConfig service. Si elle n'est pas définie, l'agent tente de déterminer la région actuelle. Si ce n'est pas le cas, l'agent ne démarre pas. | Aucune | us-east-1eu-west-1 | 
|  `WAIT_ON_MANIFEST`  |  Cette variable d'environnement configure l' AWS AppConfig agent pour qu'il attende que le manifeste soit traité avant de terminer le démarrage.  | true | vraifalse | 

# Extraction des données de configuration pour les applications exécutées dans Amazon ECS et Amazon EKS
<a name="appconfig-integration-containers-agent-retrieving-data"></a>

Vous pouvez récupérer les données de configuration de AWS AppConfig l'agent pour les applications exécutées dans Amazon ECS et Amazon EKS à l'aide d'un appel HTTP localhost. Les exemples suivants sont utilisés `curl` avec un client HTTP. Vous pouvez appeler l'agent à l'aide de n'importe quel client HTTP disponible compatible avec le langage de votre application ou les bibliothèques disponibles.

**Note**  
Pour récupérer les données de configuration si votre application utilise une barre oblique, par exemple « test-backend/test-service », vous devez utiliser le codage URL.

**Pour récupérer le contenu complet de toute configuration déployée**

```
$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name"
```

**Pour récupérer un seul drapeau et ses attributs à partir d'une AWS AppConfig configuration de type `Feature Flag`**

```
$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name?flag=flag_name"
```

**Pour accéder à plusieurs drapeaux et à leurs attributs à partir d'une AWS AppConfig configuration de type `Feature Flag`**

```
$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name?flag=flag_name_one&flag=flag_name_two"
```

L'appel renvoie les métadonnées de configuration dans les en-têtes HTTP, y compris la version de configuration, le type de contenu et l'étiquette de version de configuration (le cas échéant). Le corps de la réponse de l'agent contient le contenu de configuration. Voici un exemple :

```
HTTP/1.1 200 OK
Configuration-Version: 1
Content-Type: application/json
Date: Tue, 18 Feb 2025 20:20:16 GMT
Content-Length: 31

My test config
```