Menyediakan organisasi evaluasi dengan peering VPC

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

Baca dokumentasi Apigee Edge.

Ringkasan langkah

Dokumen ini menjelaskan cara menginstal dan mengonfigurasi organisasi evaluasi Apigee (atau eval org) dari command line. Masa berlaku organisasi evaluasi berakhir setelah 60 hari dan mungkin memiliki batasan lainnya. Lihat juga Membandingkan organisasi eval dan berbayar.

Langkah-langkah penyediaannya adalah sebagai berikut:

Langkah 1: Menentukan variabel lingkungan

Siapkan gcloud dan tentukan variabel lingkungan untuk digunakan di langkah berikutnya:

  1. Pastikan Anda telah menyelesaikan persyaratan yang tercantum di Prasyarat.
  2. Anda harus menginstal gcloud CLI. Jika Anda perlu menginstalnya, lihat Menginstal gcloud CLI.
  3. Lakukan inisialisasi gcloud CLI, seperti yang dijelaskan dalam Melakukan inisialisasi gcloud CLI, atau jika CLI sudah diinisialisasi, pastikan project Google Cloud yang Anda buat di Prasyarat adalah project default untuk gcloud.
  4. Tentukan variabel lingkungan berikut:
    AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
    PROJECT_ID="YOUR_PROJECT_ID"
    RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
    ANALYTICS_REGION="YOUR_ANALYTICS_REGION"

    Dengan keterangan:

    • 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.
    • PROJECT_ID adalah project ID Cloud yang Anda buat sebagai bagian dari Prasyarat.
    • RUNTIME_LOCATION adalah lokasi fisik tempat instance Apigee berada. Untuk mengetahui daftar lokasi runtime yang tersedia, lihat Lokasi Apigee.

    • ANALYTICS_REGION adalah lokasi fisik tempat data analisis Apigee akan disimpan. Untuk mengetahui daftar region Analisis API Apigee yang tersedia, lihat Lokasi Apigee.

      RUNTIME_LOCATION dan ANALYTICS_REGION dapat berupa region yang sama, tetapi tidak harus sama. Namun, mungkin ada manfaat performa jika keduanya sama.

  5. (Opsional) Periksa pekerjaan Anda dengan menampilkan nilai yang baru saja Anda tetapkan. Perhatikan bahwa saat Anda ingin menggunakan variabel dalam perintah, awali nama variabel dengan tanda dolar ($).
    echo $AUTH
    echo $PROJECT_ID
    echo $RUNTIME_LOCATION
    echo $ANALYTICS_REGION
    

    Respons terhadap perintah echo Anda akan terlihat seperti berikut:

    Authorization: Bearer ya29.a123456678940B63hPSAMPLEsampleKKYVsample0f3pWDWZDuH2-hENkNa
    TvgZ1PD977TMvv6edBQPJezdHw040880Ol_LoD5ZDkt-i-knizia_KhA9L20sSvztL81-SAMPLE42ELPMASk2_
    1CxN
    my-cloud-project
    us-west1
    us-west1
    

Langkah 2: Aktifkan API

  1. Apigee mengharuskan Anda mengaktifkan beberapa Google Cloud API. Aktifkan dengan menjalankan perintah services enable:

    gcloud services enable apigee.googleapis.com \
      servicenetworking.googleapis.com compute.googleapis.com \
      cloudkms.googleapis.com --project=$PROJECT_ID
  2. (Opsional) Untuk memeriksa pekerjaan Anda, gunakan perintah services list untuk menampilkan semua API yang diaktifkan:

    gcloud services list

    Respons menunjukkan semua layanan yang diaktifkan, termasuk API yang baru saja Anda aktifkan (Apigee, Service Networking, Cloud KMS, dan Compute Engine).

Langkah 3: Konfigurasi jaringan layanan

  1. Buat variabel lingkungan berikut:
    RANGE_NAME=YOUR_RANGE_NAME
    NETWORK_NAME=YOUR_NETWORK_NAME
    

    Dengan keterangan:

    • RANGE_NAME adalah nama rentang alamat IP yang Anda buat. Anda dapat memberi nama rentang apa pun yang Anda inginkan. Contoh: google-svcs
    • NETWORK_NAME adalah nama resource jaringan tempat alamat harus dicadangkan. Google membuat jaringan default (bernama default) untuk setiap project baru, sehingga Anda dapat menggunakannya. Namun, Google tidak merekomendasikan penggunaan jaringan default untuk hal selain pengujian.
  2. Buat rentang IP dengan panjang CIDR /22:
    gcloud compute addresses create $RANGE_NAME \
      --global \
      --prefix-length=22 \
      --description="Peering range for Apigee services" \
      --network=$NETWORK_NAME \
      --purpose=VPC_PEERING \
      --addresses=OPTIONAL_ADDRESSES \
      --project=$PROJECT_ID

    Dengan --addresses, Anda dapat secara opsional menentukan satu atau beberapa IP alamat untuk panjang awalan /22. Misalnya, untuk mengalokasikan blok CIDR 192.168.0.0/22, tentukan 192.168.0.0 untuk alamat dan 22 untuk panjang awalan. Lihat juga Membuat alokasi IP.

    Jika Anda tidak memberikan parameter --addresses, gcloud akan memilih rentang alamat yang tersedia untuk Anda.

    Jika berhasil, gcloud akan merespons dengan hal berikut:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/google-svcs].

    Setelah Anda membuat rentang alamat IP, alamat tersebut akan dikaitkan dengan project hingga Anda merilisnya.

  3. Buat rentang IP kedua dengan panjang CIDR /28. Rentang ini digunakan oleh Apigee untuk tujuan pemecahan masalah dan tidak dapat disesuaikan atau diubah.
    gcloud compute addresses create google-managed-services-support-1 \
      --global \
      --prefix-length=28 \
      --description="Peering range for supporting Apigee services" \
      --network=$NETWORK_NAME \
      --purpose=VPC_PEERING \
      --addresses=OPTIONAL_ADDRESSES \
      --project=$PROJECT_ID

    Dengan --addresses, Anda dapat secara opsional menentukan satu atau beberapa IP alamat untuk panjang awalan /28. Misalnya, untuk mengalokasikan blok CIDR 192.168.0.0/28, tentukan 192.168.0.0 untuk alamat dan 28 untuk panjang awalan. Lihat juga Membuat alokasi IP.

    Jika Anda tidak memberikan parameter --addresses, gcloud akan memilih rentang alamat yang tersedia untuk Anda.

  4. Hubungkan layanan Anda ke jaringan menggunakan perintah berikut:
    gcloud services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --network=$NETWORK_NAME \
      --ranges=$RANGE_NAME,google-managed-services-support-1 \
      --project=$PROJECT_ID

    Operasi ini dapat memerlukan waktu beberapa menit hingga selesai. Jika berhasil, gcloud akan merespons dengan hal berikut:

    Operation "operations/OPERATION_ID" finished successfully.

    Dengan OPERATION_ID adalah UUID LRO (operasi yang berjalan lama).

    Apigee membuat koneksi antara jaringan Anda dan layanan Google; khususnya, Apigee menghubungkan project Anda ke Service Networking API melalui peering VPC. Apigee juga mengaitkan alamat IP dengan project Anda.

Langkah 4: Buat organisasi

Organisasi adalah penampung tingkat teratas di Apigee. File ini berisi semua proxy API dan resource terkait. Untuk mengetahui detailnya, lihat Memahami organisasi.

  1. Buat organisasi evaluasi baru menggunakan perintah gcloud alpha apigee organizations:
    gcloud alpha apigee organizations provision \
      --runtime-location=$RUNTIME_LOCATION \
      --analytics-region=$ANALYTICS_REGION \
      --authorized-network=$NETWORK_NAME \
      --project=$PROJECT_ID

    Dengan --authorized-network adalah nama jaringan peering kustom Anda. Contoh: default.

  2. Saat Anda menjalankan perintah provision, Google akan memulai LRO untuk membuat organisasi evaluasi. Operasi ini memerlukan waktu hingga 40 menit untuk selesai. Selama waktu tersebut, gcloud menampilkan hal berikut:

    Provisioning organization...

    Saat organisasi eval dan instance runtime terkait dibuat, gcloud akan merespons dengan pesan berikut:

    Provisioning organization...done.
  3. Jika Anda menjalankan perintah berikut:

    gcloud alpha apigee operations list --organization=$PROJECT_ID

    Anda akan melihat bahwa semua UUID berada dalam status FINISHED. Contoh:

    UUID                                  ORGANIZATION  STATE
    00bab06f-c60c-41a5-4242-7SAMPLE7f     my-org        FINISHED
    429790a7-3151-4642-4343-7SAMPLE7f     my-org        FINISHED
    d00a92a9-9b83-4642-4343-7SAMPLE7f     my-org        FINISHED
    f48a00ff-7daa-4c4a-4444-7SAMPLE7f     my-org        FINISHED

Langkah 5: Konfigurasikan perutean

Tentukan apakah akan mengizinkan akses eksternal atau akses khusus internal:

Jenis akses Deskripsi proses konfigurasi dan deployment
Internal

Hanya izinkan akses internal ke proxy API Anda.

Anda harus membuat VM baru di dalam jaringan dan terhubung ke VM tersebut. Dari VM baru, Anda dapat mengirim permintaan ke proxy Apigee API.

Eksternal

Izinkan akses eksternal ke proxy API Anda.

Gunakan Private Service Connect (PSC) untuk mengaktifkan koneksi pribadi antara produsen layanan (Apigee) dan konsumen layanan (project VPC yang di-peer dan/atau satu atau beberapa project Cloud lainnya yang Anda kontrol). Dengan metode ini, permintaan akan melewati load balancer eksternal global ke satu titik pemasangan, yang disebut Lampiran Layanan. Konfigurasi ini memungkinkan Anda mengirim permintaan proxy Apigee API dari mesin apa pun yang mendukung jaringan.

Setiap pendekatan pemilihan rute ini ditampilkan di tab dalam petunjuk di bawah.

Pemetaan internal

Tidak ada tugas yang harus dilakukan untuk langkah ini jika Anda menggunakan command line untuk menyiapkan proxy API hanya untuk akses internal. Anda dapat langsung ke Langkah 6: Memanggil contoh proxy API, tempat Anda akan mengirim permintaan ke proxy API.

Perutean eksternal

Bagian ini menjelaskan cara mengonfigurasi perutean eksternal menggunakan Private Service Connect (PSC) untuk mengizinkan komunikasi antara Apigee dan VPC yang Anda kontrol. Anda harus melakukannya sebelum dapat mengirim permintaan dari klien eksternal ke instance runtime Apigee.

Langkah-langkah konfigurasi eksternal adalah:

Langkah 5a: Buat grup endpoint jaringan (NEG)
Langkah 5b: Konfigurasikan load balancer

Setiap langkah ini dijelaskan di bagian selanjutnya.

Langkah 5a: Buat grup endpoint jaringan (NEG)

  1. Dapatkan lampiran layanan untuk instance Apigee Anda:
    curl -i -X GET -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Dalam contoh output berikut, nilai serviceAttachment ditampilkan dalam huruf tebal:

    {
      "instances": [
        {
          "name": "eval-instance",
          "location": "us-west1",
          "host": "10.72.100.2",
          "port": "443",
          "createdAt": "1657832463500",
          "lastModifiedAt": "1657833920670",
          "state": "ACTIVE",
          "peeringCidrRange": "SLASH_22",
          "runtimeVersion": "1-8-0-apigee-18",
          "ipRange": "10.74.100.0/28,10.74.100.16/28",
          "consumerAcceptList": [
            "apigee-eval-test"
          ],
          "serviceAttachment": "projects/s8da1b0111eb33765-tp/regions/us-west1/serviceAttachments/apigee-us-west1-icza"
        }
      ]
    }
  2. Buat grup endpoint jaringan (NEG) Private Service Connect yang mengarah ke lampiran layanan yang Anda peroleh dari isi respons instance pada langkah sebelumnya.

    gcloud compute network-endpoint-groups create NEG_NAME \
      --network-endpoint-type=private-service-connect \
      --psc-target-service=TARGET_SERVICE \
      --region=$RUNTIME_LOCATION \
      --network=$NETWORK_NAME \
      --subnet=SUBNET_NAME \
      --project=$PROJECT_ID
    

    Ganti kode berikut:

    • NEG_NAME: nama untuk grup endpoint jaringan.
    • TARGET_SERVICE: lampiran layanan yang ingin Anda hubungkan. Contoh: projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
    • SUBNET_NAME: Nama subnet yang digunakan untuk konektivitas pribadi ke produsen. Ukuran subnet dapat kecil: PSC NEG hanya memerlukan satu IP dari subnet. Untuk Apigee, hanya satu PSC NEG yang diperlukan per wilayah. Subnet dapat dibagikan dan digunakan oleh VM atau entitas lainnya. Jika subnet tidak ditentukan, endpoint jaringan dapat menjadi bagian dari subnetwork mana pun di region tempat grup endpoint jaringan dibuat.

Langkah 5b: Konfigurasikan load balancer

Konfigurasikan load balancer HTTP(S) eksternal global (skema load balancing ditetapkan ke EXTERNAL_MANAGED).

Meskipun NEG Private Service Connect bersifat regional, semua komponen load balancing lain dalam konfigurasi ini bersifat global.

  1. Cadangkan alamat IPv4 eksternal global untuk load balancer.
    gcloud compute addresses create ADDRESS_NAME \
      --ip-version=IPV4 --global --project=$PROJECT_ID

    Ganti ADDRESS_NAME dengan nama untuk resource alamat IP.

    Jalankan perintah ini untuk melihat alamat IP yang dicadangkan:

    gcloud compute addresses describe ADDRESS_NAME \
      --format="get(address)" --global --project=$PROJECT_ID
  2. Buat layanan backend untuk NEG.
    gcloud compute backend-services create BACKEND_SERVICE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --protocol=HTTPS \
      --global --project=$PROJECT_ID
  3. Ganti BACKEND_SERVICE_NAME dengan nama layanan backend.

  4. Tambahkan NEG ke layanan backend:
    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --network-endpoint-group=NEG_NAME \
      --network-endpoint-group-region=$RUNTIME_LOCATION \
      --global --project=$PROJECT_ID

    Ganti kode berikut:

    • BACKEND_SERVICE_NAME: nama layanan backend.
    • NEG_NAME: nama grup endpoint jaringan.
  5. Buat peta URL untuk load balancer.

    Peta URL harus merujuk ke layanan backend default. Tetapkan layanan backend yang baru saja Anda buat sebagai default.

    gcloud compute url-maps create URL_MAP_NAME \
      --default-service=DEFAULT_BACKEND_SERVICE_NAME \
      --global --project=$PROJECT_ID

    Ganti kode berikut:

    • URL_MAP_NAME: nama untuk peta URL.
    • DEFAULT_BACKEND_SERVICE_NAME: nama layanan backend default load balancer. Default digunakan jika tidak ada aturan host yang cocok dengan nama host yang diminta.
  6. Buat sertifikat SSL untuk proxy target HTTPS.

    Untuk membuat load balancer HTTPS, Anda harus memiliki resource sertifikat SSL yang akan digunakan di proxy target HTTPS. Anda dapat membuat resource sertifikat SSL menggunakan sertifikat SSL yang dikelola Google atau sertifikat SSL yang dikelola sendiri.

    Gunakan perintah ini untuk membuat resource sertifikat SSL yang dikelola Google:

    gcloud compute ssl-certificates create CERTIFICATE \
      --domains DOMAIN --project=$PROJECT_ID

    Ganti kode berikut:

    • CERTIFICATE: nama untuk sertifikat.
    • DOMAIN: nama domain yang akan Anda gunakan untuk load balancer eksternal.

    Untuk membuat sertifikat SSL yang dikelola sendiri, Anda memerlukan file kunci pribadi lokal dan file sertifikat lokal. Jika Anda perlu membuat file ini, lihat Menggunakan sertifikat SSL yang dikelola sendiri.

    gcloud compute ssl-certificates create CERTIFICATE \
      --certificate LB_CERT \
      --private-key LB_PRIVATE_KEY --project=$PROJECT_ID

    Ganti kode berikut:

    • CERTIFICATE: nama untuk sertifikat.
    • LB_CERT: jalur ke file sertifikat berformat PEM untuk sertifikat yang dikelola sendiri.
    • LB_PRIVATE_KEY: jalur ke file kunci pribadi berformat PEM untuk sertifikat yang dikelola sendiri.
  7. Penyediaan sertifikat dapat memerlukan waktu hingga satu jam. Untuk memeriksa status penyediaan, jalankan perintah ini:

    gcloud compute ssl-certificates describe CERTIFICATE \
       --global \
       --format="get(name,managed.status, managed.Status)"
  8. Tambahkan domain ke grup lingkungan Apigee yang dibuat untuk Anda. Nama grup lingkungan adalah eval-group:
    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group" \
      -H "$AUTH" \
      -X PATCH \
      -H "Content-Type:application/json" \
      -d '{
        "hostnames":["'"DOMAIN"'"]
      }'
  9. Periksa status operasi grup lingkungan:
    curl -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group/attachments"
    
  10. Gunakan resource sertifikat SSL untuk membuat proxy HTTPS target.

    gcloud compute target-https-proxies create PROXY_NAME \
      --url-map=URL_MAP_NAME \
      --ssl-certificates=CERTIFICATE --project=$PROJECT_ID

    Ganti kode berikut:

    • PROXY_NAME: nama untuk proxy HTTPS target.
    • URL_MAP_NAME: nama peta URL.
    • CERTIFICATE: nama resource sertifikat.
  11. Buat aturan penerusan.
    gcloud compute forwarding-rules create FWD_RULE \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --network-tier=PREMIUM \
      --address=ADDRESS_NAME \
      --target-https-proxy=PROXY_NAME \
      --ports=443 \
      --global --project=$PROJECT_ID

    Ganti kode berikut:

    • FWD_RULE: nama untuk aturan penerusan.
    • ADDRESS_NAME: resource alamat IP yang Anda cadangkan untuk digunakan bagi aturan penerusan.
    • PROXY_NAME: nama proxy HTTPS target.

Penyediaan Apigee selesai.

Langkah 6: Panggil proxy API contoh

Proxy API bernama hello-world dibuat dan di-deploy untuk Anda selama penyediaan. Pada langkah ini, Anda akan menguji organisasi eval baru dengan memanggil proxy.

Memanggil proxy dengan pemilihan rute internal

Jika Anda memilih opsi pemilihan rute internal di Langkah 5, ikuti langkah-langkah di Memanggil proxy API dengan akses khusus internal.

Memanggil proxy dengan pemilihan rute eksternal

Jika Anda memilih opsi perutean eksternal di Langkah 5, ikuti langkah-langkah di bagian ini.

  1. Siapkan entri DNS untuk domain Anda. Berikut dua cara untuk menyelesaikan tugas ini:
    • Di registrar, buat data A yang mengarah ke domain Anda. Misalnya, jika domain Anda adalah sales.example.com dan IP-nya adalah 10.23.0.2, arahkan data untuk sales.example.com ke alamat 10.23.0.2.

      Jalankan perintah ini untuk melihat alamat IP yang dicadangkan:

      gcloud compute addresses describe ADDRESS_NAME \
        --format="get(address)" --global --project=$PROJECT_ID
    • Gunakan Cloud DNS Google untuk memetakan URL ke alamat IP.
  2. Pastikan proxy hello-world di-deploy:
    curl -i -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/eval/apis/hello-world/revisions/1/deployments"
  3. Panggil proxy API:

    Kirim permintaan ke proxy API dari mesin apa pun yang terhubung ke jaringan dengan menjalankan perintah berikut:

    curl -i -H "Host: DOMAIN" \
      https://DOMAIN/hello-world

    Dengan DOMAIN adalah domain yang Anda masukkan ke dalam sertifikat dan ditambahkan ke grup lingkungan, seperti yang dibahas dalam Langkah 5: Konfigurasi pemilihan rute. Jika perlu, Anda dapat menggunakan API ini untuk mendapatkan nilai DOMAIN dari grup lingkungan:

    curl -i -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups"

    Setelah berhasil, contoh proxy API akan menampilkan respons:

    Hello, Guest!

    Tips pemecahan masalah:

    Jika Anda mendapatkan error handshake, periksa status sertifikat SSL. Untuk informasi tentang cara memecahkan masalah sertifikat yang dikelola sendiri dan dikelola Google, lihat Memecahkan masalah sertifikat SSL.

    Pastikan domain terdaftar Anda memiliki data A yang mengarah ke alamat IP alamat IPv4 eksternal global yang dibuat di Langkah 5. Jalankan perintah ini untuk melihat alamat IP yang dicadangkan:

    gcloud compute addresses describe ADDRESS_NAME \
      --format="get(address)" --global --project=$PROJECT_ID

    Jika Anda tidak dapat me-resolve konfigurasi domain, coba panggil proxy dengan perintah ini:

    curl  -H Host:DOMAIN --resolve \
      DOMAIN:443:EXTERNAL_IP_ADDRESS  \
      https://DOMAIN:443/hello-world -k

Berikutnya: Untuk mempelajari lebih lanjut cara mem-build dan men-deploy proxy API, lihat Ringkasan membangun proxy API pertama Anda.