Mengonfigurasi antarmuka Private Service Connect untuk pipeline

Anda dapat mengonfigurasi konektivitas pribadi untuk menjalankan pipeline menggunakan antarmuka Private Service Connect (PSC-I). Sebaiknya gunakan Private Service Connect Vertex AI untuk konektivitas pribadi, karena mengurangi kemungkinan kehabisan IP dan mendukung peering transitif.

Vertex AI Pipelines menggunakan infrastruktur PSC-I yang mendasarinya untuk pelatihan guna meneruskan detail koneksi ke tugas pelatihan kustom. Untuk mempelajari lebih lanjut batasan dan harga penggunaan PSC-I dengan pelatihan kustom, lihat Menggunakan antarmuka Private Service Connect untuk Pelatihan Vertex AI.

Batasan

Antarmuka Private Service Connect tidak mendukung alamat IP eksternal.

Harga

Harga untuk antarmuka Private Service Connect dijelaskan di halaman Semua harga jaringan.

Sebelum memulai

Untuk menggunakan PSC-I dengan Vertex AI Pipelines, Anda harus terlebih dahulu Menyiapkan antarmuka Private Service Connect untuk resource Vertex AI.

Membuat proses pipeline dengan PSC-I

Untuk membuat tugas pipeline, Anda harus membuat spesifikasi pipeline terlebih dahulu. Spesifikasi pipeline adalah objek dalam memori yang Anda buat dengan mengonversi definisi pipeline yang dikompilasi.

Membuat spesifikasi pipeline

Ikuti petunjuk berikut untuk membuat spesifikasi pipeline dalam memori yang dapat Anda gunakan untuk membuat proses pipeline:

  1. Tentukan pipeline dan kompilasi menjadi file YAML. Untuk mengetahui informasi selengkapnya tentang cara menentukan dan mengompilasi pipeline, lihat Mem-build pipeline.

  2. Gunakan contoh kode berikut untuk mengonversi file YAML pipeline yang dikompilasi menjadi spesifikasi pipeline dalam memori.

    import yaml
    with open("COMPILED_PIPELINE_PATH", "r") as stream:
      try:
        pipeline_spec = yaml.safe_load(stream)
        print(pipeline_spec)
      except yaml.YAMLError as exc:
        print(exc)
    

    Ganti COMPILED_PIPELINE_PATH dengan jalur lokal ke file YAML pipeline yang dikompilasi.

Membuat proses pipeline

Gunakan contoh berikut untuk membuat operasi pipeline menggunakan PSC-I:

Python

Untuk membuat proses pipeline dengan PSC-I menggunakan Vertex AI SDK untuk Python, konfigurasi proses menggunakan definisi aiplatform_v1beta1/services/pipeline_service.

# Import aiplatform and the appropriate API version v1beta1
from google.cloud import aiplatform, aiplatform_v1beta1

# Initialize the Vertex SDK using PROJECT_ID and LOCATION
aiplatform.init(project="PROJECT_ID", location="LOCATION")

# Create the API endpoint
client_options = {
"api_endpoint": f"LOCATION-aiplatform.googleapis.com"
}

# Initialize the PipelineServiceClient
client = aiplatform_v1beta1.PipelineServiceClient(client_options=client_options)

# Construct the request
request = aiplatform_v1beta1.CreatePipelineJobRequest(
parent=f"projects/PROJECT_ID/locations/LOCATION",
pipeline_job=aiplatform_v1beta1.PipelineJob(
    display_name="DISPLAY_NAME",
    pipeline_spec=PIPELINE_SPEC,
    runtime_config=aiplatform_v1beta1.PipelineJob.RuntimeConfig(
        gcs_output_directory="OUTPUT_DIRECTORY",
    ),
    psc_interface_config=aiplatform_v1beta1.PscInterfaceConfig(
        network_attachment="NETWORK_ATTACHMENT_NAME"
    ),
)

# Make the API call
response = client.create_pipeline_job(request=request)

# Print the response
print(response)

Ganti kode berikut:

  • PROJECT_ID: Project ID project tempat Anda ingin membuat pipeline dijalankan.
  • LOCATION: Region tempat Anda ingin membuat pipeline berjalan.
  • DISPLAY_NAME: Nama tugas pipeline. Panjang maksimum untuk nama tampilan adalah 128 karakter UTF-8.
  • PIPELINE_SPEC: Spesifikasi pipeline yang Anda buat di Membuat spesifikasi pipeline.
  • OUTPUT_DIRECTORY: URI bucket Cloud Storage untuk menyimpan artefak output. Jalur ini adalah direktori output root untuk pipeline dan digunakan untuk membuat jalur artefak output.
  • NETWORK_ATTACHMENT_NAME: Nama lampiran jaringan Compute Engine yang akan dilampirkan ke resource PipelineJob. Untuk mendapatkan lampiran jaringan, Anda harus menyelesaikan langkah-langkah di bagian Sebelum memulai. Untuk informasi selengkapnya tentang lampiran jaringan, lihat Menyiapkan jaringan VPC, subnet, dan lampiran jaringan.

REST

Untuk membuat proses pipeline, kirim permintaan POST menggunakan metode pipelineJobs.create.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID project tempat Anda ingin membuat pipeline dijalankan.
  • LOCATION: Region tempat Anda ingin membuat pipeline berjalan.
  • DISPLAY_NAME: Nama tugas pipeline. Panjang maksimum untuk nama tampilan adalah 128 karakter UTF-8.
  • PIPELINE_SPEC: Spesifikasi pipeline yang Anda buat di Membuat spesifikasi pipeline.
  • OUTPUT_DIRECTORY: URI bucket Cloud Storage untuk menyimpan artefak output. Jalur ini adalah direktori output root untuk pipeline dan digunakan untuk membuat jalur artefak output.
  • NETWORK_ATTACHMENT_NAME: Nama lampiran jaringan Compute Engine yang akan dilampirkan ke resource PipelineJob. Untuk mendapatkan lampiran jaringan, Anda harus menyelesaikan langkah-langkah di bagian Sebelum memulai. Untuk informasi selengkapnya tentang lampiran jaringan, lihat Menyiapkan jaringan VPC, subnet, dan lampiran jaringan.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs

Isi JSON permintaan:

{
  "display_name": "DISPLAY_NAME",
  "pipeline_spec": "PIPELINE_SPEC",
  "runtime_config": {
       "gcs_output_directory": "OUTPUT_DIRECTORY",
   },
   "psc_interface_config": {
       "network_attachment": "NETWORK_ATTACHMENT_NAME"
   }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs" | Select-Object -Expand Content

Anda akan melihat output yang mirip dengan berikut ini. PIPELINE_JOB_ID mewakili ID operasi pipeline dan SERVICE_ACCOUNT_NAME mewakili akun layanan yang digunakan untuk menjalankan pipeline.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/pipelineJobs/PIPELINE_JOB_ID",
  "displayName": "DISPLAY_NAME",
  "createTime": "20xx-01-01T00:00:00.000000Z",
  "updateTime": "20xx-01-01T00:00:00.000000Z",
  "pipelineSpec": PIPELINE_SPEC,
  "state": "PIPELINE_STATE_PENDING",
  "labels": {
    "vertex-ai-pipelines-run-billing-id": "VERTEX_AI_PIPELINES_RUN_BILLING_ID"
  },
  "runtimeConfig": {
    "gcsOutputDirectory": "OUTPUT_DIRECTORY"
  },
  "serviceAccount": "SERVICE_ACCOUNT_NAME"
  "pscInterfaceConfig": {
    "networkAttachment": "NETWORK_ATTACHMENT_NAME"
  }
}