

Amazon CodeCatalyst는 더 이상 신규 고객에게 공개되지 않습니다. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [CodeCatalyst에서 마이그레이션하는 방법](migration.md) 단원을 참조하십시오.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon ECS 작업 정의 수정
<a name="render-ecs-action"></a>

이 섹션에서는 CodeCatalyst 워크플로를 사용하여 Amazon Elastic Container Service(Amazon ECS) [작업 정의 파일](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions)의 `image` 필드를 업데이트하는 방법을 설명합니다. 이렇게 하려면, 워크플로에 **Amazon ECS 작업 정의 렌더링** 작업을 추가해야 합니다. 이 작업은 런타임 시 워크플로에서 제공하는 Docker 이미지 이름으로 작업 정의 파일의 이미지 필드를 업데이트합니다.

**참고**  
이 작업을 사용하여 작업 정의의 `environment` 필드를 환경 변수로 업데이트할 수도 있습니다.

**Topics**
+ [이 작업을 사용해야 하는 경우](#render-ecs-action-when-to-use)
+ ['Amazon ECS 작업 정의 렌더링' 작업 작동 방식](#render-ecs-action-how-it-works)
+ ['Amazon ECS 작업 정의 렌더링' 작업에 사용되는 런타임 이미지](#render-ecs-action-runtime)
+ [예시: Amazon ECS 작업 정의 수정](render-ecs-action-example-workflow.md)
+ ['Amazon ECS 작업 정의 렌더링' 작업 추가](render-ecs-action-add.md)
+ [업데이트된 작업 정의 파일 보기](render-ecs-action-view.md)
+ ['Amazon ECS 작업 정의 렌더링' 변수](render-ecs-action-variables.md)
+ ['Amazon ECS 작업 정의 렌더링' 작업 YAML](render-ecs-action-ref.md)

## 이 작업을 사용해야 하는 경우
<a name="render-ecs-action-when-to-use"></a>

커밋 ID 또는 타임스탬프와 같은 동적 콘텐츠가 포함된 Docker 이미지를 빌드하고 태그를 지정하는 워크플로가 있는 경우 이 옵션을 사용합니다.

작업 정의 파일에 항상 동일하게 유지되는 이미지 값이 포함된 경우 이 작업을 사용하지 마세요. 이 경우 작업 정의 파일에 이미지 이름을 수동으로 입력할 수 있습니다.

## 'Amazon ECS 작업 정의 렌더링' 작업 작동 방식
<a name="render-ecs-action-how-it-works"></a>

워크플로의 **빌드** 및 **Amazon ECS에 배포** 작업과 함께 **Amazon ECS 작업 정의 렌더링** 작업을 사용해야 합니다. 이 작업들을 함께 사용하면 다음과 같이 작동합니다.

1. **빌드** 작업은 Docker 이미지를 빌드하고 이름, 커밋 ID, 타임스탬프 또는 기타 동적 콘텐츠로 태그를 지정합니다. 예를 들어 빌드 작업은 다음과 같습니다.

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

   앞의 코드에서 `docker build -t` 지시문은 Docker 이미지를 빌드하고 작업 런타임 시 커밋 ID로 태그를 지정하도록 나타냅니다. 생성된 이미지 이름은 다음과 같을 수 있습니다.

   `MyDockerImage:a37bd7e`

1. **렌더링 Amazon ECS 작업 정의** 작업은 다음과 같이 동적으로 생성된 이미지 이름 `MyDockerImage:a37bd7e`를 작업 정의 파일에 추가합니다.

   ```
   {
       "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
                   }
               ]
           }
       ],
   ...
   }
   ```

   필요에 따라 **렌더링 Amazon ECS 작업 정의** 작업에서 다음과 같은 환경 변수를 작업 정의에 추가하도록 할 수도 있습니다.

   ```
   {
     "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"
           }
         ]
       }
     ],
   ...
   }
   ```

   자세한 내용을 알아보려면 *Amazon Elastic Container Service 개발자 안내서*의 [환경 변수 지정](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)을 참조하세요.

1. **Amazon ECS에 배포** 작업은 업데이트된 작업 정의 파일을 Amazon ECS에 등록합니다. 업데이트된 작업 정의 파일을 등록하면 새 이미지 `MyDockerImage:a37bd7e`가 Amazon ECS에 배포됩니다.

## 'Amazon ECS 작업 정의 렌더링' 작업에 사용되는 런타임 이미지
<a name="render-ecs-action-runtime"></a>

**Amazon ECS 작업 정의 렌더링** 작업은 [2022년 11월 이미지](build-images.md#build.previous-image)에서 실행됩니다. 자세한 내용은 [활성 이미지](build-images.md#build-curated-images) 단원을 참조하십시오.