Transmettre des variables d'environnement à un conteneur Amazon ECS - Amazon Elastic Container Service

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.

Transmettre des variables d'environnement à un conteneur Amazon ECS

Important

Nous vous recommandons de stocker vos données sensibles soit dans des AWS Secrets Manager secrets, soit dans des paramètres AWS Systems Manager Parameter Store. Pour de plus amples informations, veuillez consulter Transférer des données sensibles vers un conteneur Amazon ECS.

Les fichiers de variables d'environnement sont des objets dans Simple Storage Service (Amazon S3) et toutes les considérations de sécurité Simple Storage Service (Amazon S3) s'appliquent.

Vous ne pouvez pas utiliser le environmentFiles paramètre sur les conteneurs Windows ni sur les conteneurs Windows sur Fargate.

Vous pouvez créer un fichier de variables d'environnement et le stocker dans Amazon S3 pour transmettre des variables d'environnement à votre conteneur.

En spécifiant des variables d'environnement dans un fichier, vous pouvez injecter en bloc des variables d'environnement. Dans votre définition de conteneur, spécifiez l'objet environmentFiles avec une liste de compartiments Amazon S3 contenant vos fichiers de variables d'environnement.

Amazon ECS n'impose pas de limite de taille aux variables d'environnement, mais un fichier de variables d'environnement volumineux peut occuper l'espace disque. Chaque tâche qui utilise un fichier de variables d'environnement entraîne le téléchargement d'une copie du fichier sur le disque. Amazon ECS supprime le fichier dans le cadre du nettoyage des tâches.

Pour plus d'informations sur les variables d'environnement prises en charge, veuillez consulter Paramètres de définition de conteneur avancés - Environnement.

Tenez compte des éléments suivants lors de la spécification d'un fichier de variable d'environnement dans une définition de conteneur.

  • Pour les tâches Amazon ECS sur Amazon EC2, vos instances de conteneur nécessitent que l'agent de conteneur soit une version 1.39.0 ou une version ultérieure pour utiliser cette fonctionnalité. Pour plus d'informations sur la vérification de la version de votre agent et la mise à jour à la dernière version, consultez Mise à jour de l'agent de conteneur Amazon ECS.

  • Pour les tâches Amazon ECS sur AWS Fargate, vos tâches doivent utiliser la version de plate-forme ou une 1.4.0 version ultérieure (Linux) pour utiliser cette fonctionnalité. Pour de plus amples informations, veuillez consulter Versions de la plateforme Fargate pour Amazon ECS.

    Vérifiez que la variable est prise en charge par la plateforme du système d'exploitation. Pour plus d’informations, consultez Définitions de conteneur et Autres paramètres de définition de tâche.

  • Le fichier doit utiliser l'extension de fichier .env et l'encodage UTF-8.

  • Le rôle d'exécution des tâches est requis pour utiliser cette fonctionnalité avec les autorisations supplémentaires pour Amazon S3. Cela permet à l'agent de conteneur d'extraire le fichier de variable d'environnement à partir d'Amazon S3. Pour de plus amples informations, veuillez consulter Rôle IAM d'exécution de tâche Amazon ECS.

  • Il y a une limite de 10 fichiers par définition de tâche.

  • Chaque ligne d'un fichier d'environnement doit contenir une variable d'environnement au format VARIABLE=VALUE. Des espaces ou des guillemets sont inclus dans les valeurs pour les fichiers Amazon ECS. Les lignes commençant par # sont traitées comme des commentaires et sont ignorées. Pour plus d'informations sur la syntaxe des fichiers de variables d'environnement, consultez la section Définir les variables d'environnement (-e, --env, --env-file) dans la documentation. Docker

    Voici la syntaxe appropriée.

    #This is a comment and will be ignored VARIABLE=VALUE ENVIRONMENT=PRODUCTION
  • Si des variables d'environnement sont spécifiées à l'aide du paramètre environment dans une définition de conteneur, elles ont priorité sur les variables contenues dans un fichier d'environnement.

  • Si plusieurs fichiers d'environnement contenant la même variable sont spécifiés, ils sont traités par ordre d'entrée. Cela signifie que la première valeur de la variable est utilisée et que les valeurs suivantes des variables dupliquées sont ignorées. Nous vous recommandons d'utiliser des noms de variables uniques.

  • Si un fichier d'environnement est spécifié en tant que remplacement de conteneur, il est utilisé. De plus, tous les autres fichiers d'environnement spécifiés dans la définition du conteneur sont ignorés.

  • Les règles suivantes s'appliquent au type de lancement Fargate :

    • Le fichier est géré de la même manière qu'un fichier d'environnement Docker natif.

    • Les définitions de conteneur qui font référence à des variables d'environnement vides et stockées dans Amazon S3 n'apparaissent pas dans le conteneur.

    • La gestion de l'échappement dans shell n'est pas prise en charge.

    • Le point d'entrée du conteneur interprète les valeurs VARIABLE.

exemple

Voici un extrait d'une définition de tâche indiquant comment spécifier un fichier de variable d'environnement.

{ "family": "", "containerDefinitions": [ { "name": "", "image": "", ... "environmentFiles": [ { "value": "arn:aws:s3:::amzn-s3-demo-bucket/envfile_object_name.env", "type": "s3" } ], ... } ], ... }