

Amazon ya no CodeCatalyst está abierto a nuevos clientes. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cómo migrar desde CodeCatalyst](migration.md).

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
<a name="render-ecs-action"></a>

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)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) 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.

**Topics**
+ [Cuándo usar esta acción](#render-ecs-action-when-to-use)
+ [Funcionamiento de la acción Render Amazon ECS task definition](#render-ecs-action-how-it-works)
+ [Imagen en tiempo de ejecución utilizada por la acción Render Amazon ECS task definition](#render-ecs-action-runtime)
+ [Ejemplo: Modificación de una taskdef de Amazon ECS](render-ecs-action-example-workflow.md)
+ [Cómo añadir la acción Render Amazon ECS task definition](render-ecs-action-add.md)
+ [Visualización del archivo de definición de tareas actualizado](render-ecs-action-view.md)
+ [Variables de Render Amazon ECS task definition](render-ecs-action-variables.md)
+ [Acción Render Amazon ECS task definition en YAML](render-ecs-action-ref.md)

## Cuándo usar esta acción
<a name="render-ecs-action-when-to-use"></a>

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
<a name="render-ecs-action-how-it-works"></a>

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`

1. 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

1. 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
<a name="render-ecs-action-runtime"></a>

La acción **Render Amazon ECS task definition** se ejecuta en una [imagen de noviembre de 2022](build-images.md#build.previous-image). Para obtener más información, consulte [Imágenes activas](build-images.md#build-curated-images).