You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过URI使用AWS CLI检查AWS ECR镜像是否存在?求脚本方案

用AWS CLI通过URI检查ECR镜像是否存在的脚本方案

ECR镜像URI的格式为<账号ID>.dkr.ecr.<区域>.amazonaws.com/<仓库名>:<镜像标签>,我们可以通过解析URI提取关键信息,再配合AWS CLI的describe-images命令来检查镜像是否存在。

以下是一个bash脚本示例:

#!/bin/bash

# 传入要检查的镜像URI
IMAGE_URI="$1"

# 解析URI的各个部分
# 提取账号ID和区域部分
ACCOUNT_REGION=$(echo "$IMAGE_URI" | cut -d'.' -f1,3)
ACCOUNT_ID=$(echo "$ACCOUNT_REGION" | cut -d'.' -f1)
REGION=$(echo "$ACCOUNT_REGION" | cut -d'.' -f2)

# 提取仓库名和镜像标签
REPO_TAG=$(echo "$IMAGE_URI" | cut -d'/' -f2)
REPO_NAME=$(echo "$REPO_TAG" | cut -d':' -f1)
IMAGE_TAG=$(echo "$REPO_TAG" | cut -d':' -f2)

# 使用AWS CLI检查镜像是否存在
aws ecr describe-images \
    --region "$REGION" \
    --repository-name "$REPO_NAME" \
    --image-ids imageTag="$IMAGE_TAG" \
    --query 'imageDetails[0].imageTags' \
    --output text > /dev/null 2>&1

# 根据命令返回值判断结果
if [ $? -eq 0 ]; then
    echo "镜像 $IMAGE_URI 存在于ECR中"
else
    echo "镜像 $IMAGE_URI 不存在于ECR中"
fi

使用说明

  • 将上述脚本保存为check_ecr_image.sh,并赋予执行权限:chmod +x check_ecr_image.sh
  • 运行脚本时传入镜像URI作为参数:./check_ecr_image.sh xxxxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/ai-api:2022-08-25T23-10-58-main

脚本逻辑说明

  1. 从传入的URI中拆分出AWS账号ID、区域、ECR仓库名和镜像标签
  2. 调用aws ecr describe-images命令,使用提取出的参数查询镜像
  3. 通过命令的退出码判断查询是否成功:退出码为0表示镜像存在,非0则表示不存在(包括仓库不存在、标签不存在等情况)

内容的提问来源于stack exchange,提问作者Jiaqi Zhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:55:14