检查任务是否存在- AWS ECS



如何从cli或使用shell脚本检查任务是否存在?

文档令人困惑。正在使用——task-definition选项作为族。

的命令
TASK=$(aws ecs describe-task-definition --task-definition ${TASK_NAME}

错误提示

An error occurred (ClientException) when calling the DescribeTaskDefinition operation: Unable to describe task definition.

任何想法?

这有帮助吗?

#!/bin/bash
ecs_arn=$1
aws_result=$(aws ecs describe-task-definition --task-definition "$ecs_arn" --query 'taskDefinition.[taskDefinitionArn,status]' --output json 2>/dev/null)
# is it present?
if [ $(echo "$aws_result" | grep -i "$ecs_arn" | wc -l) -ne 1 ]; then
echo "task-definition $ecs_arn doesn't exist."
elif [ $(echo "$aws_result" | grep -i active | wc -l) -ne 1 ]; then
echo "task-definition $ecs_arn exist but not active."
else
echo "task-definition $ecs_arn exist and it's active."
fi
# end

保存为bash脚本,并执行如下命令:

./script.sh "arn:aws:ecs:REGION-HERE:ACCOUNT-NAME:............."

你可以提取所有的定义arn:

aws ecs list-task-definitions

我将std错误重定向到/dev/null,因为当任务不存在时,api会返回类似您的错误。

您可以根据自己的情况修改验证。

使用文档:https://docs.aws.amazon.com/cli/latest/reference/ecs/index.html

这个应该在Jenkinsfile脚本中工作。在我的案例中,我只想确认任务描述是否存在,没有其他任何内容。

int taskCount = sh(script: """aws ecs describe-task-definition --task-definition ${ECS_TASK_NAME} --region ${AWS_REGION} --output text | grep -i ${ECS_TASK_NAME} | wc -l""", returnStdout: true).trim().toInteger()
if (taskCount > 0) {
//Task definition exists
}else {
//Task definition does not exist
}

相关内容

  • 没有找到相关文章

最新更新