Modificación de una definición de tarea de Amazon ECS - Amazon CodeCatalyst

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.

Modificación de una definición de tarea de Amazon ECS

En esta sección se describe cómo actualizar el image campo en un archivo de definición de tareas de Amazon Elastic Container Service (Amazon ECS) mediante CodeCatalyst un flujo de trabajo. Para ello, debe añadir la acción Render Amazon ECS task definition a su flujo de trabajo. Esta acción actualiza el campo image del archivo de definición de tareas con un nombre de imagen de Docker que proporciona el flujo de trabajo en tiempo de ejecución.

nota

También puede utilizar esta acción para actualizar el campo environment de la definición de tarea con variables de entorno.

Cuándo usar esta acción

Utilice esta acción si tiene un flujo de trabajo que compile y etiquete una imagen de Docker con contenido dinámico, como un ID de confirmación o una marca de tiempo.

No utilice esta acción si el archivo de definición de tareas contiene un valor de imagen que siempre sea el mismo. En este caso, puede introducir manualmente el nombre de la imagen en el archivo de definición de tareas.

Funcionamiento de la acción Render Amazon ECS task definition

Debe utilizar la acción Render Amazon ECS task definition con las acciones build y Deploy to Amazon ECS de su flujo de trabajo. Juntas, estas acciones funcionan de la siguiente manera:

  1. La acción build crea la imagen de Docker y la etiqueta con un nombre, un identificador de confirmación, una marca de tiempo u otro contenido dinámico. Por ejemplo, la acción de compilación podría tener el siguiente aspecto:

    MyECSWorkflow Actions: BuildAction: Identifier: aws/build@v1 ... Configuration: Steps: # Build, tag, and push the Docker image... - Run: docker build -t MyDockerImage:${WorkflowSource.CommitId} . ...

    En el código anterior, la directiva docker build -t indica que se debe crear la imagen de Docker y etiquetarla con el ID de confirmación en el tiempo de ejecución de la acción. El nombre de la imagen generada podría tener este aspecto:

    MyDockerImage:a37bd7e

  2. La acción Render Amazon ECS task definition añade el nombre de la imagen generada dinámicamente, MyDockerImage:a37bd7e, al archivo de definición de tareas, de la siguiente manera:

    { "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role", "containerDefinitions": [ { "name": "codecatalyst-ecs-container", "image": MyDockerImage:a37bd7e, "essential": true, ... "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ] } ], ... }

    Opcionalmente, también puede hacer que la acción Render Amazon ECS task definition agregue variables de entorno a la definición de la tarea, de la siguiente manera:

    { "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role", "containerDefinitions": [ { "name": "codecatalyst-ecs-container", "image": MyDockerImage:a37bd7e, ... "environment": [ { name": "ECS_LOGLEVEL", value": "info" } ] } ], ... }

    Para obtener más información sobre las variables de entorno, consulte Especificación de variables de entorno en la Guía para desarrolladores de Amazon Elastic Container Service.

  3. La acción Deploy to Amazon ECS registra el archivo de definición de tareas actualizado en Amazon ECS. Al registrar el archivo de definición de tareas actualizado, se implementa la nueva imagen, MyDockerImage:a37bd7e, en Amazon ECS.

Imagen en tiempo de ejecución utilizada por la acción Render Amazon ECS task definition

La acción Render Amazon ECS task definition se ejecuta en una imagen de noviembre de 2022. Para obtener más información, consulte Imágenes activas.