使用基于 Private Service Connect 的专用私有端点进行在线推理

借助 Private Service Connect,您可以从多个使用方项目和 VPC 网络安全地访问 Vertex AI 在线推理服务,而无需设置公共 IP 地址、公共互联网访问权限或明确对等互连的内部 IP 地址范围。

对于有以下要求的在线推理应用场景,我们建议使用 Private Service Connect:

  • 要求使用安全的专用连接
  • 要求低延迟
  • 无需可供公开访问

Private Service Connect 使用 VPC 网络中的转发规则将流量单向发送到 Vertex AI 在线推理服务。转发规则会连接到一个服务连接,该服务连接可将 Vertex AI 服务公开给您的 VPC 网络。如需了解详情,请参阅关于通过 Private Service Connect 访问 Vertex AI 服务。 如需详细了解如何设置 Private Service Connect,请参阅虚拟私有云 (VPC) 文档中的 Private Service Connect 概览

专用端点同时支持 HTTP 和 gRPC 通信协议。对于 gRPC 请求,必须包含 x-vertex-ai-endpoint-id 标头,以便正确识别端点。支持以下 API:

  • 预测
  • RawPredict
  • StreamRawPredict
  • Chat Completion(仅限 Model Garden)

您可以使用 Vertex AI SDK for Python 向专用端点发送在线推理请求。如需了解详情,请参阅获取在线推理结果

所需的角色

如需获得创建 Private Service Connect 端点所需的权限,请让您的管理员为您授予项目的 Vertex AI User (roles/aiplatform.user) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含创建 Private Service Connect 端点所需的 aiplatform.endpoints.create 权限。

您也可以使用自定义角色或其他预定义角色来获取此权限。

如需详细了解 Vertex AI 角色和权限,请参阅使用 IAM 进行 Vertex AI 访问权限控制Vertex AI IAM 权限

创建在线推理端点

使用以下任一方法创建启用了 Private Service Connect 的在线推理端点。

Private Service Connect 端点的默认请求超时时间为 10 分钟。在 Vertex AI SDK for Python 中,您可以根据需要指定新的 inference_timeout 值来指定其他请求超时时间,如以下示例所示。最长超时时间值为 3600 秒(1 小时)。

控制台

  1. 在 Google Cloud 控制台的 Vertex AI 部分中,前往在线预测页面。

    转到在线预测

  2. 点击创建

  3. 为端点提供一个显示名称。

  4. 选择 专用

  5. 选择 Private Service Connect

  6. 点击选择项目 ID

  7. 选择要添加到端点许可名单的项目。

  8. 点击继续

  9. 选择模型规范。如需了解详情,请参阅将模型部署到端点

  10. 点击创建以创建端点并将模型部署到该端点。

  11. 记下响应中的端点 ID。

API

REST

在使用任何请求数据之前,请先进行以下替换:

  • VERTEX_AI_PROJECT_ID:要在其中创建在线预测端点的 Google Cloud 项目的 ID。
  • REGION:要在其中使用 Vertex AI 的区域。
  • VERTEX_AI_ENDPOINT_NAME:在线预测端点的显示名称。
  • ALLOWED_PROJECTS:以英文逗号分隔的 Google Cloud 项目 ID 的列表,每个项目 ID 都用英文引号括起来,例如 ["PROJECTID1", "PROJECTID2"]。 如果某个项目未包含在此列表中,您将无法从该项目向 Vertex AI 端点发送预测请求。请务必在此列表中添加 VERTEX_AI_PROJECT_ID,以便您能够从端点所在的同一项目中调用该端点。
  • INFERENCE_TIMEOUT_SECS:(可选)可选 inferenceTimeout 字段中的秒数。

HTTP 方法和网址:

POST https://REGION-aiplatform.googleapis.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints

请求 JSON 正文:

{
  "displayName": "VERTEX_AI_ENDPOINT_NAME",
  "privateServiceConnectConfig": {
    "enablePrivateServiceConnect": true,
    "projectAllowlist": ["ALLOWED_PROJECTS"],
    "clientConnectionConfig": {
      "inferenceTimeout": {
        "seconds": INFERENCE_TIMEOUT_SECS
      }
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/VERTEX_AI_PROJECT_NUMBER/locations/REGION/endpoints/ENDPOINT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata",
    "genericMetadata": {
      "createTime": "2020-11-05T17:45:42.812656Z",
      "updateTime": "2020-11-05T17:45:42.812656Z"
    }
  }
}
记下 ENDPOINT_ID

Python

在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Python 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Python API 参考文档

如需向 Vertex AI 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证

替换以下内容:

  • VERTEX_AI_PROJECT_ID:要在其中创建在线推理端点的 Google Cloud 项目的 ID
  • REGION:要在其中使用 Vertex AI 的区域
  • VERTEX_AI_ENDPOINT_NAME:在线推理端点的显示名称
  • ALLOWED_PROJECTS:以英文逗号分隔的 Google Cloud项目 ID 的列表,每个项目 ID 都用英文引号括起来。例如 ["PROJECTID1", "PROJECTID2"]。 如果某个项目未包含在此列表中,您将无法从该项目向 Vertex AI 端点发送推理请求。请务必在此列表中添加 VERTEX_AI_PROJECT_ID,以便您可以从端点所在的同一项目中调用该端点。
  • INFERENCE_TIMEOUT_SECS:(可选)可选 inference_timeout 值中的秒数。
PROJECT_ID = "VERTEX_AI_PROJECT_ID"
REGION = "REGION"
VERTEX_AI_ENDPOINT_NAME = "VERTEX_AI_ENDPOINT_NAME"
INFERENCE_TIMEOUT_SECS = "INFERENCE_TIMEOUT_SECS"

from google.cloud import aiplatform

aiplatform.init(project=PROJECT_ID, location=REGION)

# Create the forwarding rule in the consumer project
psc_endpoint = aiplatform.PrivateEndpoint.create(
display_name=VERTEX_AI_ENDPOINT_NAME,
project=PROJECT_ID,
location=REGION,
private_service_connect_config=aiplatform.PrivateEndpoint.PrivateServiceConnectConfig(
    project_allowlist=["ALLOWED_PROJECTS"],
    ),
inference_timeout=INFERENCE_TIMEOUT_SECS,
)

记下返回的端点 URI 末尾的 ENDPOINT_ID

INFO:google.cloud.aiplatform.models:To use this PrivateEndpoint in another session:
INFO:google.cloud.aiplatform.models:endpoint = aiplatform.PrivateEndpoint('projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID')

使用 PSC 自动化功能创建在线推理端点(预览版)

在线推理服务与服务连接自动化功能相集成,可让您通过 PSC 自动化功能配置推理端点。此方法可自动创建 PSC 端点,从而简化流程,尤其适合没有权限在项目中创建转发规则等网络资源的机器学习开发者使用。

首先,网络管理员必须建立服务连接政策。每个项目和网络只需配置该政策一次,即可授权 Vertex AI(服务类 gcp-vertexai)在相应项目和网络中生成 PSC 端点。

接下来,您便可以使用 PSC 自动化配置创建端点,然后部署您的模型。部署完成后,您可以在端点中查看相关的 PSC 端点信息。

限制

  • 不支持 VPC Service Controls。
  • PSC 自动化配置的区域级上限为 500 个端点。
  • 如果没有模型已部署到端点或正在部署到端点,系统会清除相应的 PSC 自动化结果。完成清理并在之后部署模型后,新的自动化结果会采用不同的 IP 地址和转发规则。

创建服务连接政策

您必须是网络管理员才能创建服务连接政策。 必须创建服务连接政策才能授权 Vertex AI 在您的网络中创建 PSC 端点。如果没有有效的政策,自动化操作会失败并显示 CONNECTION_POLICY_MISSING 错误。

  1. 创建服务连接政策。

    • POLICY_NAME:用户指定的政策名称。
    • PROJECT_ID:要在其中创建 Vertex AI 资源的服务项目的 ID。

    • VPC_PROJECT:您的客户端 VPC 所在的项目的 ID。 对于单个 VPC 设置,该项目与 $PROJECT 相同。对于共享 VPC 设置,这是 VPC 宿主项目。

    • NETWORK_NAME:要部署到的网络的名称。

    • REGION:网络所在的区域。

    • PSC_SUBNETS:要使用的 Private Service Connect 子网。

    gcloud network-connectivity service-connection-policies create POLICY_NAME \
        --project=VPC_PROJECT \
        --network=projects/PROJECT_ID/global/networks/NETWORK_NAME \
        --service-class=gcp-vertexai --region=REGION --subnets=PSC_SUBNETS
    
  2. 查看服务连接政策。

    gcloud network-connectivity service-connection-policies list \
        --project=VPC_PROJECT -region=REGION

    对于单个 VPC 设置,如以下示例所示:

        gcloud network-connectivity service-connection-policies create test-policy \
            --network=default \
            --project=YOUR_PROJECT_ID \
            --region=us-central1 \
            --service-class=gcp-vertexai \
            --subnets=default \
            --psc-connection-limit=500 \
            --description=test

使用 PSC 自动化配置创建在线推理端点

检查 PSCAutomationConfig 以确保 projectId 在许可名单中。

REST

在使用任何请求数据之前,请先进行以下替换:

  • REGION:要在其中使用 Vertex AI 的区域。
  • VERTEX_AI_PROJECT_ID:要在其中创建在线推理端点的 Google Cloud 项目的 ID。
  • VERTEX_AI_ENDPOINT_NAME:在线预测端点的显示名称。
  • NETWORK_NAME:完整资源名称,包括项目 ID,而不是项目编号。

HTTP 方法和网址:

POST https://REGION-aiplatform.googleapis.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints

请求 JSON 正文:

{
  {
    displayName: "VERTEX_AI_ENDPOINT_NAME",
    privateServiceConnectConfig: {
      enablePrivateServiceConnect: true,
      projectAllowlist: ["VERTEX_AI_PROJECT_ID"],
      pscAutomationConfigs: [
        { "project_id": "VERTEX_AI_PROJECT_ID", "network": "projects/VERTEX_AI_PROJECT_ID/global/networks/NETWORK_NAME" },
      ],
    },
  },

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/VERTEX_AI_PROJECT_NUMBER/locations/REGION/endpoints/ENDPOINT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata",
    "genericMetadata": {
      "createTime": "2020-11-05T17:45:42.812656Z",
      "updateTime": "2020-11-05T17:45:42.812656Z"
    }
  }
}
记下 ENDPOINT_ID

Python

在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Python 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Python API 参考文档

如需向 Vertex AI 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证

替换以下内容:

  • VERTEX_AI_PROJECT_ID:要在其中创建在线推理端点的 Google Cloud 项目的 ID
  • REGION:要在其中使用 Vertex AI 的区域
  • VERTEX_AI_ENDPOINT_NAME:在线推理端点的显示名称
  • NETWORK_NAME:完整资源名称,包括项目 ID,而不是项目编号。
PROJECT_ID = "VERTEX_AI_PROJECT_ID"
REGION = "REGION"
VERTEX_AI_ENDPOINT_NAME = "VERTEX_AI_ENDPOINT_NAME"

from google.cloud import aiplatform

aiplatform.init(project=PROJECT_ID, location=REGION)

config =
aiplatform.compat.types.service_networking.PrivateServiceConnectConfig(
        enable_private_service_connect=True,
        project_allowlist="VERTEX_AI_PROJECT_ID"
        psc_automation_configs=[
            aiplatform.compat.types.service_networking.PSCAutomationConfig(
                project_id="VERTEX_AI_PROJECT_ID"
network=projects/"VERTEX_AI_PROJECT_ID"/global/networks/"NETWORK_NAME",
            )
        ]
    )
psc_endpoint = aiplatform.PrivateEndpoint.create(
     display_name="VERTEX_AI_ENDPOINT_NAME"
     private_service_connect_config=config,
)

部署模型

创建启用了 Private Service Connect 的在线推理端点后,请按照将模型部署到端点部分所述的步骤将模型部署到该端点。

手动创建 PSC 端点

获取服务连接 URI

部署模型时,系统会为在线推理端点创建服务连接。此服务连接代表向您的 VPC 网络公开的 Vertex AI 在线推理服务。运行 gcloud ai endpoints describe 命令以获取服务连接 URI。

  1. 仅列出端点详细信息中的 serviceAttachment 值:

    gcloud ai endpoints describe ENDPOINT_ID \
    --project=VERTEX_AI_PROJECT_ID \
    --region=REGION \
    | grep -i serviceAttachment
    

    替换以下内容:

    • ENDPOINT_ID:在线推理端点的 ID
    • VERTEX_AI_PROJECT_ID:在其中创建了在线推理端点的 Google Cloud 项目的 ID
    • REGION:相应请求对应的区域

    输出类似于以下内容:

    serviceAttachment: projects/ac74a9f84c2e5f2a1-tp/regions/us-central1/serviceAttachments/gkedpm-c6e6a854a634dc99472bb802f503c1
    
  2. 记下 serviceAttachment 字段中的整个字符串。这便是服务连接 URI。

创建转发规则

您可以预留一个内部 IP 地址,然后使用该地址创建转发规则。如需创建转发规则,您需要用到上一步中的服务连接 URI。

  1. 如需为转发规则预留内部 IP 地址,请使用 gcloud compute addresses create 命令

    gcloud compute addresses create ADDRESS_NAME \
    --project=VPC_PROJECT_ID \
    --region=REGION \
    --subnet=SUBNETWORK \
    --addresses=INTERNAL_IP_ADDRESS
    

    替换以下内容:

    • ADDRESS_NAME:内部 IP 地址的名称
    • VPC_PROJECT_ID:托管您的 VPC 网络的 Google Cloud 项目的 ID。如果您的在线推理端点和 Private Service Connect 转发规则托管在同一项目中,请为此参数使用 VERTEX_AI_PROJECT_ID
    • REGION:要在其中创建 Private Service Connect 转发规则的 Google Cloud 区域
    • SUBNETWORK:包含相应 IP 地址的 VPC 子网的名称
    • INTERNAL_IP_ADDRESS:要预留的内部 IP 地址。此参数是可选的。

      • 如果指定了此参数,则 IP 地址必须在子网的主要 IP 地址范围内。该 IP 地址可以是 RFC 1918 地址,也可以是具有非 RFC 范围的子网。
      • 如果省略此参数,系统会自动分配一个内部 IP 地址。
      • 如需了解详情,请参阅预留新的静态内部 IPv4 或 IPv6 地址
  2. 如需验证 IP 地址是否已预留,请使用 gcloud compute addresses list 命令

    gcloud compute addresses list --filter="name=(ADDRESS_NAME)" \
    --project=VPC_PROJECT_ID
    

    在响应中,验证 IP 地址是否显示为 RESERVED 状态。

  3. 如需创建转发规则并将其指向在线推理服务连接,请使用 gcloud compute forwarding-rules create 命令

    gcloud compute forwarding-rules create PSC_FORWARDING_RULE_NAME \
        --address=ADDRESS_NAME \
        --project=VPC_PROJECT_ID \
        --region=REGION \
        --network=VPC_NETWORK_NAME \
        --target-service-attachment=SERVICE_ATTACHMENT_URI
    

    替换以下内容:

    • PSC_FORWARDING_RULE_NAME:转发规则的名称
    • VPC_NETWORK_NAME:要在其中创建端点的 VPC 网络的名称
    • SERVICE_ATTACHMENT_URI:您先前记下的服务连接
  4. 如需验证服务连接是否接受端点,请使用 gcloud compute forwarding-rules describe 命令

    gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \
    --project=VPC_PROJECT_ID \
    --region=REGION
    

    在响应中,验证 pscConnectionStatus 字段是否显示 ACCEPTED 状态。

可选:获取内部 IP 地址

如果您在创建转发规则时未指定 INTERNAL_IP_ADDRESS 的值,可以使用 gcloud compute forwarding-rules describe 命令获取自动分配的地址:

gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \
--project=VERTEX_AI_PROJECT_ID \
--region=REGION \
| grep -i IPAddress

替换以下内容:

  • VERTEX_AI_PROJECT_ID:您的项目 ID
  • REGION:相应请求对应的区域的名称

可选:从 PSC 自动化结果中获取 PSC 端点

您可以从推理端点获取生成的 IP 地址和转发规则。示例如下:

"privateServiceConnectConfig": {
  "enablePrivateServiceConnect": true,
  "projectAllowlist": [
    "your-project-id",
  ],
  "pscAutomationConfigs": [
    {
      "projectId": "your-project-id",
      "network": "projects/your-project-id/global/networks/default",
      "ipAddress": "10.128.15.209",
      "forwardingRule": "https://www.googleapis.com/compute/v1/projects/your-project-id/regions/us-central1/forwardingRules/sca-auto-fr-47b0d6a4-eaff-444b-95e6-e4dc1d10101e",
      "state": "PSC_AUTOMATION_STATE_SUCCESSFUL"
    },
  ]
}

以下是一些错误处理详情。

  • 自动化操作失败不会影响模型部署的结果。
  • 系统会在状态中指明操作是成功还是失败。
    • 如果成功,系统会显示 IP 地址和转发规则。
    • 如果未成功,系统会显示一条错误消息。
  • 如果没有模型已部署到端点或正在部署到端点,系统会移除相应的自动化配置。如果之后又部署了模型,则 IP 地址和转发规则都会发生变化。
  • 系统不会恢复失败的自动化操作。如果自动化操作失败,您仍然可以手动创建 PSC 端点,详情请参阅手动创建 PSC 端点

获取在线推理结果

从启用了 Private Service Connect 的端点获取在线推理结果与从公共端点获取在线推理结果类似,但需要注意以下事项:

  • 必须从创建在线推理端点时在 projectAllowlist 中指定的项目发送请求。
  • 如果未启用全球访问权限,则必须从同一区域发送请求。
  • 有两个开放端口:使用 TLS 协议的 443 端口(使用自签名证书)以及不使用 TLS 协议的 80 端口。这两个端口均支持 HTTP 和 GRPC。所有流量都将通过专用网络传输,不会流经公共互联网。
  • 如需获取推理结果,必须使用端点的静态 IP 地址建立连接,除非为内部 IP 地址创建了 DNS 记录。例如,将 predict 请求发送到以下端点:

    https://INTERNAL_IP_ADDRESS/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
    

    INTERNAL_IP_ADDRESS 替换为您之前预留的内部 IP 地址。

  • 对于 gRPC 请求:为确保正确识别 gRPC 请求的端点,必须添加标头 x-vertex-ai-endpoint-id。之所以必须这样做是因为对于 gRPC 通信,端点信息不会在请求路径中传递。

  • 安全连接(端口 443):使用端口 443 建立安全连接时,服务器会使用自签名证书。如需继续进行连接,建议采用以下方法之一:

    • 方法 1:绕过证书验证:将客户端配置为忽略证书验证,并使用服务器的 IP 地址或采用您偏好的 DNS 解析方法建立连接。
    • 方法 2:受信任证书存储区集成:获取服务器的自签名证书,将其添加到客户端系统的本地受信任证书存储区,并使用 *.prediction.p.vertexai.goog 格式的 DNS 名称建立连接。此方法可通过验证证书确保通信安全。

以下部分提供的示例展示了如何使用 Python 发送 predict 请求。

第一个示例

psc_endpoint = aiplatform.PrivateEndpoint("projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID")
REQUEST_FILE = "PATH_TO_INPUT_FILE"
import json

import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

with open(REQUEST_FILE) as json_file:
    data = json.load(json_file)
    response = psc_endpoint.predict(
        instances=data["instances"], endpoint_override=INTERNAL_IP_ADDRESS
    )
print(response)

PATH_TO_INPUT_FILE 替换为包含请求输入的 JSON 文件的路径。

第二个示例

import json
import requests
import urllib3
import google.auth.transport.requests

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

REQUEST_FILE = "PATH_TO_INPUT_FILE"

# Programmatically get credentials and generate an access token
creds, project = google.auth.default()
auth_req = google.auth.transport.requests.Request()
creds.refresh(auth_req)
access_token = creds.token
# Note: the credential lives for 1 hour by default
# After expiration, it must be refreshed
# See https://cloud.google.com/docs/authentication/token-types#access-tokens
# for token lifetimes.

with open(REQUEST_FILE) as json_file:
    data = json.load(json_file)
    url = "https://INTERNAL_IP_ADDRESS/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict"
    headers = {
      "Content-Type": "application/json",
      "Authorization": f"Bearer {access_token}"  # Add access token to headers
    }
    payload = {
      "instances": data["instances"],
    }

response = requests.post(url, headers=headers, json=payload, verify=False)

print(response.json())

可选:为内部 IP 地址创建 DNS 记录

我们建议您创建 DNS 记录,这样无需指定内部 IP 地址,便可从端点获取在线推理结果。

如需了解详情,请参阅配置 DNS 的其他方法

  1. 使用 gcloud dns managed-zones create 命令创建专用 DNS 区域。此区域与在其中创建了转发规则的 VPC 网络相关联。

    DNS_NAME_SUFFIX="prediction.p.vertexai.goog."  # DNS names have "." at the end.
    gcloud dns managed-zones create ZONE_NAME \
    --project=VPC_PROJECT_ID \
    --dns-name=$DNS_NAME_SUFFIX \
    --networks=VPC_NETWORK_NAME \
    --visibility=private \
    --description="A DNS zone for Vertex AI endpoints using Private Service Connect."
    
    

    替换以下内容:

    • ZONE_NAME:DNS 区域的名称
  2. 如需在相应区域中创建 DNS 记录,请使用 gcloud dns record-sets create 命令

    DNS_NAME=ENDPOINT_ID-REGION-VERTEX_AI_PROJECT_NUMBER.$DNS_NAME_SUFFIX
    gcloud dns record-sets create $DNS_NAME \
    --rrdatas=INTERNAL_IP_ADDRESS \
    --zone=ZONE_NAME \
    --type=A \
    --ttl=60 \
    --project=VPC_PROJECT_ID
    

    替换以下内容:

    • VERTEX_AI_PROJECT_NUMBER:您的 VERTEX_AI_PROJECT_ID 项目的项目编号。您可以在 Google Cloud 控制台中找到此项目编号。如需了解详情,请参阅识别项目
    • INTERNAL_IP_ADDRESS:在线推理端点的内部 IP 地址

    现在,您可以向以下端点发送 predict 请求:

    https://ENDPOINT_ID-REGION-VERTEX_AI_PROJECT_NUMBER.prediction.p.vertexai.goog/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
    

以下示例展示了如何使用 Python 向 DNS 区域发送 predict 请求:

REQUEST_FILE = "PATH_TO_INPUT_FILE"
import json

import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

with open(REQUEST_FILE) as json_file:
    data = json.load(json_file)
    response = psc_endpoint.predict(
        instances=data["instances"], endpoint_override=DNS_NAME
    )
print(response)

DNS_NAME 替换为您在 gcloud dns record-sets create 命令中指定的 DNS 名称。

限制

启用了 Private Service Connect 的 Vertex AI 端点有下面一些局限性:

  • 不支持部署经过调优的 Gemini 模型。
  • 不支持从端点内部发出的专用出站流量。由于 Private Service Connect 转发规则是单向的,因此您无法在容器内访问其他专用Google Cloud 工作负载。
  • 端点的 projectAllowlist 值无法更改。
  • 不支持 Vertex Explainable AI。
  • 在删除某个端点之前,您必须先从该端点中取消部署模型。
  • 如果所有模型都已取消部署且该状态持续时间超过 10 分钟,则系统可能会删除相应服务连接。检查 Private Service Connect 连接状态;如果状态为 CLOSED,请重新创建转发规则。
  • 删除端点后,您在最多 7 天内无法重复使用该端点名称。
  • 一个项目的 Private Service Connect 配置中最多可以包含 10 个不同的 projectAllowlist 值。

后续步骤