Private Service Connect memungkinkan Anda mengakses prediksi online Vertex AI dengan aman dari beberapa project konsumen dan jaringan VPC tanpa memerlukan alamat IP publik, akses internet publik, atau rentang alamat IP internal yang di-peering secara eksplisit.
Sebaiknya gunakan Private Service Connect untuk kasus penggunaan prediksi online yang memiliki persyaratan berikut:
- Mewajibkan koneksi pribadi dan aman
- Memerlukan latensi rendah
- Tidak perlu dapat diakses secara publik
Private Service Connect menggunakan aturan penerusan di jaringan VPC Anda untuk mengirim traffic secara searah ke layanan prediksi online Vertex AI. Aturan penerusan terhubung ke lampiran layanan yang mengekspos layanan Vertex AI ke jaringan VPC Anda. Untuk mengetahui informasi selengkapnya, lihat Tentang mengakses layanan Vertex AI melalui Private Service Connect. Untuk mempelajari cara menyiapkan Private Service Connect lebih lanjut, lihat ringkasan Private Service Connect dalam dokumentasi Virtual Private Cloud (VPC).
Membuat endpoint prediksi online
Gunakan salah satu metode berikut untuk membuat endpoint prediksi online dengan Private Service Connect yang diaktifkan:
Konsol
Di konsol Google Cloud, di Vertex AI, buka halaman Online prediction.
Klik Create.
Berikan nama tampilan untuk endpoint.
Pilih
Pribadi.Pilih
Private Service Connect.Klik Select project IDs.
Pilih project yang akan ditambahkan ke daftar yang diizinkan untuk endpoint.
Klik Lanjutkan.
Pilih spesifikasi model Anda. Untuk mengetahui informasi selengkapnya, lihat Men-deploy model ke endpoint.
Klik Create untuk membuat endpoint dan men-deploy model Anda ke endpoint tersebut.
Catat ID endpoint dalam respons.
API
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
VERTEX_AI_PROJECT_ID
: ID project Google Cloud tempat Anda membuat endpoint prediksi online.REGION
: region tempat Anda menggunakan Vertex AI.VERTEX_AI_ENDPOINT_NAME
: nama tampilan untuk endpoint prediksi online.ALLOWED_PROJECTS
: daftar yang dipisahkan koma untuk project ID Google Cloud, masing-masing diapit tanda kutip, misalnya,["PROJECTID1", "PROJECTID2"]
. Jika project tidak ada dalam daftar ini, Anda tidak akan dapat mengirim permintaan prediksi ke endpoint Vertex AI dari project tersebut. Pastikan untuk menyertakan VERTEX_AI_PROJECT_ID dalam daftar ini sehingga Anda dapat memanggil endpoint dari project yang sama.
Metode HTTP dan URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints
Meminta isi JSON:
{ "displayName": "VERTEX_AI_ENDPOINT_NAME", "privateServiceConnectConfig": { "enablePrivateServiceConnect": true, "projectAllowlist": ["ALLOWED_PROJECTS"] } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "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
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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)
# 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"],
),
)
Ganti kode berikut:
VERTEX_AI_PROJECT_ID
: ID project Google Cloud tempat Anda membuat endpoint prediksi onlineREGION
: region tempat Anda menggunakan Vertex AIVERTEX_AI_ENDPOINT_NAME
: nama tampilan untuk endpoint prediksi onlineALLOWED_PROJECTS
: daftar yang dipisahkan koma untuk project ID Google Cloud, masing-masing diapit tanda kutip. Contoh,["PROJECTID1", "PROJECTID2"]
. Jika project tidak ada dalam daftar ini, Anda tidak akan dapat mengirim permintaan prediksi ke endpoint Vertex AI dari project tersebut. Pastikan untuk menyertakan VERTEX_AI_PROJECT_ID dalam daftar ini sehingga Anda dapat memanggil endpoint dari project yang sama.
Catat ENDPOINT_ID
di akhir URI endpoint yang ditampilkan:
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')
Men-deploy model
Setelah membuat endpoint prediksi online dengan Private Service Connect yang diaktifkan, deploy model Anda ke endpoint tersebut, dengan mengikuti langkah-langkah yang diuraikan dalam Men-deploy model ke endpoint.
Mendapatkan URI lampiran layanan
Saat Anda men-deploy model, lampiran layanan akan dibuat untuk endpoint prediksi online. Lampiran layanan ini mewakili
layanan prediksi online Vertex AI yang diekspos ke jaringan VPC Anda. Jalankan
perintah gcloud ai endpoints describe
untuk mendapatkan URI lampiran layanan.
Hanya cantumkan nilai
serviceAttachment
dari detail endpoint:gcloud ai endpoints describe ENDPOINT_ID \ --project=VERTEX_AI_PROJECT_ID \ --region=REGION \ | grep -i serviceAttachment
Ganti kode berikut:
ENDPOINT_ID
: ID endpoint prediksi online AndaVERTEX_AI_PROJECT_ID
: ID project Google Cloud tempat Anda membuat endpoint prediksi onlineREGION
: region untuk permintaan ini
Outputnya mirip dengan hal berikut ini:
serviceAttachment: projects/ac74a9f84c2e5f2a1-tp/regions/us-central1/serviceAttachments/gkedpm-c6e6a854a634dc99472bb802f503c1
Catat seluruh string di kolom
serviceAttachment
. Ini adalah URI lampiran layanan.
Membuat aturan penerusan
Anda dapat mencadangkan alamat IP internal dan membuat aturan penerusan dengan alamat tersebut. Untuk membuat aturan penerusan, Anda memerlukan URI lampiran layanan dari langkah sebelumnya.
Untuk mencadangkan alamat IP internal untuk aturan penerusan, gunakan perintah
gcloud compute addresses create
:gcloud compute addresses create ADDRESS_NAME \ --project=VPC_PROJECT_ID \ --region=REGION \ --subnet=SUBNETWORK \ --addresses=INTERNAL_IP_ADDRESS
Ganti kode berikut:
ADDRESS_NAME
: nama untuk alamat IP internalVPC_PROJECT_ID
: ID project Google Cloud yang menghosting jaringan VPC Anda. Jika endpoint prediksi online dan aturan penerusan Private Service Connect Anda dihosting dalam project yang sama, gunakanVERTEX_AI_PROJECT_ID
untuk parameter ini.REGION
: region Google Cloud tempat aturan penerusan Private Service Connect akan dibuatSUBNETWORK
: nama subnet VPC yang berisi alamat IPINTERNAL_IP_ADDRESS
: alamat IP internal yang akan dicadangkan. Parameter ini bersifat opsional.- Jika parameter ini ditentukan, alamat IP harus berada dalam rentang alamat IP utama subnet. Alamat IP dapat berupa alamat RFC 1918 atau subnet dengan rentang non-RFC.
- Jika parameter ini dihilangkan, alamat IP internal akan dialokasikan secara otomatis.
- Untuk mengetahui informasi selengkapnya, lihat Mencadangkan alamat IPv4 atau IPv6 internal statis yang baru.
Untuk memverifikasi bahwa alamat IP sudah dicadangkan, gunakan perintah
gcloud compute addresses list
:gcloud compute addresses list --filter="name=(ADDRESS_NAME)" \ --project=VPC_PROJECT_ID
Dalam respons, verifikasi bahwa status
RESERVED
muncul untuk alamat IP.Untuk membuat aturan penerusan dan mengarahkannya ke lampiran layanan prediksi online, gunakan perintah
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
Ganti kode berikut:
PSC_FORWARDING_RULE_NAME
: nama untuk aturan penerusanVPC_NETWORK_NAME
: nama jaringan VPC tempat endpoint akan dibuatSERVICE_ATTACHMENT_URI
: lampiran layanan yang Anda catat sebelumnya
Untuk memverifikasi bahwa lampiran layanan menerima endpoint, gunakan perintah
gcloud compute forwarding-rules describe
:gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \ --project=VPC_PROJECT_ID \ --region=REGION
Dalam respons, pastikan status
ACCEPTED
muncul di kolompscConnectionStatus
.
Opsional: Mendapatkan alamat IP internal
Jika tidak menentukan nilai untuk INTERNAL_IP_ADDRESS
saat membuat aturan penerusan, Anda bisa mendapatkan alamat yang dialokasikan secara otomatis menggunakan perintah gcloud compute forwarding-rules describe
:
gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \
--project=VERTEX_AI_PROJECT_ID \
--region=REGION \
| grep -i IPAddress
Ganti kode berikut:
VERTEX_AI_PROJECT_ID
: project ID AndaREGION
: nama region untuk permintaan ini
Mendapatkan prediksi online
Mendapatkan prediksi online dari endpoint dengan Private Service Connect mirip dengan mendapatkan prediksi online dari endpoint publik, kecuali untuk pertimbangan berikut:
- Permintaan harus dikirim dari project yang ditentukan dalam
projectAllowlist
saat endpoint prediksi online dibuat. - Jika akses global tidak diaktifkan, permintaan harus dikirim dari region yang sama.
Untuk mendapatkan prediksi menggunakan REST, Anda harus terhubung menggunakan alamat IP statis endpoint, kecuali jika Anda membuat data DNS untuk alamat IP internal. Misalnya, Anda harus mengirim permintaan
predict
ke endpoint berikut:https://INTERNAL_IP_ADDRESS/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
Ganti
INTERNAL_IP_ADDRESS
dengan alamat IP internal yang Anda cadangkan sebelumnya.Berikut adalah contoh cara mengirim permintaan predict menggunakan 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=INTERNAL_IP_ADDRESS ) print(response)
Ganti
PATH_TO_INPUT_FILE
dengan jalur ke file JSON yang berisi input permintaan.
Opsional: Buat data DNS untuk alamat IP internal
Sebaiknya buat data DNS agar Anda bisa mendapatkan prediksi online dari endpoint tanpa perlu menentukan alamat IP internal.
Untuk mengetahui informasi selengkapnya, lihat Cara lain untuk mengonfigurasi DNS.
Buat zona DNS pribadi menggunakan perintah
gcloud dns managed-zones create
. Zona ini dikaitkan dengan jaringan VPC tempat aturan penerusan dibuat.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."
Ganti kode berikut:
ZONE_NAME
: nama zona DNS
Untuk membuat data DNS di zona, gunakan perintah
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
Ganti kode berikut:
VERTEX_AI_PROJECT_NUMBER
: nomor project untuk projectVERTEX_AI_PROJECT_ID
Anda. Anda dapat menemukan nomor project ini di konsol Google Cloud. Untuk mengetahui informasi selengkapnya, lihat Mengidentifikasi project.INTERNAL_IP_ADDRESS
: alamat IP internal endpoint prediksi online Anda
Sekarang Anda dapat mengirim permintaan
predict
ke:https://ENDPOINT_ID.REGION-VERTEX_AI_PROJECT_NUMBER.prediction.p.vertexai.goog/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
Berikut adalah contoh cara mengirim permintaan predict ke zona DNS menggunakan 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)
Ganti DNS_NAME
dengan nama DNS yang Anda tentukan dalam
perintah gcloud dns record-sets create
.
Batasan
Endpoint Vertex AI dengan Private Service Connect tunduk pada batasan berikut:
- Keluar pribadi dari dalam endpoint tidak didukung. Karena aturan penerusan Private Service Connect bersifat satu arah, workload Google Cloud pribadi lainnya tidak dapat diakses di dalam penampung Anda.
- Konfigurasi
projectAllowlist
endpoint tidak dapat diubah. - Logging akses tidak didukung.
- Logging permintaan dan respons tidak didukung.
- Vertex Explainable AI tidak didukung.
Batasan pratinjau
Dalam Pratinjau, batasan tambahan berikut berlaku:
- Jika Anda men-undeploy semua model Private Service Connect dan men-deploy ulang model tersebut, Anda harus membuat ulang aturan penerusan, meskipun nama lampiran layanan sama.
- Semua endpoint harus memiliki konfigurasi
projectAllowlist
yang sama.