Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Halaman ini menjelaskan cara mengonfigurasi Pemroses Ekstensi Apigee untuk mengaktifkan penerapan kebijakan API untuk traffic API menggunakan load balancer yang mendukung Ekstensi Layanan.
Untuk mempelajari lebih lanjut kasus penggunaan yang disarankan dan manfaat menggunakan Apigee Extension Processor untuk pengelolaan API, lihat Ringkasan Apigee Extension Processor.
Prosesor Ekstensi Apigee adalah ekstensi traffic (jenis Ekstensi Layanan) yang memungkinkan Anda menggunakan Cloud Load Balancing untuk mengirimkan panggilan dari jalur pemrosesan data load balancer aplikasi ke Prosesor Ekstensi Apigee. Setelah load balancer dan ekstensi traffic dikonfigurasi, traffic API akan diproses oleh load balancer. Kebijakan di Pemroses Ekstensi Apigee diterapkan ke traffic API menggunakan panggilan ekstensi traffic.
Bagian berikut akan memandu Anda melakukan langkah-langkah yang diperlukan untuk mengonfigurasi elemen utama Pemroses Ekstensi Apigee:
Sebelum memulai
Sebelum Anda mulai menyiapkan Apigee Extension Processor, pastikan untuk menyelesaikan tugas berikut:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Apigee, Compute Engine, and Network Services APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Apigee, Compute Engine, and Network Services APIs.
Instal Google Cloud CLI.
Setelah Google Cloud CLI diinstal, jalankan perintah
gcloud components update
untuk mendapatkan komponen gcloud terbaru.Sediakan instance Apigee menggunakan versi
1-15-0-apigee-2
atau yang lebih baru, jika Anda belum melakukannya.Anda dapat melihat versi instance di halaman Instance details di UI Apigee di Google Cloud console. Buka halaman Instances di konsol Google Cloud untuk memilih instance dan melihat detailnya:
Anda dapat menggunakan Pemroses Ekstensi dengan organisasi Apigee Langganan atau Pay-as-you-go. Jika Anda tidak yakin apakah Anda menggunakan organisasi Apigee Berlangganan atau Bayar sesuai penggunaan, hubungi administrator organisasi Apigee Anda. Untuk mengetahui detail selengkapnya tentang penyediaan instance Apigee berbayar, lihat Sebelum memulai.
- Pastikan Anda telah mengaktifkan VPC dan subnet di instance Apigee yang akan Anda gunakan. Buka halaman VPC Networks di konsol Google Cloud :
-
Membuat dan mengelola akun layanan:
Service Account Admin (
roles/iam.serviceAccountAdmin
) -
Membuat dan mengelola ekstensi layanan:
Admin Ekstensi Layanan (
roles/networkservices.serviceExtensionsAdmin
) -
Membuat dan mengelola grup endpoint jaringan (NEG):
Admin Instance Compute (
roles/compute.instanceAdmin
) -
Membuat dan mengelola resource jaringan:
Compute Network Admin (
roles/compute.networkAdmin
) -
Membuat dan mengelola layanan backend:
Compute Load Balancer Admin (
roles/compute.loadBalancerAdmin
) -
Membuat dan mengelola resource Apigee:
Apigee Org Admin (
roles/apigee.admin
) PROJECT_ID
adalah ID project dengan instance Apigee Anda.REGION
adalah Google Cloud region instance Apigee Anda.INSTANCE
adalah nama instance Apigee Anda.VPC_NETWORK_NAME
adalah nama jaringan VPC di project Google Cloud Anda yang ingin digunakan untuk Pemroses Ekstensi Apigee.SUBNET
adalah nama subnet di project Google Cloud yang ingin Anda gunakan untuk Pemroses Ekstensi Apigee.- Buat Load Balancer Aplikasi eksternal global.
- Buat grup endpoint jaringan (NEG).
- Buat layanan backend.
- Buat peta URL.
- Buat proxy target.
- Buat aturan penerusan global.
- Tetapkan konfigurasi
gcloud
untuk menggunakan project Anda saat ini:gcloud config set project PROJECT_ID
Dengan PROJECT_ID adalah ID project dengan instance Apigee Anda.
- Buat alamat IP statis global:
gcloud compute addresses create IP_ADDRESS --ip-version=IPV4 --global
Dengan IP_ADDRESS adalah nama alamat IP yang ingin Anda buat. Nama harus cocok dengan ekspresi reguler
(?:a-z?)
. - Dapatkan alamat IP dan simpan sebagai variabel lingkungan:
IP=$(gcloud compute addresses describe IP_ADDRESS --format="get(address)" --global)
Dengan IP_ADDRESS adalah nama alamat IP yang Anda buat di langkah sebelumnya.
- Buat sertifikat TLS untuk
nip.io
, layanan pihak ketiga yang menyediakan data DNS karakter pengganti untuk alamat IP:gcloud compute ssl-certificates create SSL_CERT_NAME \ --domains="nip.io"
Dengan SSL_CERT_NAME adalah nama sertifikat yang ingin Anda buat.
- Buat NEG:
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=INTERNET_FQDN_PORT \ --default-port=443 \ --global
Dengan NEG_NAME adalah nama NEG yang ingin Anda buat.
- Tambahkan endpoint untuk httpbin.org ke NEG:
gcloud compute network-endpoint-groups update NEG_NAME \ --add-endpoint=fqdn=httpbin.org,port=443 \ --global
Dengan NEG_NAME adalah nama NEG yang Anda buat di langkah sebelumnya.
- Buat layanan backend:
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global
Dengan BACKEND_SERVICE_NAME adalah nama layanan backend yang ingin Anda buat.
- Tambahkan NEG ke backend:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --global-network-endpoint-group \ --global
Dengan:
- BACKEND_SERVICE_NAME adalah nama layanan backend yang Anda buat di langkah sebelumnya.
- NEG_NAME adalah nama NEG yang Anda buat di langkah sebelumnya.
- URL_MAP_NAME adalah nama peta URL yang ingin Anda buat.
- BACKEND_SERVICE_NAME adalah nama layanan backend yang Anda buat di langkah sebelumnya.
- TARGET_PROXY_NAME adalah nama proxy target yang ingin Anda buat.
- URL_MAP_NAME adalah nama peta URL yang Anda buat di langkah sebelumnya.
- SSL_CERT_NAME adalah nama sertifikat SSL yang Anda buat untuk
nip.io
di langkah sebelumnya. - FORWARDING_RULE_NAME adalah nama aturan penerusan yang ingin Anda buat.
- IP_ADDRESS adalah nama alamat IP endpoint NEG yang Anda buat di langkah sebelumnya.
- TARGET_PROXY_NAME adalah nama proxy target yang Anda buat di langkah sebelumnya.
- Buat lingkungan Apigee menggunakan perintah berikut:
curl -i -X POST -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments" -H "Content-Type:application/json" -d \ '{ "name": "ENV_NAME", "displayName": "ENV_NAME", "state": "ACTIVE", "deploymentType": "PROXY", "apiProxyType": "PROGRAMMABLE", "type": "COMPREHENSIVE", "properties": {"property": [ { "name": "apigee-service-extension-enabled", "value": "true" } ] } }'
Dengan ENV_NAME adalah nama lingkungan yang Anda buat. Nama harus berisi antara 2 dan 32 karakter yang dapat berupa huruf kecil, angka, atau tanda hubung. Nama harus diawali dengan huruf dan tidak boleh diakhiri dengan tanda hubung. Nama harus berbeda dari nama lingkungan lainnya di organisasi Anda.
Pastikan lingkungan dibuat:
curl -i -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments"
Daftar lingkungan harus menyertakan lingkungan yang baru saja Anda buat.
- Lampirkan lingkungan yang baru dibuat ke instance Apigee Anda:
curl -i -X POST -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/instances/$INSTANCE/attachments" -H "Content-Type:application/json" -d \ '{ "environment": "ENV_NAME" }'
Dengan ENV_NAME adalah nama lingkungan yang Anda buat di langkah sebelumnya.
Operasi ini dapat memerlukan waktu hingga 10 menit.
- Buat grup lingkungan Apigee:
curl -H "Authorization: Bearer $TOKEN" -X POST \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups" -H "Content-Type:application/json" -d \ '{ "name": "ENV_GROUP_NAME", "hostnames": ["ENV_GROUP_HOSTNAME"] }'
Dengan:
- ENV_GROUP_NAME adalah nama grup lingkungan yang Anda buat.
- ENV_GROUP_HOSTNAME adalah nama host grup lingkungan yang Anda buat. Nama host harus berupa nama domain yang sepenuhnya memenuhi syarat (FQDN).
- Lampirkan lingkungan baru ke grup lingkungan baru:
curl -H "Authorization: Bearer $TOKEN" -X POST\ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups/ENV_GROUP_NAME/attachments" -H "content-type:application/json" -d \ '{ "name": "ENV_GROUP_NAME", "environment": "ENV_NAME" }'
Dengan:
- ENV_GROUP_NAME adalah nama grup lingkungan yang Anda buat.
- ENV_NAME adalah nama lingkungan yang Anda buat di langkah sebelumnya.
- Ikuti langkah-langkah di Membuat proxy API untuk membuat
proxy Tanpa target dengan spesifikasi berikut:
- Template proxy: Pilih Tidak ada target.
- Nama proxy: Masukkan nama proxy.
- Jalur dasar: Tetapkan jalur dasar yang Anda inginkan. Jalur tidak akan digunakan.
Spesifikasi XML untuk proxy akan terlihat mirip dengan berikut ini:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <APIProxy revision="1" name="extproc-sample"> <DisplayName/> <Description/> <CreatedAt>1739581781912</CreatedAt> <LastModifiedAt>1739582447868</LastModifiedAt> <BasePaths>/</BasePaths> <Policies></Policies> <ProxyEndpoints> <ProxyEndpoint>default</ProxyEndpoint> </ProxyEndpoints> </APIProxy>
- Ikuti langkah-langkah di Men-deploy proxy API untuk men-deploy proxy ke lingkungan yang Anda buat sebelumnya.
- Buat Grup Endpoint Jaringan Private Service Connect Apigee.
- Buat ekstensi layanan load balancer.
- Kirim permintaan ke load balancer.
- Dapatkan lampiran layanan PSC Apigee:
PSC_ATTACHMENT=$(curl -s -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/instances" \ | jq -r '.instances[] | select(.name = "'$INSTANCE'") | .serviceAttachment' \ )
Untuk melihat lampiran layanan:
echo $PSC_ATTACHMENT
Responsnya akan muncul seperti berikut:
projects/apigee-psc-autopush/regions/us-west1/serviceAttachments/apigee-us-west1-1234567890-psc-service-attachment
- Buat NEG PSC di region yang sama dengan instance Apigee Anda:
gcloud compute network-endpoint-groups create apigee-neg-$REGION \ --network-endpoint-type=private-service-connect \ --psc-target-service=$PSC_ATTACHMENT \ --region=$REGION \ --network=$VPC_NETWORK_NAME \ --subnet=$SUBNET
Responsnya akan muncul seperti berikut:
projects/ab123456cd78ef910g-tp/regions/asia-northeast1/serviceAttachments/apigee-asia-northeast1-abcd
- Buat layanan backend
HTTP/2
yang mengarah ke NEG PSC, jika belum ada:gcloud compute backend-services create PSC_NEG_BACKEND_SERVICE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP2 \ --global
Dengan PSC_NEG_BACKEND_SERVICE adalah nama layanan backend yang ingin Anda buat.
- Tambahkan layanan backend NEG PSC:
gcloud compute backend-services add-backend PSC_NEG_BACKEND_SERVICE \ --network-endpoint-group=apigee-neg-$REGION \ --network-endpoint-group-region=$REGION \ --global
Dengan PSC_NEG_BACKEND_SERVICE adalah nama layanan backend yang Anda buat di langkah sebelumnya.
- Aktifkan logging untuk layanan backend:
gcloud compute backend-services update PSC_NEG_BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=1.0
Dengan PSC_NEG_BACKEND_SERVICE adalah nama layanan backend yang Anda buat di langkah sebelumnya.
- EXT_PROC_NAME Nama ini harus cocok dengan nama proxy API yang Anda buat di langkah sebelumnya.
- FORWARDING_RULE_NAME adalah nama aturan penerusan yang Anda buat di langkah sebelumnya.
- ENV_GROUP_HOSTNAME adalah nama domain yang digunakan untuk grup lingkungan.
- PSC_NEG_BACKEND_SERVICE adalah nama layanan backend yang Anda buat di langkah sebelumnya.
- Lampirkan kebijakan VerifyAPIKey ke Extension Processor.
- Buat produk API.
- Buat Aplikasi developer dan kredensial Aplikasi.
- Kirim permintaan ke load balancer menggunakan kunci API.
- Di UI Apigee di Konsol Cloud, buka tab Develop, lalu pilih proxy Extension Processor yang Anda buat pada langkah sebelumnya.
- Di bagian Kebijakan, klik + Tambahkan kebijakan.
- Di panel Add policy, pilih VerifyAPIKey dari daftar kebijakan.
- Di panel VerifyAPIKey, isi kolom yang wajib diisi di bagian Policy name dan Display name menggunakan nilai berikut:
- Nama kebijakan: Masukkan nama kebijakan. Contoh,
VA-verify-api-key
. - Nama tampilan: Masukkan nama kebijakan untuk digunakan di UI. Contoh,
VA-verify-api-key
.
- Nama kebijakan: Masukkan nama kebijakan. Contoh,
- Klik Buat.
Spesifikasi XML untuk kebijakan VerifyAPIKey yang disertakan dalam proxy Extension Processor akan terlihat mirip dengan berikut ini:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <VerifyAPIKey continueOnError="false" enabled="true" name="VA-verify-api-key"> <DisplayName>VA-verify-api-key</DisplayName> <Properties/> <APIKey ref="request.queryparam.x-api-key"/> </VerifyAPIKey>
- Deploy revisi proxy baru.
- Ikuti langkah-langkah di Membuat produk API untuk membuat produk API untuk layanan Anda. Anda dapat mengonfigurasi Detail produk untuk produk API sesuai keinginan Anda.
- Ikuti langkah-langkah di Operasi untuk menambahkan set operasi API ke produk API, sesuai dengan
spesifikasi berikut:
- Sumber: Pilih API Proxy dan pilih proxy yang Anda buat pada langkah sebelumnya.
- Operasi: Konfigurasi jalur dan metode berikut:
- Jalur:
/get
dengan Metode:GET
- Jalur:
/PROXY_NAME
dengan Metode:GET
PROXY_NAME adalah nama proxy yang Anda buat di langkah sebelumnya.
- Jalur:
Buka halaman Apigee API management di konsol Google Cloud :
- Buat developer:
- Pilih Distribusi > Developer.
- Di halaman Developer, klik + Buat.
- Di halaman Tambahkan developer, lengkapi kolom yang wajib diisi menggunakan nilai apa pun yang Anda inginkan.
- Klik Tambahkan.
- Membuat Aplikasi:
- Pilih Distribusi> Aplikasi.
- Di halaman Aplikasi, klik + Buat
- Di halaman Buat Aplikasi, isi kolom wajib diisi di bagian Detail Aplikasi menggunakan nilai berikut:
- Nama aplikasi: Masukkan nama untuk Aplikasi. Misalnya,
ext-proc-app
- Developer: Pilih developer yang Anda buat pada langkah sebelumnya, atau developer lain dari daftar.
- Nama aplikasi: Masukkan nama untuk Aplikasi. Misalnya,
- Di bagian Kredensial Aplikasi, klik + Tambahkan Kredensial.
- Di bagian Credential, pilih Never dari kotak daftar Expiry.
- Di bagian Produk, klik + Tambahkan produk untuk menampilkan panel Tambahkan Produk.
- Pilih produk API yang Anda buat di langkah sebelumnya.
- Klik Oke.
- Klik Tambahkan untuk menutup panel Tambahkan Produk.
- Klik Buat.
- Di halaman Detail Aplikasi, di bagian Kredensial, klik
visibility_off untuk menampilkan nilai Kunci.
Salin nilai
Key
. Anda akan menggunakan kunci ini untuk melakukan panggilan API ke layanan Anda pada langkah selanjutnya. - Di halaman App Details, di bagian Credential, klik visibility_off untuk menampilkan nilai App Secret.
- LB_DOMAIN_NAME adalah nama domain yang Anda gunakan untuk load balancer dan sertifikat SSL.
- API_KEY adalah kunci API dari kredensial Aplikasi Developer yang diungkapkan pada langkah sebelumnya.
- Lampirkan kebijakan AssignMessage ke proxy.
- Kirim permintaan ke load balancer untuk menguji penyisipan token.
- Di UI Apigee di Konsol Cloud, buka tab Develop, lalu pilih proxy yang Anda buat pada langkah sebelumnya.
- Di bagian Kebijakan, klik + Tambahkan kebijakan.
- Di panel Tambahkan kebijakan, pilih Tetapkan Pesan dari daftar kebijakan.
- Di panel Tetapkan Pesan, selesaikan kolom wajib diisi di bagian Nama kebijakan dan Nama tampilan menggunakan nilai berikut:
- Nama kebijakan: Masukkan nama kebijakan. Contoh,
AM-auth
. - Nama tampilan: Masukkan nama kebijakan yang akan ditampilkan di UI. Contoh,
AM-auth
.
- Nama kebijakan: Masukkan nama kebijakan. Contoh,
- Klik Buat.
- Di bawah elemen
<Set>
, tambahkan elemen turunan berikut:<Set> <Authentication> <HeaderName>Authorization</HeaderName> <GoogleAccessToken> <Scopes> <Scope>https://www.googleapis.com/auth/cloud-platform</Scope> </Scopes> </GoogleAccessToken> </Authentication> </Set>
- Klik Simpan.
- Deploy revisi baru menggunakan akun layanan Google .
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk menginstal Apigee Extension Processor, minta administrator Anda untuk memberi Anda peran IAM berikut di organisasi:
Untuk mengetahui informasi selengkapnya tentang cara memberikan 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
Di project Google Cloud yang berisi instance Apigee, gunakan perintah berikut untuk menetapkan variabel lingkungan:
export PROJECT_ID=PROJECT_ID
export ORG_NAME=$PROJECT_ID
export REGION=REGION
export INSTANCE=INSTANCE
export VPC_NETWORK_NAME=VPC_NETWORK_NAME
export SUBNET=SUBNET
Dengan:
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
Mengonfigurasi token autentikasi
Untuk mengonfigurasi token autentikasi, jalankan perintah berikut:
export TOKEN=$(gcloud auth print-access-token)
echo $TOKEN
Mengonfigurasi load balancer untuk layanan backend
Bagian berikut menjelaskan langkah-langkah yang diperlukan untuk menyiapkan Load Balancer Aplikasi eksternal global untuk layanan backend, menggunakan httpbin.org sebagai contoh:
Membuat Load Balancer Aplikasi eksternal global
Untuk membuat load balancer:
Membuat grup endpoint jaringan (NEG)
Untuk membuat grup endpoint jaringan (NEG) untuk load balancer:
Membuat layanan backend
Untuk membuat layanan backend yang diekspos oleh load balancer:
Membuat peta URL
Untuk membuat peta URL antara load balancer dan layanan backend, gunakan perintah berikut:
gcloud compute url-maps create URL_MAP_NAME \ --default-service BACKEND_SERVICE_NAME \ --global
Dengan:
Membuat proxy target
Untuk membuat proxy target bagi load balancer, gunakan perintah berikut:
gcloud compute target-https-proxies create TARGET_PROXY_NAME \ --global \ --ssl-certificates SSL_CERT_NAME \ --global-ssl-certificates \ --url-map URL_MAP_NAME \ --global-url-map
Dengan:
Membuat aturan penerusan global
Untuk membuat aturan penerusan global bagi load balancer, gunakan perintah berikut:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=IP_ADDRESS \ --target-https-proxy=TARGET_PROXY_NAME \ --ports=443 \ --global
Dengan:
Mengonfigurasi Pemroses Ekstensi Apigee
Bagian berikut menjelaskan langkah-langkah yang diperlukan untuk menyiapkan Pemroses Ekstensi Apigee:
Membuat lingkungan Apigee
Buat proxy Extension Processor
Untuk membuat proxy API tanpa target Apigee untuk digunakan dengan load balancer Extension Processor:
Mengonfigurasi ekstensi traffic
Bagian ini menjelaskan cara mengonfigurasi ekstensi layanan traffic untuk Extension Processor Anda, menggunakan langkah-langkah berikut:
Membuat Grup Endpoint Jaringan Private Service Connect Apigee
Di bagian ini, Anda akan membuat Grup Endpoint Jaringan (NEG) Private Service Connect (PSC) Apigee yang digunakan untuk terhubung ke instance Apigee Anda. Untuk mempelajari lebih lanjut PSC, lihat Pola jaringan southbound.
Untuk membuat NEG PSC Apigee:
Membuat ekstensi layanan load balancer
Saat membuat ekstensi layanan load balancer, Anda dapat menyesuaikan perilaku proxy prosesor ekstensi dengan mengubah nilai berbagai kolom yang menjelaskan ekstensi, seperti yang ditunjukkan dalam tabel berikut:
Pemrosesan tubuh | Acara yang Didukung | Metadata | Mode pengiriman |
---|---|---|---|
Pemrosesan isi permintaan dan respons |
|
|
|
Hanya pemrosesan isi permintaan |
|
|
|
Hanya pemrosesan isi respons |
|
|
|
Pada langkah ini, Anda akan membuat ekstensi layanan load balancer yang mendukung pemrosesan isi permintaan dan respons:
curl -X POST "https://networkservices.googleapis.com/v1beta1/projects/$PROJECT_ID/locations/global/lbTrafficExtensions?lbTrafficExtensionId=global-xlb-httpbin-apim-policy" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "global-xlb-httpbin-apim-policy", "forwardingRules": [ "https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/global/forwardingRules/FORWARDING_RULE_NAME" ], "extensionChains": [ { "name": "httpbin-apigee-extension-chain", "matchCondition": { "celExpression": "true" }, "extensions": [ { "name": "httpbin-apigee-extension", "authority": "ENV_GROUP_HOSTNAME", "service": "https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/global/backendServices/PSC_NEG_BACKEND_SERVICE", "supportedEvents": [ "REQUEST_HEADERS", "REQUEST_BODY", "REQUEST_TRAILERS", "RESPONSE_HEADERS", "RESPONSE_BODY", "RESPONSE_TRAILERS" ], "timeout": "1s", "requestBodySendMode": "BODY_SEND_MODE_FULL_DUPLEX_STREAMED", "responseBodySendMode": "BODY_SEND_MODE_FULL_DUPLEX_STREAMED" } ] } ], "loadBalancingScheme": "EXTERNAL_MANAGED", "metadata": { "apigee-extension-processor": "EXT_PROC_NAME", "apigee-request-body": "true", "apigee-response-body": "true" } }'
Dengan:
Operasi ini mungkin memerlukan waktu beberapa menit hingga selesai.
Untuk mengonfirmasi bahwa ekstensi layanan telah dibuat, gunakan perintah berikut:
curl "https://networkservices.googleapis.com/v1beta1/projects/$PROJECT_ID/locations/global/lbTrafficExtensions/httpbin-apigee-extension" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json"
Respons akan muncul seperti berikut dan menampilkan aturan penerusan dan layanan backend:
createTime: '2025-03-22T00:29:16.056719825Z' extensionChains: - extensions: - authority: extension-processor-test.hybrid.e2e.apigeeks.net name: httpbin-apigee-extension service: https://www.googleapis.com/compute/v1/projects/123456789012/global/backendServices/ep-test-psc-neg-bes supportedEvents: - REQUEST_HEADERS - REQUEST_BODY - REQUEST_TRAILERS - RESPONSE_HEADERS - RESPONSE_BODY - RESPONSE_TRAILERS timeout: 1s matchCondition: celExpression: 'true' name: httpbin-apigee-extension-chain forwardingRules: - https://www.googleapis.com/compute/v1/projects/123456789012/global/forwardingRules/ep-test-fw-rule loadBalancingScheme: EXTERNAL_MANAGED metadata: apigee-extension-processor: ep-test-proxy apigee-request-body: true apigee-response-body: true name: projects/extension-processor-test/locations/global/lbTrafficExtensions/global-xlb-httpbin-apim-policy updateTime: '2025-03-22T00:29:31.183275055Z'
Mengirim permintaan ke load balancer
Untuk menguji penyiapan load balancer dan Extension Processor, kirim permintaan ke load balancer:
curl "https://LB_DOMAIN_NAME/get"
Dengan LB_DOMAIN_NAME adalah nama domain yang Anda gunakan untuk load balancer dan sertifikat SSL. Jika Anda
menggunakan nip.io
, nama domain akan terlihat mirip dengan IP_ADDRESS.nip.io
.
Responsnya akan muncul seperti berikut:
{"status": 200, { "args": {}, "headers": { ... }, "origin": "173.93.50.108", "url": "https://httpbin.org/get" } }
Menggunakan kebijakan dengan Pemroses Ekstensi
Bagian ini menjelaskan cara menggunakan kebijakan dengan Pemroses Ekstensi.
Dalam contoh ini, kebijakan VerifyAPIkey dan AssignMessage dikonfigurasi untuk Extension Processor. Kebijakan ini digunakan untuk memvalidasi kunci API yang disertakan dalam permintaan ke Apigee dan menyuntikkan token Google ke dalam header permintaan untuk panggilan ke layanan backend. Skenario ini akan berguna bagi penyedia API yang menggunakan Apigee Extension Processor untuk mengizinkan dan mengautentikasi permintaan ke layanan Apigee mereka serta menyuntikkan token autentikasiGoogle yang diperlukan untuk layanan backend seperti Vertex AI secara lancar.
Menambahkan kebijakan VerifyAPIKey untuk validasi kunci API
Bagian berikut menjelaskan cara menggunakan kebijakan VerifyAPIKey untuk memvalidasi kunci API untuk panggilan ke layanan backend Anda menggunakan Prosesor Ekstensi:
Lampirkan kebijakan VerifyAPIKey ke proxy
Untuk melampirkan kebijakan VerifyAPIKey ke proxy Extension Processor:
Membuat produk API
Untuk membuat produk API dan mengonfigurasi set operasi API untuk layanan Anda:
Membuat Aplikasi developer dan kredensial Aplikasi
Untuk membuat Aplikasi developer dan kredensial Aplikasi untuk produk API yang baru dibuat:
Kirim permintaan ke load balancer menggunakan kunci API
Untuk menguji validasi kunci API, kirim permintaan ke load balancer menggunakan kunci API:
curl "https://LB_DOMAIN_NAME/get"
Dengan LB_DOMAIN_NAME adalah nama domain yang Anda gunakan untuk load balancer dan sertifikat SSL.
Respons akan gagal tanpa kunci API.
Kirim permintaan lain ke load balancer, menggunakan kunci API dalam permintaan:
curl "https://LB_DOMAIN_NAME/get?key=API_KEY"
Dengan:
Respons harus menunjukkan otorisasi yang berhasil untuk endpoint. Hal ini menunjukkan bahwa Prosesor Ekstensi telah memvalidasi kunci API dan permintaan kini dapat diproses oleh proxy Apigee.
Tambahkan kebijakan AssignMessage untuk autentikasi Google
Jika ingin menggunakan Extension Processor untuk menyediakan pengelolaan API bagi layanan yang diautentikasi Google, Anda dapat menyuntikkan token akses Google atau token ID Google ke dalam permintaan yang dikirim ke layanan backend menggunakan kebijakan AssignMessage.
Bagian berikut menjelaskan cara menggunakan kebijakan AssignMessage untuk menyuntikkan token autentikasi ke dalam permintaan yang dikirim ke layanan backend menggunakan Extension Processor: Google
Lampirkan kebijakan AssignMessage ke proxy
Untuk menambahkan kebijakan AssignMessage ke proxy Anda:
Akun layanan digunakan untuk membuat Google token akses dan memasukkannya ke header permintaan untuk panggilan API ke Google layanan backend.
Mengirim permintaan ke load balancer untuk menguji penyisipan token
Untuk mengonfirmasi bahwa penyisipan token berfungsi, kirim permintaan ke load balancer:
curl "https://LB_DOMAIN_NAME/get"
Dengan LB_DOMAIN_NAME adalah nama domain yang Anda gunakan untuk load balancer dan sertifikat SSL.
Responsnya akan muncul seperti berikut:
{ ... "headers": { "Accept": "*/*", "Authorization": "Bearer ya29.c.c0ASRK0Gbw03y9cfvxL11DxaRYBQUU18SmUP4Vu63OckHI5cX7wJ4DmGMG2vbDDS69HXJHqMj-lak4tcqOsJGmE65crn2gNuJLanXidwM8", "First": "1.0", "Host": "apigee-ext-proc-test.apigee.net", "Second": "1.0", "Sum": "2", "User-Agent": "curl/8.7.1", "X-Api-Key": "McYcHGR3PTSGLXExvKADwQ1JJeCjgPDUvAakCl0rJKCFaX0Y", "X-Cloud-Trace-Context": "0fd3dadc2a3c328fa968d5f5f1434c29/18300783092696918345" }, ... }
Respons akan menampilkan penyisipan token autentikasi Google yang berhasil ke dalam header permintaan.
Dengan penerapan kebijakan AssignMessage yang berhasil, permintaan klien yang berhasil (berisi kunci API) ke Apigee dalam contoh skenario dimodifikasi lebih lanjut untuk menyertakan token autentikasi Google di header permintaan, seperti yang diperlukan oleh layanan backend yang diautentikasi dengan Google.