遇到InvalidARN错误:如何获取有效的ECR镜像ARN?
解决ECR镜像TagResource的Invalid ARN错误
你的问题出在ECR镜像ARN的格式构造错误,ECR镜像的ARN有固定结构,你当前的写法不符合AWS的规范,导致参数验证失败。
正确的ECR镜像ARN格式
ECR镜像的ARN结构为:
arn:aws:ecr:<region>:<account-id>:repository/<repository-name>/image/<image-digest>
你之前用的image/{repository_name}@{image_digest}是错误的,需要调整为repository/{repository_name}/image/{image_digest},并且不需要@符号,直接拼接完整的镜像摘要值(如sha256:abcdef123456...格式)。
方法一:手动修正ARN构造
直接调整resourceArn的生成代码:
response = ecr.tag_resource( resourceArn=f'arn:aws:ecr:{region_name}:{account_id}:repository/{repository_name}/image/{image_digest}', tags=[{'Key': 'tag-key', 'Value': image_tag}] )
注意:确保image_digest是完整的镜像摘要,region、账号ID、仓库名也必须是正确的有效值。
方法二:通过API获取正确ARN(更可靠)
如果担心手动构造出错,可以调用describe_images接口直接获取镜像的官方ARN,再用于打标签:
# 先获取镜像详情,包含正确ARN image_info = ecr.describe_images( repositoryName=repository_name, imageIds=[{'imageDigest': image_digest}] ) # 提取镜像ARN valid_image_arn = image_info['imageDetails'][0]['imageArn'] # 使用正确ARN打标签 response = ecr.tag_resource( resourceArn=valid_image_arn, tags=[{'Key': 'tag-key', 'Value': image_tag}] )
这种方式完全避免手动构造的格式问题,推荐使用。
内容的提问来源于stack exchange,提问作者Shubham Shrivastava
相关产品推荐
相关产品推荐

