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

Vertex AI自定义容器部署为端点失败排查求助

Vertex AI自定义容器部署为端点失败排查求助

看起来你遇到的问题是本地能正常运行Docker镜像,但部署到Vertex AI端点时却失败,还没法从日志里找到头绪——这种情况大多是因为你的自定义容器不符合Vertex AI的服务规范,我帮你一步步拆解问题:

核心问题:你的容器没有提供Vertex AI要求的HTTP服务

Vertex AI的自定义容器部署,不是让你直接运行预测函数,而是要求容器启动后能持续监听HTTP请求,接收来自Vertex AI的预测调用(默认是/predict路径的POST请求)。你当前的代码和Docker配置只是直接执行了一次预测函数就退出了,Vertex AI根本没法和你的容器建立通信,自然会部署失败。

具体修改方案

1. 重构predict.py,添加HTTP服务逻辑

用Flask搭建一个简单的Web服务,适配Vertex AI的标准请求格式:

import numpy as np
from flask import Flask, request, jsonify

app = Flask(__name__)

# 保留你的原有预测逻辑
def predict(data):
    print(data)
    results = [3,4,5,6]
    results_array = np.array(results)
    return {"predictions": results_array.tolist()}

# 实现Vertex AI要求的/predict端点
@app.route('/predict', methods=['POST'])
def predict_endpoint():
    try:
        # 读取Vertex AI标准请求格式(包含'instances'字段)
        request_data = request.get_json()
        instances = request_data.get('instances', [])
        
        # 执行预测并返回标准格式结果
        prediction_result = predict(instances)
        return jsonify(prediction_result)
    except Exception as e:
        # 错误处理,方便后续排查问题
        return jsonify({"error": str(e)}), 500

if __name__ == '__main__':
    # 监听0.0.0.0允许外部访问,端口用Vertex AI默认的8080
    app.run(host='0.0.0.0', port=8080)

2. 更新requirements.txt,添加Web框架依赖

把Flask加进去,确保容器能安装必要的运行依赖:

numpy
flask

3. 调整Dockerfile(可选,生产环境建议优化)

你的Dockerfile基础逻辑没问题,修改后predict.py的启动方式已经符合要求,不过生产环境建议用Gunicorn替代Flask开发服务器,这里先保留原CMD用于测试:

FROM python:3.10

WORKDIR /code

COPY requirements.txt requirements.txt
COPY model.pkl model.pkl

RUN pip install --upgrade pip
RUN pip install -r requirements.txt

COPY . .

# 开发环境用Flask开发服务器,生产环境可替换为Gunicorn
CMD ["python3", "predict.py"]

本地测试验证修改

在重新构建镜像并推送到GCP之前,先本地验证容器的HTTP服务是否正常:

  1. 构建镜像:docker build -t vertex-test .
  2. 运行容器:docker run -p 8080:8080 vertex-test
  3. 用curl发送测试请求:
curl -X POST http://localhost:8080/predict -H "Content-Type: application/json" -d '{"instances": [3,4,6]}'

如果能收到{"predictions": [3,4,5,6]}的响应,说明服务逻辑没问题。

其他排查点

  • 确保镜像已经推送到GCP的Artifact Registry或Container Registry,且Vertex AI的服务账号有读取该镜像的权限
  • 部署失败后,去GCP控制台的端点页面查看容器日志(不是部署脚本的日志),里面会有容器启动或运行时的详细错误信息
  • 机器类型n1-standard-4没问题,如果你的模型很小,也可以试试更小的机器(比如n1-standard-2),不过这一般不是核心问题

按照上面的步骤修改后,应该就能顺利部署端点了。

备注:内容来源于stack exchange,提问作者vishal suryavanshi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 11:28:12