AWS CLI로 ECS 작업 개정을 업데이트하는 방법

2635 단어 ecsawsdockerfargate
ECS 작업 이미지 버전 업데이트는 AWS 웹 UI로 이동하지 않는 경우 가장 쉬운 작업이 아닙니다. 또한 AWS CLI에서 이를 수행하기 위한 직접적인 코드가 없습니다. 그래서 큰 노력 없이 이 작업을 수행할 수 있도록 지원하는 다음 코드를 생각해 냈습니다.

유일한 전제 조건은 다음과 같습니다.
  • WSL2(Ubuntu에서만 테스트함), Linux 또는 macOS가 있는 머신.
  • jq를 설치합니다(sudo apt-get install jq).
  • 다음 스크립트를 사용하여 .sh 파일을 만듭니다.

  • TASK_NAME=task_name
    SERVICE_NAME=service_name
    IMAGE_NAME=image_name
    CLUSTER_NAME=cluster_name
    REGION=region
    VERSION=version
    ACCOUNT_NUMBER=account_number
    
    NEW_IMAGE=$ACCOUNT_NUMBER.dkr.ecr.$REGION.amazonaws.com/$IMAGE_NAME:$VERSION
    TASK_DEFINITION=$(aws ecs describe-task-definition --task-definition "$TASK_NAME" --region "$REGION")
    NEW_TASK_DEFINITION=$(echo $TASK_DEFINITION | jq --arg IMAGE "$NEW_IMAGE" '.taskDefinition | .containerDefinitions[0].image = $IMAGE | del(.taskDefinitionArn) | del(.revision) | del(.status) | del(.requiresAttributes) | del(.compatibilities) | del(.registeredAt) | del(.registeredBy)')
    NEW_REVISION=$(aws ecs register-task-definition --region "$REGION" --cli-input-json "$NEW_TASK_DEFINITION")
    NEW_REVISION_DATA=$(echo $NEW_REVISION | jq '.taskDefinition.revision')
    
    NEW_SERVICE=$(aws ecs update-service --cluster $CLUSTER_NAME --service $SERVICE_NAME --task-definition $TASK_NAME --force-new-deployment)
    
    echo "done"
    echo "${TASK_NAME}, Revision: ${NEW_REVISION_DATA}"
    


    그런 다음 환경 변수를 업데이트해야 합니다.

  • TASK_NAME=작업_이름

  • SERVICE_NAME=service_name

  • IMAGE_NAME=이미지_이름

  • CLUSTER_NAME=클러스터_이름

  • REGION=지역

  • 버전=버전

  • ACCOUNT_NUMBER=계정_번호

  • 그런 다음 ./update_task.sh와 같이 .sh를 실행합니다. 그게 다야!

    나를 팔로우하세요:




    링크드인
    유튜브
    인스 타 그램
    사이버 예언자
    당신의 이야기를 공유








    좋은 웹페이지 즐겨찾기