使用Boto3调用ecr-public接口返回InternalFailure错误如何解决
问题原因
该报错的核心触发点是ECR Public的API端点限制:Amazon ECR Public为全球统一服务,所有API调用必须指向us-east-1区域的服务端点,若Boto3默认配置的区域非us-east-1,即使账号拥有全权限,也会返回无明确错误信息的InternalFailure响应。
解决方案
初始化ecr-public客户端时,显式传入region_name='us-east-1'参数即可,修改后代码示例:
import boto3 # 必须显式指定us-east-1区域 client = boto3.client('ecr-public', region_name='us-east-1') # 后续接口调用将恢复正常 client.get_authorization_token() client.create_repository(repositoryName="test-project")
补充说明
普通私有ECR为区域级服务,各区域都有独立服务端点,因此你使用默认区域初始化ecr客户端可以正常运行,二者服务架构存在差异。
内容的提问来源于stack exchange,提问作者Geoff
相关产品推荐
相关产品推荐

