>

스크립트 파일에서 AWS CLI 명령을 고려하십시오

#!/bin/bash
msgClr='\033[1;35m'
errClr='\033[1;31m'
cynClr='\033[1;36m'
NC='\033[0m'
#Read CLuster from command Args
cluster="MyCluster"
#Update Service
echo -e "${msgClr}Initiate: ${NC}Updating Service..."
serviceName=$(aws ecs list-services --cluster $cluster | jq '.serviceArns[0]')
allTaskDefs=$(aws ecs list-task-definitions | jq '.taskDefinitionArns')
taskDefLength=$(echo $allTaskDefs | jq '. | length')
latestTaskDefArn=$(echo $allTaskDefs | jq '.['`expr $taskDefLength - 1`']')
#latestTaskDef=$(echo $latestTaskDefArn | awk 'BEGIN{FS="/"}{print substr($2, 1, length($2)-1)}')
#echo -e "${msgClr}Using Task Definition: ${cynClr}"$latestTaskDef"${NC}"
echo "aws ecs update-service --cluster $cluster --task-definition $latestTaskDefArn --service $serviceName" 
$(aws ecs update-service --cluster $cluster --task-definition $latestTaskDefArn --service $serviceName)
echo -e "${msgClr}Complete: ${NC}Updating Service..."

에 실패합니다

An error occurred (InvalidParameterException) when calling the UpdateService operation: Invalid revision number. Number: aws:ecs:eu-west-1:630026061543:task-definition/ecscompose-production:33"

그러나 마지막 명령을 에코하면

$(aws ecs update-service --cluster $cluster --task-definition $latestTaskDefArn --service $serviceName)

복사하여 붙여 넣으면 원활하게 실행됩니다. 왜 그리고 내가 뭘 잘못하고 있니?

  • 답변 # 1

    모든 의견을 주셔서 감사합니다. 왜 작동하지 않는지 알았습니다.

    task-definition 인 경우bash-script파일 내에서 AWS CLI 명령이 작동하지 않는 것 같습니다  또는 service  전체 ARN(문서와 달리)입니다. task-definition 를 제거하자마자 스크립트가 작동하기 시작했습니다.  그리고 service   arn:aws:..<up to>../ 를 제거하여 이름과 개정 번호로  부분.

    작업 정의 및 서비스에 대한 전체 내용은 bash-script가 아닌 명령 프롬프트에서 작동합니다.

  • 이전 amazon web services - 기본 시작 레벨에서 AWS Cloudformation cfn-hup이 실패 함
  • 다음 Mat-Menu Angular/material2 내부의 항목 목록을 렌더링하는 방법