Utilisation de AWS AppConfig l'agent avec Amazon ECS et Amazon EKS - AWS AppConfig

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

Vous pouvez intégrer Amazon Elastic Container Service (AmazonECS) et Amazon Elastic Kubernetes Service (EKSAmazon) à l' AWS AppConfig aide de l'agent. AWS AppConfig L'agent fonctionne comme un conteneur annexe fonctionnant aux côtés de vos applications Amazon et ECS Amazon EKS Container. 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 AWS Identity and Access Management (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. *

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

*AWS 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.

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'IAMautorisation utilisée par votre IAM rôle de service de conteneur. Plus précisément, vous devez ajouter les appconfig:GetLatestConfiguration actions appconfig:StartConfigurationSession et à la politique. Les IAM rôles du service de conteneur sont les suivants :

  • Le rôle de ECS tâche Amazon

  • Le rôle du EKS nœud Amazon

  • Le rôle d'exécution du AWS Fargate (Fargate) pod (si vos EKS conteneurs Amazon 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 IAM d'identité dans le Guide de IAM l'utilisateur.

Démarrage de l' AWS AppConfig agent pour l'ECSintégration à Amazon

Le conteneur annexe de l' AWS AppConfig agent est automatiquement disponible dans votre environnement AmazonECS. 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.

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

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

  4. Choisissez Créer une nouvelle révision, puis Créer une nouvelle révision.

  5. Choisissez Ajouter d'autres conteneurs.

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

  7. Pour Image URI, entrez : public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x

  8. Pour le contenant essentiel, sélectionnez Oui.

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

  10. Pour Port à conteneurs, entrez2772.

    Note

    AWS AppConfig L'agent s'exécute sur le port 2772, par défaut. Vous pouvez spécifier un autre port.

  11. Sélectionnez Create (Créer). Amazon ECS crée une nouvelle révision du conteneur et affiche les détails.

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

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

  14. Choisissez Mettre à jour.

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

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

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

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

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

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. Pour plus d'informations sur la modification des variables d'environnement dans AmazonECS, consultez la section Transmission de variables d'environnement à un conteneur dans le manuel Amazon Elastic Container Service Developer Guide.

Démarrage de l' AWS AppConfig agent pour l'EKSintégration à Amazon

Le conteneur annexe de l' AWS AppConfig agent est automatiquement disponible dans votre environnement AmazonEKS. Pour l'utiliser, vous devez le démarrer. La procédure suivante décrit comment utiliser l'outil de ligne de EKS kubectl commande Amazon 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 EKS cluster Amazon dans le guide de EKSl'utilisateur Amazon.

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 EKS application Amazon 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
  2. 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: region imagePullPolicy: IfNotPresent
    Note

    Notez les informations suivantes.

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

    kubectl apply -f my-deployment.yml
  4. 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.

(Facultatif) Utilisation de variables d'environnement pour configurer AWS AppConfig l'agent pour Amazon ECS et Amazon EKS

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

Variable d'environnement Détails Valeur par défaut

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 HTTP serveur d'agents. La valeur du jeton doit être définie dans l'en-tête d'autorisation de la HTTP demande avec un type d'autorisation deBearer. Voici un exemple.

GET /applications/my_app/... Host: localhost:2772 Authorization: Bearer <token value>
Aucun

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

Important

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.

Aucun

HTTP_PORT

Cette variable d'environnement indique le port sur lequel s'exécute le HTTP serveur de l'agent.

2772

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. Les variables distinguent les majuscules et minuscules. Du plus détaillé au moins détaillé, les niveaux de journalisation sont les suivants : debug infowarn,error,, etnone. Debuginclut des informations détaillées, y compris des informations temporelles, sur l'agent.

info

LOG_PATH

Emplacement du disque où les journaux sont écrits. Si ce n'est pas spécifié, les journaux sont écrits dans stderr.

Aucun

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. Vous pouvez saisir l'une des valeurs suivantes :

  • "app:env:manifest-config"

  • "file:/fully/qualified/path/to/manifest.json"

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.

true

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

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

PREFETCH_LIST

Cette variable d'environnement spécifie les données de configuration que l'agent demande AWS AppConfig dès son démarrage.

Aucun

PRELOAD_BACKUPS

S'il est défini surtrue, 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 surfalse, 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
PROXY_HEADERS Cette variable d'environnement spécifie les en-têtes requis par le proxy référencé dans la variable d'PROXY_URLenvironnement. La valeur est une liste d'en-têtes séparés par des virgules. Chaque en-tête utilise le formulaire suivant.
"header: value"
Aucun
PROXY_URL Cette variable d'environnement indique le proxy URL à utiliser pour les connexions entre l'agent AWS services et, notamment AWS AppConfig. HTTPSet HTTP URLs sont pris en charge. Aucun

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 millisecondes
ROLE_ARN Cette variable d'environnement spécifie le nom de ressource Amazon (ARN) d'un IAM rôle. AWS AppConfig L'agent assume ce rôle pour récupérer les données de configuration. Aucun
ROLE_EXTERNAL_ID Cette variable d'environnement indique l'ID externe à utiliser avec le rôle assuméARN. Aucun
ROLE_SESSION_NAME Cette variable d'environnement indique le nom de session à associer aux informations d'identification pour le IAM rôle assumé. Aucun
SERVICE_REGION Cette variable d'environnement indique une alternative Région AWS que AWS AppConfig l'agent utilise pour appeler le AWS AppConfig service. Si ce paramètre n'est pas défini, l'agent tente de déterminer la région actuelle. Si ce n'est pas le cas, l'agent ne démarre pas. Aucun

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

Récupération des données de configuration

Vous pouvez récupérer les données de configuration de AWS AppConfig l'agent à l'aide d'un appel HTTP localhost. Les exemples suivants sont utilisés curl avec un HTTP client. Vous pouvez appeler l'agent en utilisant n'importe quel HTTP client 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"