Private Service Connect te permite acceder a las inferencias online de Vertex AI de forma segura desde varios proyectos de consumidor y redes de VPC sin necesidad de direcciones IP públicas, acceso a Internet público ni un intervalo de direcciones IP internas emparejado explícitamente.
Recomendamos usar Private Service Connect en los casos prácticos de inferencia online que cumplan los siguientes requisitos:
- Requerir conexiones privadas y seguras
- Requiere baja latencia
- No es necesario que sean de acceso público
Private Service Connect usa una regla de reenvío en tu red de VPC para enviar tráfico unidireccionalmente al servicio de inferencia online de Vertex AI. La regla de reenvío se conecta a una vinculación de servicio que expone el servicio de Vertex AI a tu red de VPC. Para obtener más información, consulta Información sobre el acceso a los servicios de Vertex AI a través de Private Service Connect. Para obtener más información sobre cómo configurar Private Service Connect, consulta la descripción general de Private Service Connect en la documentación de la nube privada virtual (VPC).
Los puntos finales privados dedicados admiten los protocolos de comunicación HTTP y gRPC. En las solicitudes de gRPC, se debe incluir la cabecera x-vertex-ai-endpoint-id para identificar correctamente el endpoint. Se admiten las siguientes APIs:
- Predicen
- RawPredict
- StreamRawPredict
- Finalización de la conversación (solo en Model Garden)
Puedes enviar solicitudes de inferencia online a un endpoint privado específico mediante el SDK de Vertex AI para Python. Para obtener más información, consulta el artículo Obtener inferencias online.
Roles obligatorios
Para obtener el permiso que necesitas para crear un punto final de Private Service Connect, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Usuario de Vertex AI (roles/aiplatform.user
) en tu proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene el permiso aiplatform.endpoints.create
, que es necesario para crear un punto final de Private Service Connect.
También puedes obtener este permiso con roles personalizados u otros roles predefinidos.
Para obtener más información sobre los roles y permisos de Vertex AI, consulta los artículos Control de acceso a Vertex AI con IAM y Permisos de gestión de identidades y accesos de Vertex AI.
Crear el endpoint de inferencia online
Usa uno de los siguientes métodos para crear un endpoint de inferencia online con Private Service Connect habilitado.
El tiempo de espera predeterminado de las solicitudes de un punto final de Private Service Connect
es de 10 minutos.
En el SDK de Vertex AI para Python, puedes especificar un tiempo de espera de solicitud diferente si indicas un nuevo valor de inference_timeout
, como se muestra en el siguiente ejemplo. El valor de tiempo de espera máximo es de 3600 segundos (1 hora).
Consola
En la Google Cloud consola, en Vertex AI, ve a la página Predicción online.
Haz clic en Crear.
Proporciona un nombre visible para el endpoint.
Selecciona
Privado.Selecciona
Private Service Connect.Haz clic en Seleccionar IDs de proyecto.
Selecciona los proyectos que quieras añadir a la lista de permitidos del endpoint.
Haz clic en Continuar.
Elige las especificaciones del modelo. Para obtener más información, consulta Implementar un modelo en un endpoint.
Haga clic en Crear para crear su endpoint e implementar su modelo en él.
Anota el ID del endpoint en la respuesta.
API
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
VERTEX_AI_PROJECT_ID
: el ID del Google Cloud proyecto en el que vas a crear el endpoint de predicción online.REGION
: la región en la que usas Vertex AI.VERTEX_AI_ENDPOINT_NAME
: el nombre visible del endpoint de predicción online.ALLOWED_PROJECTS
: una lista de IDs de proyectos separados por comas Google Cloud , cada uno entre comillas. Por ejemplo,["PROJECTID1", "PROJECTID2"]
. Si un proyecto no está en esta lista, no podrás enviar solicitudes de predicción al endpoint de Vertex AI desde él. Asegúrate de incluir VERTEX_AI_PROJECT_ID en esta lista para poder llamar al endpoint desde el mismo proyecto en el que se encuentra.- INFERENCE_TIMEOUT_SECS: (Opcional) Número de segundos del campo opcional
inferenceTimeout
.
Método HTTP y URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints
Cuerpo JSON de la solicitud:
{ "displayName": "VERTEX_AI_ENDPOINT_NAME", "privateServiceConnectConfig": { "enablePrivateServiceConnect": true, "projectAllowlist": ["ALLOWED_PROJECTS"], "clientConnectionConfig": { "inferenceTimeout": { "seconds": INFERENCE_TIMEOUT_SECS } } } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Haz los cambios siguientes:
VERTEX_AI_PROJECT_ID
: el ID del Google Cloud proyecto en el que vas a crear el endpoint de inferencia onlineREGION
: la región en la que usas Vertex AIVERTEX_AI_ENDPOINT_NAME
: nombre visible del punto final de inferencia onlineALLOWED_PROJECTS
: lista separada por comas de IDs de proyectos, Google Cloud cada uno entre comillas. Por ejemplo,["PROJECTID1", "PROJECTID2"]
. Si un proyecto no está incluido en esta lista, no podrás enviar solicitudes de inferencia al endpoint de Vertex AI desde él. Asegúrate de incluir VERTEX_AI_PROJECT_ID en esta lista para poder llamar al endpoint desde el mismo proyecto en el que se encuentra.INFERENCE_TIMEOUT_SECS
: (Opcional) Número de segundos del valor opcionalinference_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,
)
Anota el ENDPOINT_ID
al final del URI del endpoint devuelto:
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')
Crear el endpoint de inferencia online con la automatización de PSC (vista previa)
La inferencia online se integra con la automatización de la conectividad de servicios, lo que te permite configurar endpoints de inferencia con la automatización de PSC. Esto simplifica el proceso, ya que crea automáticamente los endpoints de PSC, y es especialmente útil para los desarrolladores de aprendizaje automático que no tienen permisos para crear recursos de red, como reglas de reenvío, en un proyecto.
Para empezar, el administrador de tu red debe establecer una política de conexión de servicio. Esta política es una configuración única por proyecto y red que permite a Vertex AI (clase de servicio gcp-vertexai
) generar endpoints de PSC en tus proyectos y redes.
A continuación, puedes crear endpoints con la configuración de automatización de PSC y, después, implementar tus modelos. Una vez que se haya completado la implementación, se podrá acceder a la información pertinente del endpoint de PSC en los endpoints.
Limitaciones
- No se admiten los Controles de Servicio de VPC.
- Se aplica un límite regional de 500 endpoints a las configuraciones de automatización de PSC.
- Los resultados de la automatización de PSC se eliminan cuando no hay ningún modelo desplegado o en proceso de desplegarse en el endpoint. Tras la limpieza y la implementación del modelo, los nuevos resultados de automatización incluyen direcciones IP y reglas de reenvío distintas.
Crear una política de conexión de servicio
Para crear la política de conexión de servicio, debes ser administrador de la red.
Se necesita una política de conexión de servicio para que Vertex AI pueda crear endpoints de PSC en tus redes. Si no hay una política válida, la automatización falla y se produce un error CONNECTION_POLICY_MISSING
.
Crea tu política de conexión de servicio.
- POLICY_NAME: nombre que el usuario asigna a la política.
PROJECT_ID: el ID del proyecto de servicio en el que vas a crear recursos de Vertex AI.
VPC_PROJECT: el ID del proyecto en el que se encuentra tu VPC de cliente. En el caso de una sola VPC, es lo mismo que
$PROJECT
. En la configuración de la VPC compartida, este es el proyecto host de la VPC.NETWORK_NAME: nombre de la red en la que se va a implementar.
REGION: la región de la red.
PSC_SUBNETS: las subredes de Private Service Connect que se van a usar.
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
Consulta tu política de conexión de servicio.
gcloud network-connectivity service-connection-policies list \ --project=VPC_PROJECT -–region=REGION
En el caso de una sola VPC, un ejemplo sería el siguiente:
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
Crear el endpoint de inferencia online con la configuración de automatización de PSC
En PSCAutomationConfig
, comprueba que projectId
esté en la lista de aplicaciones permitidas.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- REGION: la región en la que usas Vertex AI.
- VERTEX_AI_PROJECT_ID: ID del Google Cloud proyecto en el que vas a crear el punto final de inferencia online.
- VERTEX_AI_ENDPOINT_NAME: nombre visible del endpoint de predicción online.
- NETWORK_NAME: el nombre completo del recurso, incluido el ID del proyecto, en lugar del número del proyecto.
Método HTTP y URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints
Cuerpo JSON de la solicitud:
{ { 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" }, ], }, },
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Haz los cambios siguientes:
VERTEX_AI_PROJECT_ID
: el ID del Google Cloud proyecto en el que vas a crear el endpoint de inferencia onlineREGION
: la región en la que usas Vertex AIVERTEX_AI_ENDPOINT_NAME
: nombre visible del punto final de inferencia onlineNETWORK_NAME
: el nombre de recurso completo, incluido el ID del proyecto, en lugar del número del proyecto.
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,
)
Desplegar el modelo
Una vez que hayas creado tu endpoint de inferencia online con Private Service Connect habilitado, despliega tu modelo en él siguiendo los pasos que se indican en Desplegar un modelo en un endpoint.
Crear un endpoint de PSC manualmente
Obtener el URI de la vinculación de servicio
Cuando despliegas tu modelo, se crea un adjunto de servicio para el endpoint de inferencia online. Esta vinculación de servicio representa el servicio de inferencia online de Vertex AI que se expone a tu red de VPC. Ejecuta el comando gcloud ai endpoints describe
para obtener el URI de la vinculación de servicio.
Muestra solo el valor
serviceAttachment
de los detalles del endpoint:gcloud ai endpoints describe ENDPOINT_ID \ --project=VERTEX_AI_PROJECT_ID \ --region=REGION \ | grep -i serviceAttachment
Haz los cambios siguientes:
ENDPOINT_ID
: el ID de tu endpoint de inferencia onlineVERTEX_AI_PROJECT_ID
: el ID del Google Cloud proyecto en el que has creado tu endpoint de inferencia onlineREGION
: la región de esta solicitud.
El resultado debería ser similar al siguiente:
serviceAttachment: projects/ac74a9f84c2e5f2a1-tp/regions/us-central1/serviceAttachments/gkedpm-c6e6a854a634dc99472bb802f503c1
Anota toda la cadena del campo
serviceAttachment
. Este es el URI del archivo adjunto del servicio.
Crear una regla de reenvío
Puedes reservar una dirección IP interna y crear una regla de reenvío con esa dirección. Para crear la regla de reenvío, necesitas el URI de adjunto de servicio del paso anterior.
Para reservar una dirección IP interna para la regla de reenvío, usa el comando
gcloud compute addresses create
:gcloud compute addresses create ADDRESS_NAME \ --project=VPC_PROJECT_ID \ --region=REGION \ --subnet=SUBNETWORK \ --addresses=INTERNAL_IP_ADDRESS
Haz los cambios siguientes:
ADDRESS_NAME
: un nombre para la dirección IP internaVPC_PROJECT_ID
: el ID del Google Cloud proyecto que aloja tu red de VPC. Si tu endpoint de inferencia online y tu regla de reenvío de Private Service Connect están alojados en el mismo proyecto, usaVERTEX_AI_PROJECT_ID
para este parámetro.REGION
: la Google Cloud región en la que se va a crear la regla de reenvío de Private Service ConnectSUBNETWORK
: el nombre de la subred de VPC que contiene la dirección IPINTERNAL_IP_ADDRESS
: la dirección IP interna que se va a reservar. Este parámetro es opcional.- Si se especifica este parámetro, la dirección IP debe estar dentro del intervalo de direcciones IP principal de la subred. La dirección IP puede ser una dirección RFC 1918 o una subred con intervalos que no sean RFC.
- Si se omite este parámetro, se asignará automáticamente una dirección IP interna.
- Para obtener más información, consulta el artículo sobre cómo reservar una dirección IPv4 o IPv6 interna estática nueva.
Para verificar que la dirección IP está reservada, usa el comando
gcloud compute addresses list
:gcloud compute addresses list --filter="name=(ADDRESS_NAME)" \ --project=VPC_PROJECT_ID
En la respuesta, comprueba que la dirección IP tenga el estado
RESERVED
.Para crear la regla de reenvío y dirigirla a la vinculación de servicio de inferencia online, usa el comando
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
Haz los cambios siguientes:
PSC_FORWARDING_RULE_NAME
: un nombre para la regla de reenvíoVPC_NETWORK_NAME
: el nombre de la red de VPC en la que se va a crear el endpointSERVICE_ATTACHMENT_URI
: el archivo adjunto de servicio que has anotado antes
Para verificar que el adjunto de servicio acepta el endpoint, usa el comando
gcloud compute forwarding-rules describe
:gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \ --project=VPC_PROJECT_ID \ --region=REGION
En la respuesta, comprueba que aparezca el estado
ACCEPTED
en el campopscConnectionStatus
.
Opcional: Obtener la dirección IP interna
Si no especificaste ningún valor para INTERNAL_IP_ADDRESS
cuando creaste la regla de reenvío, puedes obtener la dirección que se asignó automáticamente mediante el comando gcloud compute forwarding-rules describe
:
gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \
--project=VERTEX_AI_PROJECT_ID \
--region=REGION \
| grep -i IPAddress
Haz los cambios siguientes:
VERTEX_AI_PROJECT_ID
: tu ID de proyectoREGION
: el nombre de la región de esta solicitud
Opcional: Obtener el endpoint de PSC del resultado de la automatización de PSC
Puedes obtener la dirección IP y la regla de reenvío generadas desde el endpoint de inferencia. Veamos un ejemplo:
"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"
},
]
}
A continuación, se indican algunos detalles sobre la gestión de errores.
- Si se produce un error en la automatización, no afectará al resultado del despliegue del modelo.
- El estado indica si la operación se ha realizado correctamente o no.
- Si la acción se realiza correctamente, se mostrarán la dirección IP y la regla de reenvío.
- Si no se completa correctamente, se mostrará un mensaje de error.
- Las configuraciones de automatización se eliminan cuando no hay modelos desplegados o en proceso de desplegarse en el endpoint. Esto provoca un cambio en la dirección IP y en la regla de reenvío si se implementa un modelo más adelante.
- La automatización fallida no se recuperará. Si se produce un error, puedes crear el endpoint de PSC manualmente. Consulta Crear un endpoint de PSC manualmente.
Obtener inferencias online
Obtener inferencias online de un endpoint con Private Service Connect es similar a obtener inferencias online de endpoints públicos, pero con las siguientes consideraciones:
- La solicitud debe enviarse desde un proyecto que se haya especificado en
projectAllowlist
al crear el endpoint de inferencia online. - Si el acceso global no está habilitado, la solicitud debe enviarse desde la misma región.
- Hay dos puertos abiertos: el 443 con TLS mediante un certificado autofirmado y el 80 sin TLS. Ambos puertos admiten HTTP y GRPC. Todo el tráfico se realizará a través de la red privada y no pasará por la red pública de Internet.
Para obtener inferencias, se debe establecer una conexión mediante la dirección IP estática del endpoint, a menos que se cree un registro DNS para la dirección IP interna. Por ejemplo, envía las solicitudes
predict
al siguiente endpoint:https://INTERNAL_IP_ADDRESS/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
Sustituye
INTERNAL_IP_ADDRESS
por la dirección IP interna que reservaste anteriormente.En el caso de las solicitudes gRPC, para asegurarse de que se identifica correctamente el endpoint, es necesario incluir el encabezado
x-vertex-ai-endpoint-id
. Esto es necesario porque la información del endpoint no se transmite en la ruta de la solicitud de comunicación gRPC.Conexiones seguras (puerto 443): cuando se establecen conexiones seguras mediante el puerto 443, el servidor usa un certificado autofirmado. Para continuar con la conexión, te recomendamos que sigas uno de estos procedimientos:
- Opción 1: Omitir la validación de certificados: configura el cliente para que ignore la validación de certificados y establezca la conexión mediante la dirección IP del servidor o un método de resolución de DNS preferido.
- Opción 2: Integración del almacén de confianza. Obtén el certificado autofirmado del servidor, añádelo al almacén de confianza local del sistema cliente y usa el nombre DNS con el formato
*.prediction.p.vertexai.goog
para establecer la conexión. Este método asegura la comunicación mediante la validación de certificados.
En las siguientes secciones se muestran ejemplos de cómo enviar la solicitud predict con Python.
Primer ejemplo
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)
Sustituye PATH_TO_INPUT_FILE
por la ruta a un archivo JSON
que contenga la entrada de la solicitud.
Segundo ejemplo
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())
Opcional: Crea un registro DNS para la dirección IP interna
Te recomendamos que crees un registro DNS para poder obtener inferencias online desde tu endpoint sin tener que especificar la dirección IP interna.
Para obtener más información, consulta Otras formas de configurar el DNS.
Crea una zona DNS privada con el comando
gcloud dns managed-zones create
. Esta zona está asociada a la red de VPC en la que se creó la regla de reenvío.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."
Haz los cambios siguientes:
ZONE_NAME
: el nombre de la zona DNS
Para crear un registro DNS en la zona, usa el comando
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
Haz los cambios siguientes:
VERTEX_AI_PROJECT_NUMBER
: el número de proyecto de tu proyecto deVERTEX_AI_PROJECT_ID
. Puedes encontrar este número de proyecto en la Google Cloud consola. Para obtener más información, consulta el artículo sobre cómo identificar proyectos.INTERNAL_IP_ADDRESS
: la dirección IP interna de tu endpoint de inferencia online
Ahora puedes enviar tus solicitudes de
predict
a:https://ENDPOINT_ID-REGION-VERTEX_AI_PROJECT_NUMBER.prediction.p.vertexai.goog/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
A continuación, se muestra un ejemplo de cómo puedes enviar la solicitud predict a la zona DNS mediante Python:
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)
Sustituye DNS_NAME
por el nombre DNS que has especificado en el comando gcloud dns record-sets create
.
Limitaciones
Los endpoints de Vertex AI con Private Service Connect están sujetos a las siguientes limitaciones:
- No se admite la implementación de modelos de Gemini ajustados.
- No se admite el tráfico de salida privado desde el endpoint. Como las reglas de reenvío de Private Service Connect son unidireccionales, no se puede acceder a otras cargas de trabajo privadas desde el interior del contenedor.Google Cloud
- No se puede cambiar el valor
projectAllowlist
de un endpoint. - Vertex Explainable AI no es compatible.
- Antes de eliminar un endpoint, debes anular el despliegue del modelo en ese endpoint.
- Si todos los modelos no se implementan durante más de 10 minutos, es posible que se elimine el adjunto de servicio. Comprueba el estado de la conexión de Private Service Connect. Si es
CLOSED
, vuelve a crear la regla de reenvío. - Una vez que hayas eliminado tu endpoint, no podrás volver a usar ese nombre de endpoint durante un máximo de 7 días.
- Un proyecto puede tener hasta 10 valores de
projectAllowlist
diferentes en sus configuraciones de Private Service Connect.