升级了函数计算FC3.0,在deploy 时候不push docker image,如何解决?查询文档无果。麻烦给指点下如何设置。报错内容如下:
Error Message:
InvalidArgument: code: 400, failed to optimization image due to: Image not stored in ACR is not supported yet, please make sure specified image exists in any your ACR repository or
it's valid: acrRequestId: , ErrorMessage: {"code":"IMAGE_NOT_EXIST","message":"repo image is not exist."}; imageName=registry.cn-beijing.aliyuncs.com/ai_services/ai-base:fc-face-verification-v1 request id: 1-660a4253-137c40b1-ae82d527f1d7
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的报错信息和知识库资料,问题的核心在于函数计算FC3.0在部署时要求容器镜像必须存储在阿里云容器镜像服务(ACR)中。如果镜像未推送到ACR仓库,部署会失败并返回类似IMAGE_NOT_EXIST
的错误。以下是解决该问题的详细步骤:
错误原因:
Image not stored in ACR is not supported yet
,即函数计算FC3.0目前仅支持从ACR拉取镜像。registry.cn-beijing.aliyuncs.com/ai_services/ai-base:fc-face-verification-v1
未正确存储在ACR中,或者镜像名称、标签有误。限制说明:
registry.cn-beijing.aliyuncs.com/ai_services/ai-base:fc-face-verification-v1
是否已成功推送至ACR。
登录ACR
使用以下命令登录ACR:
docker login --username=<您的ACR用户名> registry.cn-beijing.aliyuncs.com
<您的ACR用户名>
通常为阿里云账号的RAM用户或主账号名称。构建镜像
在项目根目录下执行以下命令构建镜像:
IMAGE_NAME=registry.cn-beijing.aliyuncs.com/ai_services/ai-base:fc-face-verification-v1
docker build -t $IMAGE_NAME .
推送镜像
构建完成后,将镜像推送到ACR:
docker push $IMAGE_NAME
验证镜像
推送完成后,再次登录ACR控制台,确认镜像已成功上传。
创建函数
在函数计算控制台中创建函数时,选择容器镜像方式,并完成以下配置:
registry.cn-beijing.aliyuncs.com/ai_services/ai-base:fc-face-verification-v1
。更新函数(如已有函数)
如果您需要更新现有函数的镜像配置,可以使用UpdateFunction
接口:
PUT /2023-03-30/functions/{functionName} HTTP/1.1
functionName
:目标函数名称。body
:包含customContainerConfig
字段,指定新的镜像地址。示例请求体:
{
"customContainerConfig": {
"image": "registry.cn-beijing.aliyuncs.com/ai_services/ai-base:fc-face-verification-v1",
"port": 9000
}
}
AliyunContainerRegistryReadOnlyAccess
权限。通过以上步骤,您可以解决因镜像未存储在ACR而导致的部署失败问题。如果仍有疑问,请提供更多上下文信息以便进一步排查。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。
你好,我是AI助理
可以解答问题、推荐解决方案等