Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat dokumentasi
Apigee Edge.
Halaman ini menjelaskan cara menghubungkan pemroses ekstensi Apigee ke Agent Gateway, sehingga kebijakan Apigee diterapkan ke panggilan yang dilakukan agen AI ke modelnya, alatnya, dan server Model Context Protocol (MCP) yang digunakannya—tanpa mengubah agen.
Agent Gateway adalah titik masuk dan keluar jaringan untuk traffic agen. Load balancer bukan load balancer, sehingga tidak menggunakan ekstensi traffic. Sebagai gantinya, gateway mendelegasikan otorisasi ke ekstensi otorisasi, dan Anda mengonfigurasi pemroses ekstensi sebagai ekstensi tersebut. Setelah terhubung, gateway mengirimkan setiap permintaan dan respons agen ke Apigee untuk diproses, dan Apigee akan menampilkan hasil.
Gambar berikut menunjukkan resource yang Anda buat di halaman ini, dan jalur yang dilalui satu permintaan agen melalui resource tersebut:
Pada gambar 1, permintaan ditangani sebagai berikut:
- Agen membuat permintaan HTTPS biasa ke model, alat, atau server MCP-nya. Agen terikat ke gateway saat dibuat, dan tidak memerlukan perubahan.
- Gateway menahan permintaan dan memanggil ekstensi otorisasi untuk mendapatkan keputusan.
- Panggilan keluar melalui network attachment, sehingga berasal dari dalam Jaringan VPC Anda.
- Zona DNS pribadi Anda me-resolve nama host panggilan ke alamat IP internal endpoint Private Service Connect.
- Endpoint meneruskan panggilan ke lampiran layanan instance Apigee Anda.
- Grup lingkungan merutekan panggilan berdasarkan nama hostnya ke proxy tanpa target, tempat kebijakan Anda dijalankan.
- Proxy menampilkan putusan ke gateway. Apigee tidak pernah meneruskan traffic agen—proxy tidak memiliki target.
- Jika putusan mengizinkan permintaan, gateway akan mengirimkan permintaan asli ke tujuannya.
AuthzPolicy dan AuthzExtension pada gambar 1 adalah konfigurasi
bukan traffic: kebijakan melampirkan ekstensi ke gateway, dan ekstensi memberi nama
proxy pemroses ekstensi yang berjalan. Anda membuat keduanya di
Mengonfigurasi ekstensi otorisasi.
Untuk menghubungkan pemroses ekstensi ke load balancer, lihat Mulai menggunakan pemroses ekstensi Apigee.
Bagian berikut akan memandu Anda melalui langkah-langkahnya:
- Konfigurasi pemroses ekstensi Apigee.
- Hubungkan Agent Gateway ke Apigee.
- Konfigurasi ekstensi otorisasi.
- Verifikasi koneksi.
Sebelum memulai
Sebelum memulai, selesaikan tugas berikut:
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Apigee, Compute Engine, Network Services, Network Security, and Cloud DNS APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Apigee, Compute Engine, Network Services, Network Security, and Cloud DNS APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.Instal Google Cloud CLI.
Setelah menginstal Google Cloud CLI, jalankan perintah
gcloud components updateuntuk mendapatkan komponen gcloud terbaru.Sediakan instance Apigee jika Anda belum melakukannya.
Di konsol Google Cloud , buka halaman Apigee Instances.
Deploy Agent Gateway di region yang sama dengan instance Apigee Anda, dengan
governedAccessPathditetapkan keAGENT_TO_ANYWHEREsehingga gateway mengatur traffic keluar agen. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Gateway Agen.Anda akan memperbarui konfigurasi jaringan gateway ini nanti, di Memperbarui Gateway Agen, setelah zona DNS ada.
Pastikan Anda memiliki VPC dan subnet yang dapat digunakan oleh Agent Gateway dan endpoint Private Service Connect.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk menghubungkan pemroses ekstensi Apigee ke Agent Gateway, minta administrator untuk memberi Anda peran IAM berikut:
-
Membuat dan mengelola resource Apigee:
Apigee Org Admin (
roles/apigee.admin) di organisasi -
Membuat dan mengelola ekstensi layanan:
Service Extensions Admin (
roles/networkservices.serviceExtensionsAdmin) di organisasi -
Membuat dan mengelola kebijakan otorisasi:
Network Security Admin (
roles/networksecurity.admin) di organisasi -
Membuat dan mengelola resource jaringan, termasuk endpoint Private Service Connect dan DNS:
Compute Network Admin (
roles/compute.networkAdmin) di organisasi
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menetapkan variabel lingkungan
Tetapkan variabel lingkungan berikut untuk mengidentifikasi resource yang Anda buat di Sebelum memulai. Setiap bagian selanjutnya di halaman ini menentukan variabel tambahan yang diperlukan, pada saat Anda membuat resource yang mereka sebutkan.
export PROJECT_ID=PROJECT_IDexport ORG_NAME=$PROJECT_IDexport REGION=REGIONexport INSTANCE=INSTANCEexport VPC_NETWORK_NAME=VPC_NETWORK_NAMEexport SUBNET=SUBNETexport GATEWAY=GATEWAY
Dengan:
PROJECT_IDadalah ID project yang berisi instance Apigee Anda.REGIONadalah Google Cloud region instance Apigee Anda.INSTANCEadalah nama instance Apigee Anda.VPC_NETWORK_NAMEdanSUBNETadalah jaringan dan subnet VPC yang digunakan oleh Agent Gateway dan endpoint Private Service Connect.GATEWAYadalah nama Agent Gateway yang Anda deploy.
Untuk mengonfirmasi bahwa variabel lingkungan telah ditetapkan dengan benar, jalankan perintah berikut dan tinjau outputnya:
echo $PROJECT_ID $ORG_NAME $REGION $INSTANCE $VPC_NETWORK_NAME $SUBNET $GATEWAY
Pilih nama host info
Gateway menjangkau Apigee di nama host pribadi yang Anda pilih. Anda memilihnya sekarang, sebelum membuat apa pun, karena resource pertama yang Anda buat—grup lingkungan Apigee—menggunakannya sebagai nama host, sementara zona DNS yang menyelesaikannya tidak dibuat hingga Membuat zona DNS pribadi.
export DNS_DOMAIN=DNS_DOMAINexport EXTPROC_HOST=apigee-extproc.$DNS_DOMAIN
Dengan DNS_DOMAIN adalah domain DNS pribadi yang tidak harus dapat di-resolve di internet publik, ditulis tanpa titik di akhir, misalnya internal.example.com. Tindakan ini memberikan EXTPROC_HOST dari
apigee-extproc.internal.example.com. Anda dapat menggunakan label selain
apigee-extproc, asalkan nama host tetap berada di dalam
DNS_DOMAIN.
Mengonfigurasi token autentikasi
export TOKEN=$(gcloud auth print-access-token)echo $TOKEN
Mengonfigurasi pemroses ekstensi Apigee
Beri nama resource Apigee yang dibuat bagian ini:
export EXTPROC_ENV=EXTPROC_ENVexport EXTPROC_ENVGROUP=EXTPROC_ENVGROUPexport PROXY_NAME=PROXY_NAME
Dengan:
EXTPROC_ENVdanEXTPROC_ENVGROUPadalah nama yang Anda pilih untuk grup lingkungan dan lingkungan Apigee yang dikhususkan untuk pemroses ekstensi, misalnyaextproc-envdanextproc-envgroup. Setiap nama harus terdiri dari 2 hingga 32 karakter huruf kecil, angka, atau tanda hubung, harus diawali dengan huruf, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan harus berbeda dari setiap nama lingkungan lainnya di organisasi Anda.PROXY_NAMEadalah nama yang Anda pilih untuk proxy pemroses ekstensi, misalnyaextproc-authz.
Konfigurasi sisi Apigee sama seperti untuk load balancer. Ikuti Mengonfigurasi pemroses ekstensi Apigee dalam panduan memulai untuk:
- Buat lingkungan Apigee dengan properti
apigee-service-extension-enabledyang ditetapkan ketrue, lampirkan ke instance Anda, dan buat grup lingkungan yang nama hostnya adalah$EXTPROC_HOST. - Buat dan deploy proxy pemroses ekstensi no-target ke lingkungan tersebut.
Kemudian, cantumkan deployment di lingkungan:
curl -s -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments/$EXTPROC_ENV/deployments"
Lingkungan dapat memiliki lebih dari satu proxy yang di-deploy, jadi dalam respons, temukan entri yang
apiProxy-nya adalah $PROXY_NAME dan catat revision-nya.
Anda dapat meninjau proxy di konsol Google Cloud :
Tetapkan variabel berikut ke revisi tersebut, yang Anda perlukan di Verifikasi koneksi:
export REVISION=REVISION
Menghubungkan Agent Gateway ke Apigee
Gateway menjangkau Apigee melalui endpoint
Private Service Connect di VPC Anda, yang ditemukan dengan menyelesaikan $EXTPROC_HOST di zona DNS pribadi.
Menemukan lampiran layanan
Temukan lampiran layanan instance Apigee Anda:
curl -s -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/instances"
Tetapkan variabel berikut ke nilai serviceAttachment instance di
region Anda:
export SERVICE_ATTACHMENT=SERVICE_ATTACHMENT
Membuat network attachment
Agent Gateway keluar ke VPC Anda melalui network attachment. Pilih
nama untuknya, misalnya agent-gateway-attachment, lalu buat:
export NETWORK_ATTACHMENT=NETWORK_ATTACHMENTgcloud compute network-attachments create $NETWORK_ATTACHMENT \ --region=$REGION --subnets=$SUBNET --connection-preference=ACCEPT_AUTOMATIC
Buat endpoint Private Service Connect
Cadangkan alamat IP internal dan buat endpoint Private Service Connect:
gcloud compute addresses create apigee-extproc-psc-ip \ --region=$REGION --subnet=$SUBNET --purpose=GCE_ENDPOINTgcloud compute forwarding-rules create apigee-extproc-psc-endpoint \ --region=$REGION --network=$VPC_NETWORK_NAME \ --address=apigee-extproc-psc-ip \ --target-service-attachment=$SERVICE_ATTACHMENT
Di konsol Google Cloud , buka halaman Private Service Connect .
Konfirmasi bahwa endpoint melaporkan pscConnectionStatus: ACCEPTED, dan tetapkan
variabel berikut ke alamat IP-nya:
gcloud compute forwarding-rules describe apigee-extproc-psc-endpoint \ --region=$REGION --format="value(pscConnectionStatus,IPAddress)"export PSC_IP=PSC_IP
Jika statusnya adalah PENDING, project Anda tidak ada di
consumerAcceptList instance Apigee, dan koneksi tidak dapat diterima.
Membuat zona DNS pribadi
Buat zona DNS pribadi untuk $DNS_DOMAIN dan data A yang
me-resolve $EXTPROC_HOST ke alamat IP endpoint:
gcloud dns managed-zones create extproc-zone \ --dns-name=$DNS_DOMAIN. --visibility=private --networks=$VPC_NETWORK_NAME \ --description="Apigee extension processor callout host"gcloud dns record-sets create $EXTPROC_HOST. --type=A --ttl=300 \ --rrdatas=$PSC_IP --zone=extproc-zone
Memperbarui Gateway Agen
Perbarui Agent Gateway dari Sebelum memulai agar keluar melalui lampiran jaringan Anda dan dapat menyelesaikan zona yang Anda buat.
Ekspor konfigurasi saat ini:
gcloud network-services agent-gateways export $GATEWAY \ --location=$REGION --destination=agent-gateway.yaml
Di
agent-gateway.yaml, tambahkan bloknetworkConfigberikut, dengan mengganti setiap placeholder dengan nilai variabel lingkungan yang sesuai. File diedit secara langsung, sehingga variabel shell tidak diganti di sini:networkConfig: egress: networkAttachment: projects/PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT dnsPeeringConfig: domains: [ DNS_DOMAIN. ] targetProject: PROJECT_ID targetNetwork: projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
Biarkan bagian file lainnya, termasuk
googleManaged.governedAccessPath,protocols, danregistries, seperti yang diekspor.Impor konfigurasi yang diedit:
gcloud network-services agent-gateways import $GATEWAY \ --location=$REGION --source=agent-gateway.yaml
Untuk mengetahui kumpulan lengkap kolom Agent Gateway, lihat Mengonfigurasi Agent Gateway.
Mengonfigurasi ekstensi otorisasi
Dua resource menghubungkan gateway ke proxy pemroses ekstensi Anda: ekstensi otorisasi yang mengarah ke Apigee, dan kebijakan otorisasi yang melampirkan ekstensi ke gateway.
Buat ekstensi otorisasi
Pilih nama untuk ekstensi otorisasi, misalnya apigee-authz-extension.
Kolom metadata memilih proxy Apigee mana yang berjalan dan apakah isi pesan
dikirim ke proxy tersebut:
export AUTHZ_EXT=AUTHZ_EXTcat > authz-extension.yaml <<EOF name: projects/$PROJECT_ID/locations/$REGION/authzExtensions/$AUTHZ_EXT authority: $EXTPROC_HOST service: $EXTPROC_HOST timeout: 5s metadata: apigee-extension-processor: $PROXY_NAME apigee-request-body: 'true' apigee-response-body: 'true' EOFgcloud service-extensions authz-extensions import $AUTHZ_EXT \ --source=authz-extension.yaml --location=$REGION
Dengan:
apigee-extension-processormemilih proxy prosesor ekstensi yang memproses traffic.apigee-request-bodydanapigee-response-bodymembuat isi permintaan dan respons tersedia di proxy sebagairequest.contentdanresponse.content. Tanpa itu, kebijakan yang memeriksa payload tidak akan menemukan apa pun.
Buat kebijakan otorisasi
Pilih nama untuk kebijakan otorisasi, misalnya
apigee-content-authz-policy. Kebijakan ini melampirkan ekstensi ke gateway dan menentukan traffic mana yang dikirim ke Apigee:
export AUTHZ_POLICY=AUTHZ_POLICYcat > authz-policy.yaml <<EOF name: projects/$PROJECT_ID/locations/$REGION/authzPolicies/$AUTHZ_POLICY action: CUSTOM policyProfile: CONTENT_AUTHZ customProvider: authzExtension: resources: - projects/$PROJECT_ID/locations/$REGION/authzExtensions/$AUTHZ_EXT httpRules: - to: operations: - paths: - prefix: "/" target: resources: - projects/$PROJECT_ID/locations/$REGION/agentGateways/$GATEWAY EOFgcloud beta network-security authz-policies import $AUTHZ_POLICY \ --source=authz-policy.yaml --location=$REGION
Gunakan policyProfile: CONTENT_AUTHZ agar isi pesan diperiksa.
Kebijakan REQUEST_AUTHZ hanya mengevaluasi header permintaan.
Memverifikasi koneksi
Untuk menghasilkan traffic, Anda memerlukan agen yang keluarannya diatur oleh gateway ini. Agen
terikat ke gateway saat agen dibuat, dengan menyetel konfigurasi Agent Gateway-nya ke $GATEWAY; Anda tidak dapat menggunakan koneksi dengan permintaan HTTP
langsung ke gateway. Untuk mengetahui informasi selengkapnya, lihat
Mengonfigurasi
Agent Gateway.
Mulai sesi debug Apigee di proxy pemroses ekstensi, lalu kirim satu permintaan melalui agen:
curl -s -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments/$EXTPROC_ENV/apis/$PROXY_NAME/revisions/$REVISION/debugsessions?timeout=600" \ -d '{"count":15,"tracesize":5120,"filter":"(request.uri Like \"*generateContent*\")"}'
Dalam transaksi yang direkam, konfirmasi bahwa:
- URL permintaan adalah alamat yang dipanggil agen, seperti endpoint model atau host alat, bukan jalur dasar Apigee;
request.contentdanresponse.contentdiisi, yang mengonfirmasi bahwa metadata isi pada ekstensi otorisasi berfungsi.
Jika tidak ada transaksi yang muncul, periksa apakah nama host grup lingkungan, data DNS, dan
kolom authority dan service ekstensi semuanya
$EXTPROC_HOST, apakah
endpoint Private Service Connect melaporkan ACCEPTED, dan apakah
governedAccessPath gateway adalah AGENT_TO_ANYWHERE.
Langkah berikutnya
- Baca ringkasan prosesor ekstensi Apigee.
- Mulai menggunakan pemroses ekstensi Apigee di load balancer.