Dedizierte private Endpunkte auf Grundlage von Private Service Connect für Online-Inferenzen verwenden

Die Informationen auf dieser Seite gelten für benutzerdefinierte und AutoML-Modelle. Informationen zur Model Garden-Bereitstellung finden Sie unter Modelle in Model Garden verwenden.

Mit Private Service Connect können Sie Ihr benutzerdefiniertes Vertex AI-Modell bereitstellen und Onlinevorhersagen sicher für mehrere Nutzerprojekte und VPC-Netzwerke bereitstellen, ohne dass öffentliche IP-Adressen, ein öffentlicher Internetzugang oder ein expliziter interner Peering-IP-Adressbereich erforderlich sind.

Wir empfehlen Private Service Connect für Anwendungsfälle der Onlineinferenz mit folgenden Anforderungen:

  • Private und sichere Verbindungen erforderlich machen
  • Niedrige Latenz erforderlich
  • Sie müssen nicht öffentlich zugänglich sein.

Private Service Connect verwendet eine Weiterleitungsregel in Ihrem VPC-Netzwerk, um Traffic unidirektional an den Vertex AI-Onlineinferenzdienst zu senden. Die Weiterleitungsregel stellt eine Verbindung zu einem Dienstanhang her, der den Vertex AI-Dienst für Ihr VPC-Netzwerk verfügbar macht. Weitere Informationen finden Sie unter Zugriff auf Vertex AI-Dienste über Private Service Connect. Weitere Informationen zum Einrichten von Private Service Connect finden Sie unter Private Service Connect – Übersicht in der Virtual Private Cloud-Dokumentation (VPC).

Dedizierte private Endpunkte unterstützen sowohl HTTP- als auch gRPC-Kommunikationsprotokolle. Bei gRPC-Anfragen muss der Header „x-vertex-ai-endpoint-id“ enthalten sein, damit der Endpunkt richtig identifiziert wird. Die folgenden APIs werden unterstützt:

  • Vorhersagen
  • RawPredict
  • StreamRawPredict
  • Chat Completion (nur Model Garden)

Sie können Online-Inferenzanfragen mit dem Vertex AI SDK für Python an einen dedizierten privaten Endpunkt senden. Weitere Informationen finden Sie unter Onlineinferenzen abrufen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Vertex AI-Nutzer (roles/aiplatform.user) für Ihr Projekt zuzuweisen, um die Berechtigung zum Erstellen eines Private Service Connect-Endpunkts zu erhalten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigung aiplatform.endpoints.create, die zum Erstellen eines Private Service Connect-Endpunkts erforderlich ist.

Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Weitere Informationen zu Vertex AI-Rollen und ‑Berechtigungen finden Sie unter Vertex AI-Zugriffssteuerung mit IAM und Vertex AI-IAM-Berechtigungen.

Online-Inferenzendpunkt erstellen

Verwenden Sie eine der folgenden Methoden, um einen Onlineinferenz-Endpunkt mit aktiviertem Private Service Connect zu erstellen.

Das standardmäßige Zeitlimit für Anfragen für einen Private Service Connect-Endpunkt beträgt 10 Minuten. Im Vertex AI SDK für Python können Sie optional ein anderes Anfrage-Zeitlimit angeben, indem Sie einen neuen inference_timeout-Wert angeben, wie im folgenden Beispiel gezeigt. Der maximale Wert für die Zeitüberschreitung beträgt 3.600 Sekunden (1 Stunde).

Console

  1. Rufen Sie in der Google Cloud Console in Vertex AI die Seite Onlinevorhersage auf.

    Zur Onlinevorhersage

  2. Klicken Sie auf Erstellen.

  3. Geben Sie einen Anzeigenamen für den Endpunkt an.

  4. Klicken Sie auf Privat.

  5. Wählen Sie Private Service Connect aus.

  6. Klicken Sie auf Projekt-IDs auswählen.

  7. Wählen Sie Projekte aus, die der Zulassungsliste für den Endpunkt hinzugefügt werden sollen.

  8. Klicken Sie auf Weiter.

  9. Wählen Sie die Modellspezifikationen aus. Weitere Informationen finden Sie unter Modell auf einem Endpunkt bereitstellen.

  10. Klicken Sie auf Erstellen. um den Endpunkt zu erstellen und das Modell darauf bereitzustellen.

  11. Notieren Sie sich die Endpunkt-ID aus der Antwort.

API

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • VERTEX_AI_PROJECT_ID: die ID des Google Cloud Projekts, in dem Sie den Endpunkt für Onlinevorhersagen erstellen.
  • REGION: Die Region, in der Sie Vertex AI verwenden.
  • VERTEX_AI_ENDPOINT_NAME: Der Anzeigename für den Endpunkt der Onlinevorhersage.
  • ALLOWED_PROJECTS: eine durch Kommas getrennte Liste von Google Cloud Projekt-IDs, die jeweils in Anführungszeichen gesetzt sind, z. B. ["PROJECTID1", "PROJECTID2"]. Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie von dort keine Vorhersageanfragen an den Vertex AI-Endpunkt senden. Achten Sie darauf, dass VERTEX_AI_PROJECT_ID in diese Liste aufgenommen wird, damit Sie den Endpunkt aus demselben Projekt aufrufen können, in dem er sich befindet.
  • INFERENCE_TIMEOUT_SECS: (Optional) Anzahl der Sekunden im optionalen Feld inferenceTimeout.

HTTP-Methode und URL:

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

JSON-Text anfordern:

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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "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"
    }
  }
}
Notieren Sie sich die verwendete ENDPOINT_ID.

Python

Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Ersetzen Sie Folgendes:

  • VERTEX_AI_PROJECT_ID: die ID des Google Cloud Projekts, in dem Sie den Endpunkt für die Onlineinferenz erstellen
  • REGION: Die Region, in der Sie Vertex AI verwenden.
  • VERTEX_AI_ENDPOINT_NAME: Der Anzeigename für den Endpunkt der Onlineinferenz.
  • ALLOWED_PROJECTS: eine durch Kommas getrennte Liste von Google CloudProjekt-IDs, die jeweils in Anführungszeichen gesetzt sind. Beispiel: ["PROJECTID1", "PROJECTID2"]. Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie von dort keine Inferenzanfragen an den Vertex AI-Endpunkt senden. Achten Sie darauf, dass VERTEX_AI_PROJECT_ID in diese Liste aufgenommen wird, damit Sie den Endpunkt aus demselben Projekt aufrufen können, in dem er sich befindet.
  • INFERENCE_TIMEOUT_SECS: (Optional) Anzahl der Sekunden im optionalen Wert 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,
)

Notieren Sie sich die ENDPOINT_ID am Ende des zurückgegebenen Endpunkt-URI:

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')

Online-Inferenzendpunkt mit PSC-Automatisierung erstellen (Vorabversion)

Die Onlineinferenz ist in die Automatisierung der Dienstverbindung integriert. So können Sie Inferenzendpunkte mit PSC-Automatisierung konfigurieren. Dadurch wird der Prozess vereinfacht, da PSC-Endpunkte automatisch erstellt werden. Das ist besonders für ML-Entwickler von Vorteil, die keine Berechtigungen zum Erstellen von Netzwerkressourcen wie Weiterleitungsregeln in einem Projekt haben.

Zuerst muss Ihr Netzwerkadministrator eine Richtlinie für Dienstverbindungen erstellen. Diese Richtlinie ist eine einmalige Konfiguration pro Projekt und Netzwerk, mit der Vertex AI (Dienstklasse gcp-vertexai) PSC-Endpunkte in Ihren Projekten und Netzwerken generieren kann.

Als Nächstes können Sie Endpunkte mit der PSC-Automatisierungskonfiguration erstellen und dann Ihre Modelle bereitstellen. Nach Abschluss der Bereitstellung sind die relevanten PSC-Endpunktinformationen über die Endpunkte zugänglich.

Beschränkungen

  • VPC Service Controls werden nicht unterstützt.
  • Für PSC-Automatisierungskonfigurationen gilt ein regionales Limit von 500 Endpunkten.
  • Die Ergebnisse der PSC-Automatisierung werden gelöscht, wenn kein Modell bereitgestellt wird oder gerade bereitgestellt wird. Nach der Bereinigung und der anschließenden Bereitstellung des Modells enthalten die neuen Automatisierungsergebnisse eindeutige IP-Adressen und Weiterleitungsregeln.

Richtlinie für Dienstverbindungen erstellen

Sie müssen Netzwerkadministrator sein, um die Richtlinie für Dienstverbindungen zu erstellen. Eine Richtlinie für Dienstverbindungen ist erforderlich, damit Vertex AI PSC-Endpunkte in Ihren Netzwerken erstellen kann. Ohne eine gültige Richtlinie schlägt die Automatisierung mit dem Fehler CONNECTION_POLICY_MISSING fehl.

  1. Erstellen Sie Ihre Richtlinie für Dienstverbindungen.

    • POLICY_NAME: Ein vom Nutzer angegebener Name für die Richtlinie.
    • PROJECT_ID: Die ID des Dienstprojekts, in dem Sie Vertex AI-Ressourcen erstellen.

    • VPC_PROJECT: Die Projekt-ID, in der sich die Client-VPC befindet. Bei der Einrichtung einer einzelnen VPC entspricht dies $PROJECT. Bei der Einrichtung einer freigegebene VPC ist dies das VPC-Hostprojekt.

    • NETWORK_NAME: Der Name des Netzwerks, in dem die Bereitstellung erfolgen soll.

    • REGION: Die Region des Netzwerks.

    • PSC_SUBNETS: Die zu verwendenden Private Service Connect-Subnetze.

    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. Richtlinie für Dienstverbindungen ansehen

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

    Bei einer einzelnen VPC sieht ein Beispiel so aus:

        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

Onlineinferenz-Endpunkt mit PSC-Automatisierungskonfiguration erstellen

Prüfen Sie in der PSCAutomationConfig, ob die projectId auf der Zulassungsliste steht.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • REGION: Die Region, in der Sie Vertex AI verwenden.
  • VERTEX_AI_PROJECT_ID: Die ID des Google Cloud -Projekts, in dem Sie den Endpunkt für Onlineinferenz erstellen.
  • VERTEX_AI_ENDPOINT_NAME: Der Anzeigename für den Endpunkt der Onlinevorhersage.
  • NETWORK_NAME: der vollständige Ressourcenname, einschließlich der Projekt-ID, anstelle der Projektnummer.

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  {
    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" },
      ],
    },
  },

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "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"
    }
  }
}
Notieren Sie sich die verwendete ENDPOINT_ID.

Python

Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Ersetzen Sie Folgendes:

  • VERTEX_AI_PROJECT_ID: die ID des Google Cloud Projekts, in dem Sie den Endpunkt für die Onlineinferenz erstellen
  • REGION: Die Region, in der Sie Vertex AI verwenden.
  • VERTEX_AI_ENDPOINT_NAME: Der Anzeigename für den Endpunkt der Onlineinferenz.
  • NETWORK_NAME: der vollständige Ressourcenname, einschließlich der Projekt-ID, anstelle der Projektnummer.
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,
)

Modell bereitstellen

Nachdem Sie Ihren Onlineinferenz-Endpunkt mit aktiviertem Private Service Connect erstellt haben, stellen Sie Ihr Modell darauf bereit. Führen Sie dazu die Schritte unter Modell auf einem Endpunkt bereitstellen aus.

PSC-Endpunkt manuell erstellen

URI des Dienstanhangs abrufen

Wenn Sie das Modell bereitstellen, wird für den Endpunkt der Onlineinferenz ein Dienstanhang erstellt. Dieser Dienstanhang stellt den Vertex AI-Onlineinferenzdienst dar, der für Ihr VPC-Netzwerk verfügbar gemacht wird. Führen Sie den Befehl gcloud ai endpoints describe aus, um den URI des Dienstanhangs abzurufen.

  1. Listen Sie nur den Wert serviceAttachment aus den Endpunktdetails auf:

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

    Ersetzen Sie Folgendes:

    • ENDPOINT_ID: die ID Ihres Endpunkts für die Onlineinferenz
    • VERTEX_AI_PROJECT_ID: die ID des Google Cloud -Projekts, in dem Sie den Endpunkt für Onlineinferenz erstellt haben
    • REGION: Die Region für diese Anfrage

    Die Ausgabe sieht in etwa so aus:

    serviceAttachment: projects/ac74a9f84c2e5f2a1-tp/regions/us-central1/serviceAttachments/gkedpm-c6e6a854a634dc99472bb802f503c1
    
  2. Notieren Sie sich den gesamten String im Feld serviceAttachment. Dies ist der URI des Dienstanhangs.

Erstellen Sie eine Weiterleitungsregel.

Sie können eine interne IP-Adresse reservieren und eine Weiterleitungsregel mit dieser Adresse erstellen. Sie benötigen den URI des Dienstanhangs aus dem vorherigen Schritt, um die Weiterleitungsregel zu erstellen.

  1. Zum Reservieren einer internen IP-Adresse für die Weiterleitungsregel verwenden Sie den Befehl gcloud compute addresses create:

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

    Ersetzen Sie dabei Folgendes:

    • ADDRESS_NAME: ein Name für die interne IP-Adresse
    • VPC_PROJECT_ID: die ID des Google Cloud Projekts, in dem Ihr VPC-Netzwerk gehostet wird. Wenn der Endpunkt für Onlineinferenz und die Private Service Connect-Weiterleitungsregel im selben Projekt gehostet werden, verwenden Sie für diesen Parameter VERTEX_AI_PROJECT_ID.
    • REGION: die Google Cloud Region, in der die Private Service Connect-Weiterleitungsregel erstellt werden soll
    • SUBNETWORK: der Name des VPC-Subnetzes, das die IP-Adresse enthält
    • INTERNAL_IP_ADDRESS: die interne IP-Adresse, die reserviert werden soll. Der Parameter ist optional.

      • Wenn dieser Parameter angegeben ist, muss sich die IP-Adresse innerhalb des primären IP-Adressbereichs des Subnetzes befinden. Die IP-Adresse kann eine RFC 1918-Adresse oder ein Subnetz mit Nicht-RFC-Bereichen sein.
      • Wenn Sie diesen Parameter nicht angeben, wird automatisch eine interne IP-Adresse zugewiesen.
      • Weitere Informationen finden Sie unter Neue statische interne IPv4- oder IPv6-Adresse reservieren.
  2. Prüfen Sie mit dem Befehl gcloud compute addresses list, ob die IP-Adresse reserviert ist:

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

    Prüfen Sie in der Antwort, ob für die IP-Adresse der Status RESERVED angezeigt wird.

  3. Verwenden Sie den Befehl gcloud compute forwarding-rules create, um die Weiterleitungsregel zu erstellen und auf den Anhang des Onlineinferenzdiensts zu verweisen:

    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
    

    Ersetzen Sie Folgendes:

    • PSC_FORWARDING_RULE_NAME ist ein Name für die Weiterleitungsregel.
    • VPC_NETWORK_NAME: der Name des VPC-Netzwerks, in dem der Endpunkt erstellt werden soll
    • SERVICE_ATTACHMENT_URI: den Dienstanhang, den Sie zuvor notiert haben.
  4. Prüfen Sie mit dem Befehl gcloud compute forwarding-rules describe, ob der Dienstanhang den Endpunkt akzeptiert:

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

    Prüfen Sie in der Antwort, ob für das Feld pscConnectionStatus der Status ACCEPTED angezeigt wird.

Interne IP-Adresse abrufen

Wenn Sie beim Erstellen der Weiterleitungsregel keinen Wert für INTERNAL_IP_ADDRESS angegeben haben, erhalten Sie die automatisch zugewiesene Adresse mit dem Befehl gcloud compute forwarding-rules describe:

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

Ersetzen Sie dabei Folgendes:

  • VERTEX_AI_PROJECT_ID: Ihre Projekt-ID.
  • REGION ist der Name der Region für diese Anfrage.

Optional: PSC-Endpunkt aus dem Ergebnis der PSC-Automatisierung abrufen

Die generierte IP-Adresse und Weiterleitungsregel können Sie über den Inferenzendpunkt abrufen. Beispiel:

"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"
    },
  ]
}

Hier sind einige Details zur Fehlerbehandlung.

  • Ein Fehler bei der Automatisierung hat keine Auswirkungen auf das Ergebnis der Modellbereitstellung.
  • Der Erfolg oder Misserfolg des Vorgangs wird im Status angegeben.
    • Bei Erfolg werden die IP-Adresse und die Weiterleitungsregel angezeigt.
    • Wenn die Anmeldung nicht erfolgreich ist, wird eine Fehlermeldung angezeigt.
  • Automatisierungskonfigurationen werden entfernt, wenn keine Modelle auf dem Endpunkt bereitgestellt werden oder gerade bereitgestellt werden. Dies führt zu einer Änderung der IP-Adresse und der Weiterleitungsregel, wenn ein Modell später bereitgestellt wird.
  • Fehlerhafte Automatisierungen werden nicht wiederhergestellt. Falls die automatische Erstellung fehlschlägt, können Sie den PSC-Endpunkt manuell erstellen. Weitere Informationen finden Sie unter PSC-Endpunkt manuell erstellen.

Onlineinferenzen abrufen

Das Abrufen von Onlineinferenzen von einem Endpunkt mit Private Service Connect ähnelt dem Abrufen von Onlineinferenzen von öffentlichen Endpunkten, mit folgenden Ausnahmen:

  • Die Anfrage muss von einem Projekt gesendet werden, das in projectAllowlist angegeben wurde, als der Endpunkt für die Onlineinferenz erstellt wurde.
  • Wenn der globale Zugriff nicht aktiviert ist, muss die Anfrage aus derselben Region gesendet werden.
  • Es sind zwei Ports geöffnet: 443 mit TLS unter Verwendung eines selbst signierten Zertifikats und 80 ohne TLS. Beide Ports unterstützen HTTP und gRPC. Der gesamte Traffic verbleibt in Ihrem privaten Netzwerk und durchläuft nicht das öffentliche Internet.
  • Am besten verwenden Sie HTTPS mit dem selbst signierten Zertifikat, das Sie von der Onlineinferenz von Vertex AI erhalten haben, oder stellen Ihr eigenes selbst signiertes Zertifikat bereit.
  • Zum Abrufen von Inferenz muss eine Verbindung über die statische IP-Adresse des Endpunkts hergestellt werden, es sei denn, es wird ein DNS-Eintrag für die interne IP-Adresse erstellt. Senden Sie die predict-Anfragen beispielsweise an den folgenden Endpunkt:

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

    Ersetzen Sie INTERNAL_IP_ADDRESS durch die zuvor reservierte interne IP-Adresse.

  • Für gRPC-Anfragen: Damit Endpunkte für gRPC-Anfragen richtig identifiziert werden, muss der Header x-vertex-ai-endpoint-id enthalten sein. Dies ist erforderlich, da Endpunktinformationen nicht im Anfragepfad für die gRPC-Kommunikation übermittelt werden.

DNS-Eintrag für die interne IP-Adresse erstellen

Wir empfehlen, einen DNS-Eintrag zu erstellen, damit Sie Onlineinferenzen von Ihrem Endpunkt erhalten können, ohne die interne IP-Adresse angeben zu müssen.

Weitere Informationen finden Sie unter Andere Möglichkeiten zur Konfiguration von DNS.

  1. Erstellen Sie mit dem Befehl gcloud dns managed-zones create eine private DNS-Zone. Diese Zone ist dem VPC-Netzwerk zugeordnet, in dem die Weiterleitungsregel erstellt wurde.

    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."
    
    

    Ersetzen Sie dabei Folgendes:

    • ZONE_NAME: der Name der DNS-Zone
  2. Verwenden Sie zum Erstellen eines DNS-Eintrags in der Zone den Befehl 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
    

    Ersetzen Sie dabei Folgendes:

    • VERTEX_AI_PROJECT_NUMBER ist Ihre VERTEX_AI_PROJECT_ID Projektnummer. Sie finden diese Projektnummer in der Google Cloud Console. Weitere Informationen finden Sie unter Projekte identifizieren.
    • INTERNAL_IP_ADDRESS: die interne IP-Adresse Ihres Online-Inferenzendpunkts

    Jetzt können Sie Ihre predict-Anfragen an folgende VMs senden:

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

Unterstützung von TLS-Zertifikaten (Transport Layer Security)

Die Onlineinferenz von Vertex AI wird mit einem selbst signierten Zertifikat gesichert. Da dieses Zertifikat nicht von einer vertrauenswürdigen Zertifizierungsstelle (Certificate Authority, CA) signiert ist, müssen Clients, die versuchen, eine HTTPS-Verbindung herzustellen, explizit so konfiguriert werden, dass sie dem Zertifikat vertrauen. Das selbst signierte Zertifikat, das vom Vertex AI-Online-Inferenzendpunkt abgerufen wird, ist 10 Jahre lang gültig. Da dieses Zertifikat nicht eindeutig für einen bestimmten Endpunkt ist, kann ein einzelnes Zertifikat für alle Truststore-Integrationen verwendet werden. Im Folgenden finden Sie die allgemeinen Schritte, die erforderlich sind, um eine HTTPS-Verbindung zur Onlineinferenz von Vertex AI herzustellen:

  1. DNS konfigurieren: Das selbstsignierte Zertifikat enthält den alternativen Antragstellernamen (Subject Alternative Name, SAN) *.prediction.p.vertexai.goog. Sie müssen in Ihrem Netzwerk einen DNS-Eintrag erstellen, der diesem Format entspricht.

    Implementierungsdetails finden Sie unter DNS-Eintrag für die interne IP-Adresse erstellen.

  2. Clientvertrauen herstellen: Der Client muss das selbstsignierte Zertifikat herunterladen und seinem lokalen Trust Store hinzufügen.

  3. HTTPS-Verbindung herstellen: Zum Herstellen einer HTTPS-Verbindung zur Onlineinferenz von Vertex AI ist die Verwendung des voll qualifizierten Domainnamens (Fully Qualified Domain Name, FQDN) erforderlich. Dies ist erforderlich, da für den Dienst ein Platzhalter-SSL-Zertifikat verwendet wird, das für die Domain *.prediction.p.vertexai.goog gültig ist.

In den folgenden Schritten wird gezeigt, wie Sie das Zertifikat für die Onlinevorhersage von Vertex AI herunterladen und dem lokalen Trust Store auf Debian-basierten Linux-Systemen wie Debian 11 und Ubuntu hinzufügen.

  1. Aktualisieren Sie die Betriebssystempakete und installieren Sie OpenSSL:

    sudo apt update && sudo apt install openssl
    
  2. Führen Sie den folgenden Befehl in Ihrem Home-Verzeichnis aus, um das Zertifikat für die Onlineinferenz von Vertex AI herunterzuladen und in einer Datei namens vertex_certificate.crt in Ihrem aktuellen Verzeichnis zu speichern. Ersetzen Sie die folgenden Werte:

    • ENDPOINT_ID: ID des bereitgestellten Modellendpunkts
    • REGION: die Region, in der sich der Endpunkt befindet
    • VERTEX_AI_PROJECT_NUMBER: die Projektnummer für Ihr Projekt. Sie finden diese Projektnummer in der Google Cloud Console. Weitere Informationen finden Sie unter Projekte identifizieren.
    openssl s_client -showcerts -connect \
    ENDPOINT_ID-REGION-VERTEX_AI_PROJECT_NUMBER.prediction.p.vertexai.goog:443 </dev/null | \
    openssl x509 -outform pem -out vertex_certificate.crt
    
    
  3. Verschieben Sie das Zertifikat in den System-Trust Store:

    sudo mv vertex_certificate.crt /usr/local/share/ca-certificates
    
  4. Aktualisieren Sie die Liste der vertrauenswürdigen Zertifizierungsstellen im Certificate Manager. Sie sollten eine Ausgabe sehen, die bestätigt, dass ein Zertifikat hinzugefügt wurde.

    sudo update-ca-certificates
    
  5. Senden Sie eine predict-Anfrage an die folgende URL und nehmen Sie dabei die folgenden Änderungen vor:

    • INTERNAL_IP_ADDRESS: die interne IP-Adresse Ihres Online-Inferenzendpunkts
    • VERTEX_AI_PROJECT_ID: die Projekt-ID Ihres Projekts
    https://ENDPOINT_ID-REGION-VERTEX_AI_PROJECT_NUMBER.prediction.p.vertexai.goog/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
    

Unterstützung benutzerdefinierter Zertifikate für TLS

Organisationen, die eine genaue Kontrolle über die Zertifikatsverwaltung und ‑rotation für Vertex AI-Onlinevorhersageendpunkte benötigen, können ein vom Kunden verwaltetes Zertifikat mit einem regionalen Google CloudApplication Load Balancer (HTTPS) verwenden.

Diese Architektur funktioniert mit dem Standardzertifikat von Vertex AI, sodass Sie die direkte Kontrolle haben.

Im Folgenden finden Sie die allgemeinen Schritte zur Bereitstellung:

  1. Vom Kunden verwaltetes Zertifikat erstellen:

    • Generieren Sie ein selbst signiertes Zertifikat (oder verwenden Sie Ihre Zertifizierungsstelle) für eine benutzerdefinierte Domain.
    • Diese Domain muss das Suffix .prediction.p.vertexai.goog verwenden, damit sie mit dem Vertex AI-Wildcard-Zertifikat übereinstimmt, z. B. my-endpoint.prediction.vertexai.goog.
  2. Regionalen Application Load Balancer (HTTPS) bereitstellen:

  3. DNS konfigurieren:

    • Erstellen Sie einen DNS-A‑Eintrag in Ihrer DNS-Zone.
    • Dieser Eintrag muss Ihre vollständig qualifizierte benutzerdefinierte Domain (z. B. my-endpoint.prediction.p.vertexai.goog) der IP-Adresse des regionalen Application Load Balancers zuordnen.
  4. Aktualisieren Sie den lokalen Truststore:

    • Damit der Client den Server authentifizieren kann, muss das Zertifikat des Application Load Balancers (oder die ausstellende CA) in den lokalen Trust Store importiert werden.

Jetzt können Sie Ihre Vorhersageanfragen an die vollständig qualifizierte benutzerdefinierte Domain senden:

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

Beispiele für das Abrufen von Onlineinferenzen

In den folgenden Abschnitten finden Sie Beispiele dafür, wie Sie die predict-Anfrage mit Python senden können.

Erstes Beispiel

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)

Ersetzen Sie PATH_TO_INPUT_FILE durch einen Pfad zu einer JSON-Datei, die die Anfragedaten enthält.

Zweites Beispiel

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())

Drittes Beispiel

Das folgende Beispiel zeigt, wie Sie die predict-Anfrage mit Python an die DNS-Zone senden können:

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)

Ersetzen Sie DNS_NAME durch den DNS-Namen, den Sie im Befehl gcloud dns record-sets create angegeben haben.

Best Practices

Wenn ein neuer Endpunkt bereitgestellt wird, wird der Dienstanhang möglicherweise aktualisiert. Prüfen Sie immer den Status des Dienstanhangs und des PSC-Endpunkts, bevor Sie den Inferenzaufruf ausführen. Hier sind einige Best Practices:

  • Wenn ein Endpunkt keine aktiven Bereitstellungen hat, kann es sein, dass Vertex AI die Dienstanhänge löscht und neu erstellt. Achten Sie darauf, dass sich der PSC-Endpunkt in einem verbundenen Zustand befindet (indem Sie die Weiterleitungsregel neu erstellen), wenn der Dienstanhang neu erstellt wird.
  • Wenn ein Endpunkt ein aktives bereitgestelltes Modell hat, ändert sich der Dienstanhang nicht. Um die Dienstanhänge beizubehalten, erstellen Sie eine Trafficaufteilung und migrieren Sie den Traffic schrittweise zur neuen Modellversion, bevor Sie die frühere Version entfernen.
  • Vertex AI ermöglicht bis zu 1.000 Verbindungen pro Dienstanhang.
  • Für die Weiterleitungsregel gilt auch ein Kontingentlimit. Weitere Informationen finden Sie unter Kontingente und Limits für Cloud Load Balancing.

Beschränkungen

Vertex AI-Endpunkte mit Private Service Connect unterliegen den folgenden Einschränkungen:

  • Die Bereitstellung von abgestimmten Gemini-Modellen wird nicht unterstützt.
  • Privater ausgehender Traffic innerhalb des Endpunkts wird nicht unterstützt. Da Private Service Connect-Weiterleitungsregeln unidirektional sind, sind andere privateGoogle Cloud -Arbeitslasten in Ihrem Container nicht zugänglich.
  • Der projectAllowlist-Wert eines Endpunkts kann nicht geändert werden.
  • Vertex Explainable AI wird nicht unterstützt.
  • Bevor Sie einen Endpunkt löschen, müssen Sie die Bereitstellung des Modells aufheben.
  • Wenn die Bereitstellung aller Modelle länger als 10 Minuten aufgehoben wird, wird der Dienstanhang möglicherweise gelöscht. Prüfen Sie den Verbindungsstatus von Private Service Connect. Wenn er CLOSED ist, erstellen Sie die Weiterleitungsregel neu.
  • Nachdem Sie einen Endpunkt gelöscht haben, können Sie den Endpunktnamen bis zu 7 Tage lang nicht wiederverwenden.
  • Ein Projekt kann in seinen Private Service Connect-Konfigurationen bis zu 10 verschiedene projectAllowlist-Werte haben.

Nächste Schritte