Especificación de variables de entorno - Amazon Elastic Container Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Especificación de variables de entorno

Las variables de entorno se pueden transferir a sus contenedores de las siguientes maneras:

  • Individualmente con el parámetro de definición de contenedor environment Se asigna a la opción --env de docker run.

  • En bloque, mediante el parámetro de definición de contenedor de environmentFiles para enumerar uno o más archivos que contienen las variables de entorno. El archivo debe estar alojado en Amazon S3. Se asigna a la opción --env-file de docker run.

La especificación de variables de entorno en un archivo permite insertar variables de entorno en bloque en lugar de especificarlas individualmente. En la definición de contenedor, especifique el objeto environmentFiles con una lista de buckets de Amazon S3 con los archivos de variables de entorno. Los archivos deben utilizar una extensión de archivo .env y hay un límite de diez archivos por definición de tarea.

A continuación, se presenta un fragmento de una definición de tarea que muestra cómo especificar variables de entorno individuales.

{ "family": "", "containerDefinitions": [ { "name": "", "image": "", ... "environment": [ { "name": "variable", "value": "value" } ], ... } ], ... }

A continuación, se presenta un fragmento de una definición de tarea que muestra cómo especificar un archivo de variable de entorno.

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

Consideraciones para especificar archivos de variables de entorno

Se debe tener en cuenta lo siguiente al especificar un archivo de variable de entorno en una definición de contenedor.

  • Para las tareas de Amazon ECS en Amazon EC2, las instancias de contenedor requieren la versión 1.39.0 o posterior del agente de contenedor para utilizar esta característica. Para obtener información sobre la comprobación de la versión del agente y la actualización a la versión más reciente, consulte Actualizar el agente de contenedor de Amazon ECS.

  • Para las tareas de Amazon ECS en AWS Fargate, las tareas deben utilizar la versión de la plataforma 1.4.0 o posterior para utilizar esta característica. Para obtener más información, consulte AWS Fargate versiones de plataforma.

  • El archivo debe usar la extensión de archivo .env y la codificación UTF-8.

  • Cada línea de un archivo de entorno debe contener una variable de entorno con el formato VARIABLE=VALUE Los espacios o las comillas se incluyen como parte de los valores. Las líneas que comienzan por # se tratan como comentarios y se ignoran. Para obtener más información acerca de la sintaxis del archivo de variables de entorno, consulte Declarar variables de entorno predeterminadas en el archivo.

    A continuación, se presenta un ejemplo que muestra la sintaxis que debe utilizarse.

    #This is a comment and will be ignored VARIABLE=VALUE ENVIRONMENT=PRODUCTION
  • Si hay variables de entorno especificadas mediante el parámetro environment en una definición de contenedor, tienen prioridad sobre las variables incluidas en un archivo de entorno.

  • Si se especifican varios archivos de entorno que contienen la misma variable, se procesan en orden descendente. Recomendamos que utilice nombres de variable únicos.

  • Si se especifica un archivo de entorno como anulación del contenedor, se utiliza y se ignora cualquier otro archivo de entorno especificado en una definición de contenedor.

Permisos de IAM necesarios

Se requiere la función de ejecución de tareas de Amazon ECS para utilizar esta característica. De este modo el agente de contenedor puede extraer el archivo de variables de entorno de Amazon S3. Para obtener más información, consulte Amazon ECS ejecución de tareas IAM función.

Para proporcionar acceso a los objetos de Amazon S3 que cree, agregue manualmente los siguientes permisos como una política insertada al rol de ejecución de tareas. Utilice el parámetro Resource para asignar el permiso a los buckets de Amazon S3 que contienen los archivos de variables de entorno. Para obtener más información, consulte Adición y eliminación de políticas de IAM.

  • s3:GetObject

  • s3:GetBucketLocation

Se muestra un ejemplo de política insertada que añade los permisos.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::examplebucket/folder_name/env_file_name" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::examplebucket" ] } ] }