Memanggil proxy API dengan akses khusus internal

Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee hybrid.

Lihat Dokumentasi Apigee Edge.

Dokumen ini menjelaskan cara memanggil proxy API dari klien yang berjalan di jaringan internal Anda jaringan. Langkah-langkah ini berguna untuk menguji konfigurasi Anda jika Apigee disediakan untuk menggunakan {i>routing<i} jaringan internal. Anda dapat mengikuti langkah-langkah dalam dokumen ini jika Apigee disediakan dengan salah satu konfigurasi perutean jaringan berikut:

Opsi penyediaan Opsi jaringan Langkah-langkah penyediaan
Langganan berbayar Dengan peering VPC Pemilihan rute internal (VPC)
Pemilihan rute internal (PSC)
Bayar sesuai penggunaan Dengan peering VPC Pemilihan rute internal (VPC)
Pemilihan rute internal (PSC)
Evaluasi Dengan peering VPC Mengonfigurasi pemilihan rute (internal)
Evaluasi Tanpa peering VPC Pemilihan rute internal (PSC)

Lihat juga Opsi jaringan.

Sebelum memulai

Lakukan langkah-langkah penyiapan awal berikut:

  1. Jika belum dilakukan, lakukan inisialisasi Cloud SDK seperti yang dijelaskan dalam Melakukan inisialisasi gcloud CLI, atau pastikan bahwa project Google Cloud yang Anda buat di Prasyarat adalah project default untuk gcloud.
  2. Tentukan variabel lingkungan lokal berikut:

    export PROJECT_ID=YOUR_PROJECT_ID
    export AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
    export SUBNET=NETWORK_NAME
    export INSTANCE_NAME=INSTANCE_NAME
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")

    Dengan keterangan:

    • PROJECT_ID adalah project ID Cloud yang Anda buat sebagai bagian dari Prasyarat.
    • AUTH menentukan header Authentication dengan token pemilik. Anda akan menggunakan header ini saat memanggil API Apigee. Perhatikan bahwa token akan habis masa berlakunya setelah periode waktu tertentu dan ketika itu terjadi, Anda cukup membuat ulang menggunakan perintah yang sama. Sebagai mengetahui informasi selengkapnya, lihat halaman referensi untuk perintah print-access-token.
    • SUBNET adalah subnet yang ditentukan selama penyediaan. Misalnya: default
    • INSTANCE_NAME: Nama instance baru. Contoh, my-runtime-instance. Nama harus diawali dengan huruf kecil, panjangnya maksimal 32 karakter, dan hanya dapat menyertakan huruf kecil huruf, angka, dan tanda hubung. Entri tidak boleh dimulai atau diakhiri dengan tanda hubung dan harus dengan setidaknya dua karakter.
    • PROJECT_NUMBERadalah nomor project Cloud yang Anda buat sebagai bagian Prasyarat. Contoh ini memberikan perintah gcloud untuk mendapatkan nomor project untuk Anda.
  3. Dapatkan nilai properti location dari instance Apigee Anda. Nilai ini adalah region tempat instance berada, seperti us-west1:
    curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances
  4. Pilih zona dalam region instance, dan masukkan nama zona dalam variabel. Zona harus berada di dalam instance. Contoh:
    export VM_ZONE="us-west1-b"

    Jika memerlukan bantuan untuk mengidentifikasi zona dalam region instance, Anda dapat menggunakan perintah gcloud ini guna menampilkan nama zona untuk region runtime yang dikonfigurasi. Contoh:

    VM_ZONE=$(gcloud compute zones list | grep "us-west1" | head -n 1 | awk '{print $1}')

Membuat VM dan memanggil proxy API

Selanjutnya, buat VM baru di dalam jaringan VPC Anda menggunakan komputasi gcloud beta perintah. VM bertindak sebagai jembatan yang memungkinkan Anda mengirim permintaan ke beban internal IP balancer. Setelah VM disiapkan, Anda dapat memanggil proxy API yang di-deploy:

  1. Contoh berikut membuat VM baru dengan beberapa opsi umum dan menggunakan lingkungan variabel yang Anda tetapkan sebelumnya sebagai input.
    gcloud beta compute --project=$PROJECT_ID \
      instances create $INSTANCE_NAME \
      --zone=$VM_ZONE \
      --machine-type=e2-micro \
      --subnet=$SUBNET \
      --network-tier=PREMIUM \
      --no-restart-on-failure \
      --maintenance-policy=TERMINATE \
      --preemptible \
      --service-account=$PROJECT_NUMBER-compute@ \
      --scopes=https://www.googleapis.com/auth/cloud-platform \
      --tags=http-server,https-server \
      --image=debian-12-bookworm-v20240701 \
      --image-project=debian-cloud \
      --boot-disk-size=10GB \
      --boot-disk-type=pd-standard \
      --boot-disk-device-name=$INSTANCE_NAME \
      --no-shielded-secure-boot \
      --shielded-vtpm \
      --shielded-integrity-monitoring \
      --reservation-affinity=any
  2. Buka koneksi aman ke VM baru yang baru saja Anda buat.

    gcloud compute ssh $INSTANCE_NAME --zone=$VM_ZONE --project=$PROJECT_ID
  3. Di shell VM, instal utilitas jq. ID ini digunakan dalam langkah berikutnya:
    sudo apt-get update -y
    sudo apt-get install -y jq
    
  4. Di shell VM, buat variabel lingkungan berikut untuk memudahkan Anda menyalin/menempel permintaan proxy API:
    export AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
    export PROJECT_ID=YOUR_PROJECT_ID
    export ENV_GROUP_HOSTNAME=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups -s | jq -r '.environmentGroups[0].hostnames[0]')
    
  5. Pastikan variabel ditetapkan dengan benar:
    echo $AUTH
    echo $PROJECT_ID
    echo $ENV_GROUP_HOSTNAME
  6. Memanggil proxy API. Pilih opsi di bawah yang sesuai dengan cara Anda mengonfigurasi pemilihan rute selama penyediaan Apigee.

    Opsi untuk penginstalan yang menggunakan peering VPC

    • (Opsi TLS #1) Jika Anda mengonfigurasi load balancer internal (ILB) di project, seperti yang dijelaskan dalam Perutean internal (VPC), memanggil {i>proxy<i} menggunakan IP ILB tersebut. Opsi ini menggunakan sertifikat CA yang berada di bawah kendali Anda dan yang dibuat saat load balancer internal telah dibuat:
      1. Dapatkan IP ILB di proyek Anda, seperti yang dijelaskan dalam Siapkan Load Balancing HTTP(S) Internal dengan backend grup instance VM.
      2. Memanggil proxy API:
        curl -H "Host: $ENV_GROUP_HOSTNAME" \
          https://INTERNAL_LOAD_BALANCER_IP/PROXY_BASEPATH
    • (Opsi TLS #2) Gunakan nama domain default yang sepenuhnya memenuhi syarat yang ditetapkan ke pemuatan internal di project Apigee. Dengan opsi ini, TLS digunakan menggunakan sertifikat Apigee yang ditandatangani sendiri secara internal. Anda tidak memiliki kontrol atas sertifikat ini.
      1. Dapatkan IP load balancer internal di project Apigee:
        export INTERNAL_LOAD_BALANCER_IP=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances -s | jq -r '.instances[0].host')
      2. Dapatkan Sertifikat CA yang dibuat selama pembuatan org dengan perintah berikut:
        curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID | jq -r .caCertificate | base64 -d > cacert.crt
      3. Kirim permintaan ke proxy API yang di-deploy, tempat example.$PROJECT_ID.apigee.internal adalah nama domain internal default yang sepenuhnya memenuhi syarat yang di-resolve ke load balancer internal.
        curl -is -H "Host: $ENV_GROUP_HOSTNAME" \
          https://example.$PROJECT_ID.apigee.internal/PROXY_BASEPATH \
          --cacert cacert.crt \
          --resolve example.$PROJECT_ID.apigee.internal:443:$INTERNAL_LOAD_BALANCER_IP
    • (Opsi Non-TLS) Jika tidak memerlukan TLS, Anda dapat menggunakan tanda -k di curl untuk menonaktifkan TLS dan mungkin menghindari masalah SSL:
      1. Dapatkan IP load balancer internal di project Apigee:
        export INTERNAL_LOAD_BALANCER_IP=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances -s | jq -r '.instances[0].host')
      2. Memanggil proxy API:
        curl -i -k \
          -H "Host: $ENV_GROUP_HOSTNAME" \
          https://$INTERNAL_LOAD_BALANCER_IP/PROXY_BASEPATH
    • (Opsi endpoint layanan) Jika Anda menyediakan organisasi berbayar atau evaluasi dengan PSC dan memilih opsi pemilihan rute endpoint layanan:
      1. Dapatkan IP endpoint layanan. Jika Anda perlu mencari IP endpoint, lihat Mencantumkan endpoint.
      2. Memanggil proxy API:
        curl -i -k \
           -H "Host: $ENV_GROUP_HOSTNAME" \
           https://SERVICE_ENDPOINT_IP/PROXY_BASEPATH

        Contoh:

        curl -H "Host: $ENV_GROUP_HOSTNAME" https://10.138.0.2/helloworld -k

    Opsi untuk penginstalan yang tidak menggunakan peering non-VPC

    • (Opsi endpoint layanan) Jika Anda menyediakan organisasi berbayar atau evaluasi dengan PSC dan memilih opsi pemilihan rute endpoint layanan:
      1. Dapatkan IP endpoint layanan. Jika Anda perlu mencari IP endpoint, lihat Mencantumkan endpoint.
      2. Memanggil proxy API:
        curl -i -k \
            -H "Host: $ENV_GROUP_HOSTNAME" \
            https://SERVICE_ENDPOINT_IP/PROXY_BASEPATH

        Contoh:

        curl -H "Host: $ENV_GROUP_HOSTNAME" https://10.138.0.2/helloworld -k

    Jika Anda mengalami {i>error<i} selama bagian proses ini, pastikan bahwa variabel lingkungan yang Anda buat dan gunakan dalam perintah memiliki nilai yang valid. Lihat juga Pemecahan masalah.

    Langkah berikutnya

    Coba buat proxy yang kemudian dapat Anda deploy, atau ikuti tur tutorial Apigee yang akan memperkenalkan fitur-fitur Apigee, seperti menjaga dari kemungkinan lonjakan traffic atau mendapatkan laporan tampilan alur permintaan/respons.

    (Lanjutan) Jika berencana untuk mengubahnya menjadi penyiapan produksi, Anda dapat mengonfigurasi perimeter keamanan di sekeliling cluster baru Anda dan layanan Cloud terkait. Hal ini dapat dilakukan dengan Kontrol Layanan VPC.