1. Ringkasan
Vertex AI API dapat diakses melalui internet, tetapi di perusahaan Anda, Anda mungkin ingin mengakses Vertex AI API secara pribadi tanpa melalui internet. Di lab ini, Anda akan terlebih dahulu mengakses Anthropic Claude Opus 4.5 dan Gemini 3 Pro di Vertex melalui Python SDK yang berjalan di instance VM melalui internet publik.
Kemudian, Anda akan membuat endpoint Private Service Connect ke Google API, dan mengubah alur traffic untuk menggunakan endpoint pribadi guna terhubung ke Vertex API.
Contoh kode Python akan mengambil pertanyaan input, meneruskannya ke Claude Opus untuk menghasilkan jawaban, dan output tersebut akan diteruskan ke Gemini Pro 3 untuk membuat ringkasan teks dan menghasilkan gambar.
Di lab ini, Anda akan membuat pola berikut.
Gambar 1.

2. Tujuan
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Menyiapkan instance VM untuk menggunakan python SDK
- Mengaktifkan kartu model Anthropic di Vertex AI
- Menghubungkan ke Anthropic Claude Opus 4.5 dan Gemini 3 Pro melalui skrip Python
- Mengonfigurasi endpoint PSC untuk terhubung ke Googleapis
- Mengonfigurasi entri DNS manual
- Memverifikasi jalur konektivitas ke Googleais
- Jalankan skrip python untuk membuat kueri model
Penyiapan lab
Penyiapan lingkungan mandiri
- Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.



- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
- Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai
PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project. - Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Mulai Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Dari Google Cloud Console, klik ikon Cloud Shell di toolbar kanan atas:

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda dalam codelab ini dapat dilakukan di browser. Anda tidak perlu menginstal apa pun.
3. Menyiapkan Lingkungan
Kita akan membuat VPC kustom dengan aturan Firewall. Jika sudah memiliki VPC dan Project, Anda dapat melewati bagian ini.
Buka Cloud Shell yang berada di bagian atas konsol Anda di sebelah kanan. Kemudian, konfigurasikan sebagai berikut: 
- Aktifkan beberapa API yang akan kita gunakan di lab ini
gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable servicedirectory.googleapis.com
- Tetapkan beberapa variabel. Variabel ini adalah Project ID dan Network ID VPC kustom (Anda akan membuat VPC di langkah 4).
projectid=$(gcloud config get-value project)
networkid=anthropic-net
echo $projectid
echo $networkid
clear
- Sekarang buat VPC kustom bernama anthropic-net.
gcloud compute networks create $networkid \
--project=$projectid \
--subnet-mode=custom \
--mtu=1460 \
--bgp-routing-mode=global
- Buat vm1-subnet di VPC baru
gcloud compute networks subnets create vm-subnet \
--project=$projectid --range=10.0.88.0/24 \
--stack-type=IPV4_ONLY --network=$networkid \
--region=us-east1
- Menambahkan aturan firewall ICMP, SSH, dan HTTP ke VPC Anda
gcloud compute firewall-rules create $networkid-allow-icmp --project=$projectid \
--network=$networkid \
--description="Allows ICMP connections from any source to any instance on the network." \
--direction=INGRESS \
--priority=65534 \
--source-ranges=0.0.0.0/0 \
--action=ALLOW \
--rules=icmp
gcloud compute firewall-rules create $networkid-allow-ssh \
--project=$projectid \
--network=$networkid \
--description="Allows TCP connections from any source to any instance on the network using port 22." \
--direction=INGRESS --priority=65534 \
--source-ranges=0.0.0.0/0 --action=ALLOW \
--rules=tcp:22
gcloud compute firewall-rules create $networkid-allow-web \
--project=$projectid \
--network=$networkid \
--description="Allows TCP connections on port 8080." \
--direction=INGRESS --priority=1000 \
--source-ranges=0.0.0.0/0 --action=ALLOW \
--rules=tcp:8080
4. Mengaktifkan Anthropic di Model Garden Vertex
Kita perlu memberikan akses eksternal keluar ke internet, jadi mari buat dan lampirkan gateway Cloud NAT.
- Buka dasbor Vertex AI, lalu pilih Model Garden
- Telusuri Anthropic, lalu pilih Claude Opus 4.5
3. Pilih Aktifkan, Anda akan diminta untuk mengisi beberapa info. Isi formulir, lalu pilih Berikutnya 4. Di halaman terakhir, pilih Setuju untuk mengaktifkan Claude 4.5 Opus

5. Buat gateway NAT dan VM
Kita perlu memberikan akses eksternal keluar ke internet, jadi mari buat dan lampirkan gateway Cloud NAT.
Di Cloud Shell, gunakan perintah berikut
- Buat Cloud NAT.
gcloud compute routers create anthro-out-nat \
--network $networkid \
--region us-east1
- Buat gateway Cloud NAT.
gcloud compute routers nats create anthro-out-nat-gw \
--router-region us-east1 \
--router anthro-out-nat \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
Sekarang, mari kita buat satu VM untuk mengakses Anthropic di Vertex AI melalui Python SDK.
Kita akan membuat VM untuk menguji dengan paket berikut yang diinstal
- Dalam sesi Cloud Shell yang sama, buat anthro-vm menggunakan perintah berikut.
gcloud compute instances create anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--network-interface=stack-type=IPV4_ONLY,subnet=vm-subnet,no-address,network=$networkid \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install python3 python3-dev python3-venv -y
sudo apt-get install tcpdump dnsutils -y
sudo -i
sudo mkdir -p ~/py-anthro-env
cd ~/py-anthro-env
python3 -m venv env
source env/bin/activate
pip install -U ipython google-genai 'anthropic[vertex]'"
Anda akan melihat VM yang dibuat tanpa alamat IP publik. Sekarang, mari kita konfigurasi
6. Mengonfigurasi VM dan pengujian
- Di Google Cloud Shell, gunakan SSH untuk mengakses VM baru yang disebut anthro-vm.
gcloud compute ssh anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--tunnel-through-iap \
-- -L 8080:localhost:8080
- Setelah Anda melakukan SSH ke anthro-vm, aktifkan lingkungan venv Anda:
sudo -i -- bash -c 'cd py-anthro-env && source env/bin/activate && exec bash'
- Sekarang, mari kita autentikasi ini untuk melakukan beberapa pengujian nanti. Jalankan perintah berikut di VM, tekan y saat diminta.
gcloud auth application-default login
- Selanjutnya, salin URL yang muncul dan diawali dengan https://, buka tab baru di jendela browser lab Anda, lalu tempel URL tersebut. Terima perintah.
- Saat Anda melihat perintah berikut, pilih salin, kembali ke sesi anthro-vm VM, dan untuk Enter authorization code:, tempel kode yang Anda salin, lalu tekan enter untuk melakukan autentikasi.

- Sekarang, lakukan pengujian cepat untuk melihat apakah kita dapat terhubung ke Vertex Gemini API.
dig *-aiplatform.googleapis.com
- Anda akan melihat sesuatu yang serupa (alamatnya akan berbeda). Perhatikan bahwa jalur ini menggunakan alamat IP publik karena API adalah API publik.
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> *-aiplatform.googleapis.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3728 ;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;*-aiplatform.googleapis.com. IN A ;; ANSWER SECTION: *-aiplatform.googleapis.com. 300 IN A 172.217.204.95 *-aiplatform.googleapis.com. 300 IN A 172.217.203.95 *-aiplatform.googleapis.com. 300 IN A 173.194.215.95 *-aiplatform.googleapis.com. 300 IN A 142.250.98.95 *-aiplatform.googleapis.com. 300 IN A 173.194.217.95 *-aiplatform.googleapis.com. 300 IN A 142.251.107.95 *-aiplatform.googleapis.com. 300 IN A 74.125.196.95
- Sekarang mari kita gunakan python. Ketik
ipythonuntuk mengaktifkan antarmuka ipython.
ipython

- Sekarang salin dan tempel berikut. Perintah ini meminta Claude Opus 4.5 "What are the key steps to building Agentic AI?" (Apa saja langkah-langkah utama untuk membangun AI Agentik?) kemudian mengambil output dan meneruskannya ke Gemini 3 Pro yang membuat ringkasan serta menghasilkan dan menyimpan gambar di VM.
import os
import sys
import google.auth
from pathlib import Path
from google import genai
from google.genai import types
from anthropic import AnthropicVertex
# 1. Setup & Auth
print("--- Authenticating ---")
creds, project_id = google.auth.default()
LOCATION = "global"
# 2. Initialize Clients
print(f"--- Initializing Clients for Project: {project_id} ---")
google_client = genai.Client(vertexai=True, location=LOCATION, project=project_id)
claude_client = AnthropicVertex(region=LOCATION, project_id=project_id)
# 3. Define the Question
question = "What are the key steps to building Agentic AI?"
print(f"\n--- Asking Claude: {question} ---")
# 4. Get Claude's Research
msg = claude_client.messages.create(
model="claude-opus-4-5@20251101",
max_tokens=2048,
messages=[{"role": "user", "content": question}]
)
claude_text = msg.content[0].text
print(f"✓ Claude Answered ({len(claude_text)} chars)")
# 5. Send to Gemini 3 for Image & Summary
print("\n--- Sending to Gemini 3 (Image + Text) ---")
gemini_prompt = f"""
I am providing you with a technical explanation generated by Claude Opus 4.5.
1. READ the text below.
2. GENERATE a concise, bulleted executive summary.
3. CREATE a high-quality, futuristic illustration for a tech blog header (16:9).
--- INPUT TEXT ---
{claude_text}
"""
response = google_client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=gemini_prompt,
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE'],
temperature=0.7
)
)
# 6. Save and Display Results
print("\n--- Results ---")
for part in response.parts:
if part.text:
print(f"\n[SUMMARY]:\n{part.text.strip()[:500]}...\n(Summary truncated for brevity)")
elif image := part.as_image():
filename = "gemini_agentic_ai.png"
image.save(filename)
print(f"\n✓ IMAGE SAVED to: {os.path.abspath(filename)}")
- Tekan enter dua kali untuk menjalankan dan melihat hasil teks.
- Untuk melihat gambar, kita perlu mengaktifkan layanan web di python. Jalankan perintah berikut di sesi ipython
!python3 -m http.server 8080
- Sekarang, buka opsi pratinjau web di Cloud Shell, pilih pratinjau di port 8080

- Di sesi web terbuka, pilih gemini_agentic_ai.png untuk melihat gambar yang dihasilkan. (Contoh gambar di bawah dibuat oleh AI)

- Di Cloud Shell, tekan Ctrl C untuk keluar dari sesi, lalu ketik exit dan tekan enter (ulangi tiga kali) untuk kembali ke halaman beranda Cloud Shell
- Mari kita lanjutkan.
7. Buat endpoint PSC ke googleapis
Untuk mengaktifkan konektivitas pribadi ke endpoint Vertex API, kita akan membuat endpoint Private Service Connect untuk googleapis. Hal ini akan memungkinkan kita menggunakan alamat IP pribadi yang kita tetapkan untuk merutekan traffic ke googleapis yang kita butuhkan, dalam hal ini Vertex Gemini.
- Buka Cloud Shell jika belum terbuka. Buat IP untuk endpoint PSC. Dalam hal ini, kita akan menggunakan 192.168.255.230.
gcloud compute addresses create anthro-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=192.168.255.230 \
--network=$networkid
- Memverifikasi IP yang dibuat
gcloud compute addresses list --filter="name=( 'anthro-ip' ...)"
- Selanjutnya, buat endpoint PSC
gcloud compute forwarding-rules create pscanthrovertex \
--global \
--network=$networkid \
--address=anthro-ip \
--target-google-apis-bundle=all-apis
- Tindakan ini akan membuat endpoint dan entri direktori layanan. Memverifikasi keberadaan endpoint
gcloud compute forwarding-rules describe pscanthrovertex --global
8. Memverifikasi konektivitas endpoint melalui zona direktori layanan otomatis
Mari kita terhubung menggunakan endpoint pribadi untuk terhubung ke Gemini.
- Buka Instance VM anthro-vm1. Pilih SSH dan SSH ke VM
- Periksa jalur konektivitas ke aiplatform-pscanthrovertex.p.googleapis.com menggunakan perintah
dig. Anda akan melihat IP endpoint PSC192.168.255.230
dig aiplatform-pscanthrovertex.p.googleapis.com
- Keluar dari semua sesi SSH
9. Membuat entri DNS Manual ke googleapis
Anda dapat membuat entri DNS manual untuk mengarah ke endpoint PSC menggunakan DNS pribadi. Tindakan ini akan memengaruhi semua jaringan yang Anda tetapkan ke perangkat tersebut.
Jalankan perintah berikut di Cloud Shell.
- Buat zona DNS pribadi untuk googleapis.com dan lampirkan ke jaringan anthropic-net.
gcloud dns managed-zones create googleapis-private \
--description="Private DNS zone for googleapis.com" \
--dns-name="googleapis.com." \
--visibility="private" \
--networks="anthropic-net"
- Buat data A yang memetakan domain root ke IP endpoint Private Service Connect (192.168.255.230)
gcloud dns record-sets create "googleapis.com." \
--zone="googleapis-private" \
--type="A" \
--ttl="300" \
--rrdatas="192.168.255.230"
- Buat data CNAME karakter pengganti untuk mengalihkan semua subdomain (misalnya, aiplatform.googleapis.com) ke data A root
gcloud dns record-sets create "*.googleapis.com." \
--zone="googleapis-private" \
--type="CNAME" \
--ttl="300" \
--rrdatas="googleapis.com."
- Cantumkan set data di zona untuk mengonfirmasi bahwa data A dan CNAME telah dibuat dengan benar.
gcloud dns record-sets list --zone="googleapis-private"
- Di tampilan konsol, tampilannya akan seperti ini. Anda akan melihat penyiapan dengan data A dan CNAME seperti ini, lihat

- Selanjutnya, kita akan memverifikasi konektivitas dengan perubahan ini di anthro-vm
10. Memverifikasi konektivitas endpoint melalui alamat IP
Mari kita terhubung menggunakan endpoint pribadi untuk terhubung ke Gemini.
- Di Google Cloud Shell, lakukan SSH ke VM baru yang disebut anthro-vm.
gcloud compute ssh anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--tunnel-through-iap \
-- -L 8080:localhost:8080
- Setelah Anda melakukan SSH ke anthro-vm, aktifkan lingkungan venv Anda:
sudo -i -- bash -c 'cd py-anthro-env && source env/bin/activate && exec bash'
- Sekarang mari kita lakukan
diguntuk melihat apakah kita dapat terhubung ke Vertex Gemini API.
dig *-aiplatform.googleapis.com
- Anda akan melihat sesuatu yang serupa (alamat akan berbeda). Perhatikan bahwa jalur ini melalui alamat IP endpoint PSC.
; <<>> DiG 9.18.41-1~deb12u1-Debian <<>> *-aiplatform.googleapis.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33703 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;*-aiplatform.googleapis.com. IN A ;; ANSWER SECTION: *-aiplatform.googleapis.com. 300 IN CNAME googleapis.com. googleapis.com. 300 IN A 192.168.255.230 ;; Query time: 8 msec ;; SERVER: 169.254.169.254#53(169.254.169.254) (UDP) ;; WHEN: Sat Nov 29 15:19:15 UTC 2025 ;; MSG SIZE rcvd: 86
- Menggunakan perintah
ping. Kita dapat melakukan pengujian cepat. Catatan: IP ini adalah endpoint PSC dan ping Anda tidak akan berhasil.
ping -c 2 aiplatform.googleapis.com
- Sekarang mari kita gunakan python. Ketik
ipythonuntuk mengaktifkan antarmuka ipython.
ipython

- Sekarang salin dan tempel berikut. Perintah ini meminta Claude Opus 4.5 "Give me a step by step recipe to make a roti for a beginner?" (Berikan saya resep langkah demi langkah untuk membuat roti bagi pemula). kemudian mengambil output dan meneruskannya ke Gemini 3 Pro yang membuat ringkasan serta menghasilkan gambar yang disimpan di VM
import os
import sys
import google.auth
from pathlib import Path
from google import genai
from google.genai import types
from anthropic import AnthropicVertex
# 1. Setup & Auth
print("--- Authenticating ---")
creds, project_id = google.auth.default()
LOCATION = "global"
# 2. Initialize Clients
print(f"--- Initializing Clients for Project: {project_id} ---")
google_client = genai.Client(vertexai=True, location=LOCATION, project=project_id)
claude_client = AnthropicVertex(region=LOCATION, project_id=project_id)
# 3. Define the Question
question = "Give me a step by step recipe to make a roti for a beginner?"
print(f"\n--- Asking Claude: {question} ---")
# 4. Get Claude's Research
msg = claude_client.messages.create(
model="claude-opus-4-5@20251101",
max_tokens=2048,
messages=[{"role": "user", "content": question}]
)
claude_text = msg.content[0].text
print(f"✓ Claude Answered ({len(claude_text)} chars)")
# 5. Send to Gemini 3 for Image & Summary
print("\n--- Sending to Gemini 3 (Image + Text) ---")
gemini_prompt = f"""
I am providing you with a technical explanation generated by Claude Opus 4.5.
1. READ the text below.
2. GENERATE a concise, bulleted executive summary.
3. CREATE a high-quality, futuristic illustration for a tech blog header (16:9).
--- INPUT TEXT ---
{claude_text}
"""
response = google_client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=gemini_prompt,
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE'],
temperature=0.7
)
)
# 6. Save and Display Results
print("\n--- Results ---")
for part in response.parts:
if part.text:
print(f"\n[SUMMARY]:\n{part.text.strip()[:500]}...\n(Summary truncated for brevity)")
elif image := part.as_image():
filename = "cookingroti.png"
image.save(filename)
print(f"\n✓ IMAGE SAVED to: {os.path.abspath(filename)}")
- Tekan enter dua kali untuk menjalankan dan melihat hasil teks.
- Untuk melihat gambar, kita perlu mengaktifkan layanan web di python, jadi jalankan kode berikut di sesi ipython
!python3 -m http.server 8080
- Sekarang buka opsi pratinjau web di Cloud Shell, pilih pratinjau di port 8080
- Pilih cookingroti.png untuk melihat gambar yang dibuat. (Contoh di bawah dibuat oleh AI)

- Di Cloud Shell, tekan Ctrl C untuk keluar dari sesi, lalu ketik exit dan tekan enter (ulangi tiga kali) untuk kembali ke halaman beranda Cloud Shell
11. Selamat
Selamat, Anda telah bersenang-senang dan berhasil terhubung ke Anthropic Claude Opus 4.5 & Gemini 3 Pro di Vertex menggunakan alamat API publik dan secara pribadi menggunakan Endpoint Private Service Connect untuk Google API. Fungsi ini dapat memperluas konektivitas API pribadi ke lingkungan lokal/cloud lain yang terhubung melalui (Interconnect, Cross-Cloud Interconnect, dan VPC).
Pembersihan
gcloud compute instances delete anthro-vm --zone=us-east1-b --quiet
gcloud compute routers nats delete anthro-out-nat-gw --router=anthro-out-nat --region=us-east1 --quiet
gcloud compute routers delete anthro-out-nat --region=us-east1 --quiet
gcloud compute firewall-rules delete anthropic-net-allow-icmp anthropic-net-allow-ssh anthropic-net-allow-web --quiet
gcloud compute forwarding-rules delete pscanthrovertex --global --quiet
gcloud dns record-sets delete googleapis.com. --zone googleapis-private --type A --quiet
gcloud dns record-sets delete *.googleapis.com --zone googleapis-private --type CNAME --quiet
gcloud dns managed-zones delete googleapis-private --quiet
gcloud compute addresses delete anthro-ip --global --quiet
gcloud compute networks subnets delete vm-subnet --region=us-east1 --quiet
gcloud compute networks delete anthropic-net --quiet
Langkah berikutnya/Pelajari lebih lanjut
Anda dapat membaca lebih lanjut tentang jaringan Vertex AI
Codelab: Mengakses chat Gemini 3 Pro menggunakan Python SDK melalui endpoint Private Service Connect
Codelab: Membangun Agen AI dengan ADK:Dasar-Dasar
Ikuti lab berikutnya
Lanjutkan quest Anda dengan Google Cloud, dan pelajari lab Google Cloud Skills Boost lainnya:
