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. Langkah-langkah ini berguna untuk menguji penyiapan Anda jika Apigee disediakan untuk menggunakan perutean jaringan internal. Anda dapat mengikuti langkah-langkah dalam dokumen ini jika Apigee disediakan dengan salah satu konfigurasi pemilihan rute jaringan berikut:

Opsi penyediaan Opsi jaringan Langkah-langkah penyediaan
Langganan berbayar Dengan peering VPC Pemetaan internal (VPC)
Pemetaan internal (PSC)
Bayar sesuai penggunaan Dengan peering VPC Pemetaan internal (VPC)
Pemetaan 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 Anda belum melakukannya, 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 pembawa. Anda akan menggunakan header ini saat memanggil Apigee API. Perhatikan bahwa masa berlaku token berakhir setelah jangka waktu tertentu dan jika sudah habis masa berlakunya, Anda cukup membuat ulang token menggunakan perintah yang sama. Untuk 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 Anda. Contoh, my-runtime-instance. Nama harus diawali dengan huruf kecil, dapat memiliki panjang maksimal 32 karakter, dan hanya dapat menyertakan huruf, angka, dan tanda hubung kecil. Nama ini tidak boleh diawali atau diakhiri dengan tanda hubung dan harus panjangnya minimal dua karakter.
    • PROJECT_NUMBERadalah nomor project Cloud yang Anda buat sebagai bagian dari Prasyarat. Contoh ini mengeluarkan 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 dalam instance. Contoh:
    export VM_ZONE="us-west1-b"

    Jika memerlukan bantuan untuk mengidentifikasi zona dalam region instance, Anda dapat menggunakan perintah gcloud ini untuk 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 menggunakan perintah gcloud beta compute. VM bertindak sebagai jembatan yang memungkinkan Anda mengirim permintaan ke IP load balancer internal. Setelah VM disiapkan, Anda dapat memanggil proxy API yang di-deploy:

  1. Contoh berikut membuat VM baru dengan beberapa opsi umum dan menggunakan variabel lingkungan yang Anda tentukan 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@developer.gserviceaccount.com \
      --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 di langkah-langkah berikutnya:
    sudo apt-get update -y
    sudo apt-get install -y jq
    
  4. Di shell VM, buat variabel lingkungan berikut untuk memudahkan penyalinan/penempelan 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 perutean selama penyediaan Apigee.

    Opsi untuk penginstalan yang menggunakan peering VPC

    • (Opsi TLS #1) Jika Anda mengonfigurasi load balancer internal (ILB) dalam project, seperti yang dijelaskan dalam Pemetaan internal (VPC), panggil proxy menggunakan IP ILB tersebut. Opsi ini menggunakan sertifikat CA yang berada di bawah kontrol Anda dan dibuat saat load balancer internal dibuat:
      1. Dapatkan IP ILB di project Anda, seperti yang dijelaskan dalam Menyiapkan Load Balancing HTTP(S) Internal dengan backend grup instance VM.
      2. Panggil proxy API:
        curl -H "Host: $ENV_GROUP_HOSTNAME" \
          https://INTERNAL_LOAD_BALANCER_IP/PROXY_BASEPATH
    • (Opsi TLS #2) Gunakan nama domain yang sepenuhnya memenuhi syarat dan default yang me-resolve ke load balancer internal di project Apigee. Dengan opsi ini, TLS digunakan menggunakan sertifikat yang ditandatangani sendiri Apigee yang dibuat secara internal. Anda tidak memiliki kontrol atas sertifikat ini.
      1. Dapatkan IP load balancer internal dalam 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. Ambil Sertifikat CA yang dibuat selama pembuatan organisasi 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, dengan example.$PROJECT_ID.apigee.internal adalah nama domain internal, default, yang sepenuhnya memenuhi syarat dan me-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 pada perintah curl untuk menonaktifkan TLS dan mungkin menghindari masalah SSL:
      1. Dapatkan IP load balancer internal dalam 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. Panggil 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. Mendapatkan IP endpoint layanan. Jika Anda perlu mencari IP endpoint, lihat Mencantumkan endpoint.
      2. Panggil 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. Mendapatkan IP endpoint layanan. Jika Anda perlu mencari IP endpoint, lihat Mencantumkan endpoint.
      2. Panggil 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 error selama bagian proses ini, pastikan semua variabel lingkungan yang Anda buat dan gunakan dalam perintah memiliki nilai yang valid. Lihat juga Pemecahan masalah.

    Langkah berikutnya

    Coba membuat proxy yang kemudian dapat Anda deploy, atau ikuti tur tutorial Apigee yang akan memperkenalkan fitur Apigee kepada Anda, seperti menjaga agar tidak terjadi lonjakan traffic mendadak atau mendapatkan tampilan mendetail tentang alur permintaan/respons.

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