Mulai menggunakan Pemroses Ekstensi Apigee

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:

  • Konfigurasi load balancer untuk layanan backend.
  • Konfigurasi Apigee Extension Processor.
  • Konfigurasi ekstensi traffic.
  • Menggunakan kebijakan dengan Extension Processor.
  • Sebelum memulai

    Sebelum Anda mulai menyiapkan Apigee Extension Processor, pastikan untuk menyelesaikan tugas berikut:

    1. 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.
    2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    3. Verify that billing is enabled for your Google Cloud project.

    4. Enable the Apigee, Compute Engine, and Network Services APIs.

      Enable the APIs

    5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    6. Verify that billing is enabled for your Google Cloud project.

    7. Enable the Apigee, Compute Engine, and Network Services APIs.

      Enable the APIs

    8. Instal Google Cloud CLI.

      Setelah Google Cloud CLI diinstal, jalankan perintah gcloud components update untuk mendapatkan komponen gcloud terbaru.

    9. 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:

      Buka Instance

      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.

    10. Pastikan Anda telah mengaktifkan VPC dan subnet di instance Apigee yang akan Anda gunakan. Buka halaman VPC Networks di konsol Google Cloud :

      Buka Jaringan VPC

    11. 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:

      • 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.

      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:

      1. Buat Load Balancer Aplikasi eksternal global.
      2. Buat grup endpoint jaringan (NEG).
      3. Buat layanan backend.
      4. Buat peta URL.
      5. Buat proxy target.
      6. Buat aturan penerusan global.

      Membuat Load Balancer Aplikasi eksternal global

      Untuk membuat load balancer:

      1. 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.

      2. 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?).

      3. 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.

      4. 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.

      Membuat grup endpoint jaringan (NEG)

      Untuk membuat grup endpoint jaringan (NEG) untuk load balancer:

      1. 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.

      2. 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.

      Membuat layanan backend

      Untuk membuat layanan backend yang diekspos oleh load balancer:

      1. 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.

      2. 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.

      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:

      • URL_MAP_NAME adalah nama peta URL yang ingin Anda buat.
      • BACKEND_SERVICE_NAME adalah nama layanan backend yang Anda buat di langkah sebelumnya.

      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:

      • 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.

      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:

      • 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.

      Mengonfigurasi Pemroses Ekstensi Apigee

      Bagian berikut menjelaskan langkah-langkah yang diperlukan untuk menyiapkan Pemroses Ekstensi Apigee:

      1. Buat lingkungan Apigee.
      2. Buat proxy Extension Processor.

      Membuat lingkungan Apigee

      1. 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.

      2. 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.

      3. 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).
      4. 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.

      Buat proxy Extension Processor

      Untuk membuat proxy API tanpa target Apigee untuk digunakan dengan load balancer Extension Processor:

      1. 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>
      2. Ikuti langkah-langkah di Men-deploy proxy API untuk men-deploy proxy ke lingkungan yang Anda buat sebelumnya.

      Mengonfigurasi ekstensi traffic

      Bagian ini menjelaskan cara mengonfigurasi ekstensi layanan traffic untuk Extension Processor Anda, menggunakan langkah-langkah berikut:

      1. Buat Grup Endpoint Jaringan Private Service Connect Apigee.
      2. Buat ekstensi layanan load balancer.
      3. Kirim permintaan ke load balancer.

      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:

      1. 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

      2. 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

      3. 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.

      4. 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.

      5. 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.

      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

      REQUEST_HEADERS

      REQUEST_BODY

      REQUEST_TRAILERS

      RESPONSE_HEADERS

      RESPONSE_BODY

      RESPONSE_TRAILERS

      apigee-request-body: true

      apigee-response-body: true

      requestBodySendMode: BODY_SEND_MODE_FULL_DUPLEX_STREAMED

      responseBodySendMode: BODY_SEND_MODE_FULL_DUPLEX_STREAMED

      Hanya pemrosesan isi permintaan

      REQUEST_HEADERS

      REQUEST_BODY

      REQUEST_TRAILERS

      RESPONSE_HEADERS

      apigee-request-body: true

      requestBodySendMode: BODY_SEND_MODE_FULL_DUPLEX_STREAMED

      Hanya pemrosesan isi respons

      REQUEST_HEADERS

      RESPONSE_HEADERS

      RESPONSE_BODY

      RESPONSE_TRAILERS

      apigee-response-body: true

      responseBodySendMode: BODY_SEND_MODE_FULL_DUPLEX_STREAMED

      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:

      • 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.

      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:

      1. Lampirkan kebijakan VerifyAPIKey ke Extension Processor.
      2. Buat produk API.
      3. Buat Aplikasi developer dan kredensial Aplikasi.
      4. Kirim permintaan ke load balancer menggunakan kunci API.

      Lampirkan kebijakan VerifyAPIKey ke proxy

      Untuk melampirkan kebijakan VerifyAPIKey ke proxy Extension Processor:

      1. Di UI Apigee di Konsol Cloud, buka tab Develop, lalu pilih proxy Extension Processor yang Anda buat pada langkah sebelumnya.
      2. Di bagian Kebijakan, klik + Tambahkan kebijakan.
      3. Di panel Add policy, pilih VerifyAPIKey dari daftar kebijakan.
      4. 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.
      5. 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>
      6. Deploy revisi proxy baru.

      Membuat produk API

      Untuk membuat produk API dan mengonfigurasi set operasi API untuk layanan Anda:

      1. 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.
      2. 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.

      Membuat Aplikasi developer dan kredensial Aplikasi

      Untuk membuat Aplikasi developer dan kredensial Aplikasi untuk produk API yang baru dibuat:

      1. Buka halaman Apigee API management di konsol Google Cloud :

        Pengelolaan API Apigee

      2. Buat developer:
        1. Pilih Distribusi > Developer.
        2. Di halaman Developer, klik + Buat.
        3. Di halaman Tambahkan developer, lengkapi kolom yang wajib diisi menggunakan nilai apa pun yang Anda inginkan.
        4. Klik Tambahkan.
      3. Membuat Aplikasi:
        1. Pilih Distribusi> Aplikasi.
        2. Di halaman Aplikasi, klik + Buat
        3. 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.
        4. Di bagian Kredensial Aplikasi, klik + Tambahkan Kredensial.
        5. Di bagian Credential, pilih Never dari kotak daftar Expiry.
        6. Di bagian Produk, klik + Tambahkan produk untuk menampilkan panel Tambahkan Produk.
        7. Pilih produk API yang Anda buat di langkah sebelumnya.
        8. Klik Oke.
        9. Klik Tambahkan untuk menutup panel Tambahkan Produk.
        10. Klik Buat.
      4. Di halaman Detail Aplikasi, di bagian Kredensial, klik untuk menampilkan nilai Kunci.

        Salin nilai Key. Anda akan menggunakan kunci ini untuk melakukan panggilan API ke layanan Anda pada langkah selanjutnya.

      5. Di halaman App Details, di bagian Credential, klik untuk menampilkan nilai App Secret.

      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:

      • 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.

      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

      1. Lampirkan kebijakan AssignMessage ke proxy.
      2. Kirim permintaan ke load balancer untuk menguji penyisipan token.

      Lampirkan kebijakan AssignMessage ke proxy

      Untuk menambahkan kebijakan AssignMessage ke proxy Anda:

      1. Di UI Apigee di Konsol Cloud, buka tab Develop, lalu pilih proxy yang Anda buat pada langkah sebelumnya.
      2. Di bagian Kebijakan, klik + Tambahkan kebijakan.
      3. Di panel Tambahkan kebijakan, pilih Tetapkan Pesan dari daftar kebijakan.
      4. 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.
      5. Klik Buat.
      6. 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>
      7. Klik Simpan.
      8. Deploy revisi baru menggunakan akun layanan Google .

      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.