Menyediakan organisasi berbayar dengan peering VPC

Menyediakan organisasi berbayar dengan peering VPC

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

Lihat dokumentasi Apigee Edge.

Dokumen ini menjelaskan cara menginstal dan mengonfigurasi Apigee dari command line dengan peering VPC. Langkah-langkah ini berlaku untuk model harga Langganan dan Bayar sesuai penggunaan untuk organisasi berbayar dengan atau tanpa mengaktifkan lokalitas data.

Ringkasan langkah

Langkah-langkah penyediaannya adalah sebagai berikut:

Langkah 1: Tentukan variabel lingkungan

Siapkan gcloud dan tentukan variabel lingkungan untuk digunakan pada langkah-langkah selanjutnya:

  1. Pastikan Anda telah menyelesaikan persyaratan penyiapan yang tercantum di Sebelum memulai.
  2. Anda harus menginstal Cloud SDK. Jika Anda perlu menginstalnya, lihat Menginstal Cloud SDK.
  3. Lakukan inisialisasi Cloud SDK, seperti yang dijelaskan dalam Menginisialisasi gcloud CLI, atau pastikan bahwa project Google Cloud yang Anda buat di Prasyarat adalah project default untuk gcloud.
  4. Tentukan variabel lingkungan berikut di terminal perintah Anda. Pilih tab yang sesuai dengan jenis organisasi yang Anda butuhkan: Tanpa residensi data atau dengan Residensi data:

    Tidak ada residensi data

    AUTH="$(gcloud auth print-access-token)"
    PROJECT_ID="YOUR_PROJECT_ID"
    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
    ANALYTICS_REGION="YOUR_ANALYTICS_REGION"
    BILLING_TYPE="YOUR_BILLING_TYPE"

    Dengan:

    • AUTH menentukan header Authentication dengan token pemilik. Anda akan menggunakan header ini saat memanggil Apigee API. Perhatikan bahwa masa berlaku token akan berakhir setelah jangka waktu tertentu dan saat masa berlakunya berakhir, Anda cukup membuatnya ulang 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.
    • PROJECT_NUMBER adalah nomor project Cloud yang Anda buat sebagai bagian dari Prasyarat.
    • RUNTIME_LOCATION adalah lokasi fisik tempat instance Apigee yang akan Anda buat nanti 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 Apigee API Analytics yang tersedia, lihat Lokasi Apigee.

      RUNTIME_LOCATION dan ANALYTICS_REGION dapat berupa region yang sama, tetapi tidak harus sama.

    • BILLING_TYPE adalah jenis penagihan untuk organisasi yang Anda buat. Nilai yang valid adalah:

    Residensi data

    AUTH="$(gcloud auth print-access-token)"
    PROJECT_ID="YOUR_PROJECT_ID"
    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
    CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
    CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
    BILLING_TYPE="YOUR_BILLING_TYPE"

    Dengan:

    • AUTH menentukan header Authentication dengan token pemilik. Anda akan menggunakan header ini saat memanggil API Apigee. Perhatikan bahwa masa berlaku token akan berakhir setelah jangka waktu tertentu dan saat masa berlakunya berakhir, Anda cukup membuatnya ulang 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.
    • PROJECT_NUMBER adalah nomor project Cloud yang Anda buat sebagai bagian dari Prasyarat.
    • RUNTIME_LOCATION adalah lokasi fisik tempat instance Apigee yang akan Anda buat nanti berada. Untuk mengetahui daftar lokasi runtime yang tersedia, lihat Lokasi Apigee.

      Lokasi runtime harus berada dalam lokasi bidang kontrol.
    • CONTROL_PLANE_LOCATION adalah lokasi fisik tempat data bidang kontrol Apigee akan disimpan. Untuk mengetahui daftar lokasi panel kontrol yang tersedia, lihat Lokasi Apigee.
    • CONSUMER_DATA_REGION adalah sub-region dari region bidang kontrol. Anda harus menentukan CONTROL_PLANE_LOCATION dan CONSUMER_DATA_REGION. Untuk mengetahui daftar region data konsumen yang tersedia, lihat Lokasi Apigee.
    • BILLING_TYPE adalah jenis penagihan untuk organisasi yang Anda buat. Nilai yang valid adalah:

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

    Tidak ada residensi data

    echo $AUTH
    echo $PROJECT_ID
    echo $PROJECT_NUMBER
    echo $RUNTIME_LOCATION
    echo $ANALYTICS_REGION
    echo $BILLING_TYPE
    

    Respons terhadap perintah echo Anda akan terlihat seperti berikut:

    YOUR_TOKEN
    my-cloud-project
    1234567890
    us-west1
    us-west1
    SUBSCRIPTION
    

    Residensi data

    echo $AUTH
    echo $PROJECT_ID
    echo $PROJECT_NUMBER
    echo $RUNTIME_LOCATION
    echo $CONTROL_PLANE_LOCATION
    echo $CONSUMER_DATA_REGION
    echo $BILLING_TYPE
    

    Respons terhadap perintah echo Anda akan terlihat seperti berikut:

    YOUR_TOKEN
    my-cloud-project
    1234567890
    us-west1
    us
    us-west1
    SUBSCRIPTION
    

Langkah 2: Aktifkan API

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

    gcloud services enable apigee.googleapis.com \
        servicenetworking.googleapis.com \
        apihub.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 menampilkan semua layanan yang diaktifkan, termasuk API yang baru saja Anda aktifkan.

Langkah 3: Buat identitas layanan Apigee

  1. Buat identitas layanan Apigee:

    gcloud beta services identity create --service=apigee.googleapis.com \
      --project=$PROJECT_ID
  2. Pastikan agen berhasil dibuat. Respons harus menampilkan nama agen dalam format berikut: service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com. misalnya:

    Service identity created: service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com

Langkah 4: Konfigurasi jaringan layanan

Pada langkah ini, Anda akan mengalokasikan sepasang Rentang Alamat IP (rentang CIDR /22 dan /28) ke Apigee dan melakukan peering VPC antara jaringan Anda dan jaringan Apigee. Setiap instance Apigee memerlukan rentang CIDR /22 dan /28 yang tidak tumpang-tindih. Bidang runtime Apigee diberi alamat IP dari dalam rentang CIDR ini. Oleh karena itu, rentang tersebut harus dicadangkan untuk Apigee dan tidak digunakan oleh aplikasi lain di jaringan VPC Anda. Untuk mengetahui informasi selengkapnya dan pertimbangan penting, lihat Memahami rentang peering.

Perhatikan bahwa Anda membuat rentang IP jaringan yang cukup untuk satu instance Apigee. Jika Anda berencana membuat instance Apigee tambahan, Anda harus mengulangi langkah ini untuk setiap instance. Rentang tidak dapat dibagikan antar-instance. Lihat juga Memperluas Apigee ke beberapa region.

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

    Dengan:

    • RANGE_NAME adalah nama rentang alamat IP yang Anda buat. Anda dapat memberi nama rentang sesuai keinginan. 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 tujuan selain pengujian.

  2. Buat rentang IP jaringan 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 rentang alamat. 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, maka 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 melepaskannya.

  3. Pastikan rentang IP jaringan dibuat dengan panjang CIDR /22:
    gcloud compute addresses list --global --project=$PROJECT_ID
    gcloud compute addresses describe $RANGE_NAME --global --project=$PROJECT_ID
  4. Buat rentang IP jaringan dengan panjang CIDR /28. Rentang ini diperlukan dan 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 menentukan rentang alamat secara opsional. 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, maka gcloud akan memilih rentang alamat yang tersedia untuk Anda.

  5. Pastikan rentang IP jaringan dibuat dengan panjang CIDR /28:
    gcloud compute addresses list --global --project=$PROJECT_ID
    gcloud compute addresses describe google-managed-services-support-1 --global \
      --project=$PROJECT_ID
  6. 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 untuk selesai. Jika berhasil, gcloud akan merespons dengan hal berikut, dengan OPERATION_ID adalah UUID LRO.

    Operation "operations/OPERATION_ID" finished successfully.
  7. 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.

  8. Setelah beberapa menit, verifikasi apakah peering VPC berhasil:
    gcloud services vpc-peerings list \
      --network=$NETWORK_NAME \
      --service=servicenetworking.googleapis.com \
      --project=$PROJECT_ID

Langkah 5: Buat organisasi

Sebelum dapat membuat organisasi, Anda harus membuat key ring dan kunci enkripsi database runtime (lihat langkah 1) dan, jika Anda menggunakan lokalitas data, key ring dan kunci enkripsi bidang kontrol (lihat langkah 2). Kunci Cloud KMS ini mengenkripsi data yang disimpan dan direplikasi di seluruh lokasi runtime dan control plane. Apigee menggunakan entitas ini untuk mengenkripsi data aplikasi seperti KVM, cache, dan rahasia klien, yang kemudian disimpan dalam database. Untuk mengetahui informasi selengkapnya, lihat Tentang kunci enkripsi Apigee.

  1. Buat key ring dan kunci enkripsi database runtime.

    1. Tentukan variabel lingkungan untuk lokasi database runtime cincin dan kunci enkripsi. Hal ini membantu memastikan konsistensi saat Anda membuatnya dan memudahkan Anda mengikuti dokumentasi.

      Nilainya adalah lokasi fisik tempat penyimpanan key ring dan kunci enkripsi database runtime Anda.

      Satu region

      Konfigurasi satu region (dengan hanya satu instance di satu region): Pilih dari lokasi regional KMS yang didukung.

      Contoh:

      RUNTIMEDBKEY_LOCATION="us-west1"

      Nilai dapat sama dengan $RUNTIME_LOCATION (juga wilayah) Anda, tetapi tidak harus sama. Namun, mungkin ada manfaat performa jika keduanya sama.

      Multi-region

      Konfigurasi multi-region: Pilih dari lokasi multi-regional yang didukung (seperti us atau europe) atau lokasi dual-region.

      Contoh:

      RUNTIMEDBKEY_LOCATION="us"

      Sebaiknya, jika Anda memiliki konfigurasi multi-region di AS, gunakan us untuk lokasi Anda jika memungkinkan. Jika tidak, gunakan nam4.

    2. Tentukan variabel lingkungan untuk nama kunci dan cincin kunci database.

      Nama ring kunci harus unik untuk organisasi Anda. Jika Anda membuat region kedua atau berikutnya, namanya tidak boleh sama dengan nama ring kunci lain.

      RUNTIMEDB_KEY_RING_NAME=YOUR_DB_KEY_RING_NAME
      RUNTIMEDB_KEY_NAME=YOUR_DB_KEY_NAME
    3. (Opsional) Periksa pekerjaan Anda dengan mengulangi nilai yang baru saja Anda tetapkan. Ingatlah bahwa saat Anda ingin menggunakan variabel dalam perintah, awali nama variabel dengan tanda dolar ($).
      echo $RUNTIMEDBKEY_LOCATION
      echo $RUNTIMEDB_KEY_RING_NAME
      echo $RUNTIMEDB_KEY_NAME
    4. Buat key ring baru:
      gcloud kms keyrings create $RUNTIMEDB_KEY_RING_NAME \
        --location $RUNTIMEDBKEY_LOCATION --project $PROJECT_ID

      Lokasi kunci enkripsi database runtime Apigee mendukung semua lokasi Cloud KMS yang mendukung Cloud HSM dan Cloud EKM.

    5. Buat kunci:

      gcloud kms keys create $RUNTIMEDB_KEY_NAME \
        --keyring $RUNTIMEDB_KEY_RING_NAME \
        --location $RUNTIMEDBKEY_LOCATION \
        --purpose "encryption" \
        --project $PROJECT_ID

      Perintah ini akan membuat kunci dan menambahkannya ke key ring.

      Dapatkan ID kunci:

      gcloud kms keys list \
        --location=$RUNTIMEDBKEY_LOCATION \
        --keyring=$RUNTIMEDB_KEY_RING_NAME \
        --project=$PROJECT_ID

      ID kunci memiliki sintaksis berikut (mirip dengan jalur file):

      projects/PROJECT_ID/locations/RUNTIMEDBKEY_LOCATION/keyRings/RUNTIMEDB_KEY_RING_NAME/cryptoKeys/RUNTIMEDB_KEY_NAME
    6. Masukkan ID kunci dalam variabel lingkungan. Anda akan menggunakan variabel ini dalam perintah selanjutnya:

      RUNTIMEDB_KEY_ID=YOUR_RUNTIMEDB_KEY_ID
    7. Berikan akses untuk Agen Layanan Apigee agar dapat menggunakan kunci baru:

      gcloud kms keys add-iam-policy-binding $RUNTIMEDB_KEY_NAME \
        --location $RUNTIMEDBKEY_LOCATION \
        --keyring $RUNTIMEDB_KEY_RING_NAME \
        --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project $PROJECT_ID

      Perintah ini mengikat kunci ke Agen Layanan Apigee.

      Setelah permintaan ini berhasil diselesaikan, gcloud akan merespons dengan sesuatu yang mirip dengan berikut ini:

      Updated IAM policy for key [runtime].
      bindings:
      - members:
        - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com
        role: roles/cloudkms.cryptoKeyEncrypterDecrypter
      etag: BwWqgEuCuwk=
      version: 1

      Jika Anda mendapatkan error seperti berikut:

      INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.

      Pastikan Anda menggunakan nomor project, bukan nama project, di alamat email akun layanan.

  2. Jika Anda menggunakan lokalitas data, buat key ring dan kunci enkripsi control plane. Jika Anda tidak menggunakan residensi data, lanjutkan ke langkah 3.
  3. Lakukan langkah-langkah berikut untuk membuat key ring dan kunci enkripsi control plane.

    1. Tentukan variabel lingkungan untuk lokasi ring dan kunci enkripsi database bidang kontrol Anda:
      CONTROL_PLANE_LOCATION=YOUR_CONTROL_PLANE_LOCATION
      CONSUMER_DATA_REGION=YOUR_CONSUMER_DATA_REGION

      Dengan:

      • CONTROL_PLANE_LOCATION adalah lokasi fisik tempat data bidang kontrol Apigee akan disimpan. Untuk mengetahui daftar lokasi panel kontrol yang tersedia, lihat Lokasi Apigee.
      • CONSUMER_DATA_REGION adalah sub-region dari region bidang kontrol. Anda harus menentukan CONTROL_PLANE_LOCATION dan CONSUMER_DATA_REGION. Untuk mengetahui daftar region data konsumen yang tersedia, lihat Lokasi Apigee.
    2. Tentukan variabel lingkungan untuk nama kunci dan dering kunci database bidang kontrol.

      Nama ring kunci harus unik untuk organisasi Anda.

      CONTROL_PLANE_KEY_RING_NAME=YOUR_CONTROL_PLANE_KEY_RING_NAME
      CONTROL_PLANE_KEY_NAME=YOUR_CONTROL_PLANE_KEY_NAME
      CONSUMER_DATA_KEY_RING_NAME=YOUR_CONSUMER_DATA_KEY_RING_NAME
      CONSUMER_DATA_KEY_NAME=YOUR_CONSUMER_DATA_REGION_KEY_NAME

      Dengan:

      • CONTROL_PLANE_KEY_RING_NAME adalah nama key ring yang akan Anda gunakan untuk mengidentifikasi key ring enkripsi bidang kontrol.
      • CONTROL_PLANE_KEY_NAME adalah nama kunci yang akan Anda gunakan untuk mengidentifikasi kunci enkripsi bidang kontrol.
      • CONSUMER_DATA_KEY_RING_NAME adalah nama key ring yang akan Anda gunakan untuk mengidentifikasi key ring enkripsi wilayah data konsumen Anda.
      • CONSUMER_DATA_KEY_NAME adalah nama kunci yang akan Anda gunakan untuk mengidentifikasi kunci enkripsi wilayah data konsumen Anda.
    3. Buat key ring baru:
      gcloud kms keyrings create $CONTROL_PLANE_KEY_RING_NAME \
        --location $CONTROL_PLANE_LOCATION \
        --project $PROJECT_ID
      gcloud kms keyrings create $CONSUMER_DATA_KEY_RING_NAME \
        --location $CONSUMER_DATA_REGION \
        --project $PROJECT_ID
    4. Buat kunci:
      gcloud kms keys create $CONTROL_PLANE_KEY_NAME \
        --keyring $CONTROL_PLANE_KEY_RING_NAME \
        --location $CONTROL_PLANE_LOCATION \
        --purpose "encryption" \
        --project $PROJECT_ID
      gcloud kms keys create $CONSUMER_DATA_KEY_NAME \
        --keyring $CONSUMER_DATA_KEY_RING_NAME \
        --location $CONSUMER_DATA_REGION \
        --purpose "encryption" \
        --project $PROJECT_ID

      Perintah ini akan membuat kunci dan menambahkannya ke key ring.

      Dapatkan ID kunci:

      gcloud kms keys list \
      --location=$CONTROL_PLANE_LOCATION \
      --keyring=$CONTROL_PLANE_KEY_RING_NAME \
      --project=$PROJECT_ID
      gcloud kms keys list \
      --location=$CONSUMER_DATA_REGION \
      --keyring=$CONSUMER_DATA_KEY_RING_NAME \
      --project=$PROJECT_ID

      ID kunci memiliki sintaksis berikut (mirip dengan jalur file):

      projects/PROJECT_ID/locations/CONTROL_PLANE_LOCATION/keyRings/CONTROL_PLANE_KEY_RING_NAME/cryptoKeys/CONTROL_PLANE_KEY_NAME
      projects/PROJECT_ID/locations/CONSUMER_DATA_REGION/keyRings/CONSUMER_DATA_KEY_RING_NAME/cryptoKeys/CONSUMER_DATA_KEY_NAME
    5. Masukkan ID kunci dalam variabel lingkungan. Anda akan menggunakan variabel ini dalam perintah selanjutnya:
      CONTROL_PLANE_KEY_ID=YOUR_CONTROL_PLANE_KEY_ID
      
      CONSUMER_DATA_KEY_ID=YOUR_CONSUMER_DATA_KEY_ID
    6. Berikan akses untuk Agen Layanan Apigee agar dapat menggunakan kunci baru:
      gcloud kms keys add-iam-policy-binding $CONTROL_PLANE_KEY_NAME \
        --location $CONTROL_PLANE_LOCATION \
        --keyring $CONTROL_PLANE_KEY_RING_NAME \
        --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project $PROJECT_ID
      
      gcloud kms keys add-iam-policy-binding $CONSUMER_DATA_KEY_NAME \
       --location $CONSUMER_DATA_REGION \
       --keyring $CONSUMER_DATA_KEY_RING_NAME \
       --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \
       --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
       --project $PROJECT_ID
      

      Perintah ini mengikat kunci ke Agen Layanan Apigee. Setelah permintaan ini berhasil diselesaikan, gcloud akan merespons dengan sesuatu yang mirip dengan berikut:

      Updated IAM policy for key [runtime].
      bindings:
      - members:
        - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com
        role: roles/cloudkms.cryptoKeyEncrypterDecrypter
      etag: BwWqgEuCuwk=
      version: 1

      Jika Anda mendapatkan error seperti berikut:

      INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.

      Pastikan Anda menggunakan nomor project, bukan nama project, di alamat email akun layanan.

    Lihat juga: Pemecahan masalah CMEK.

  4. Buat organisasi dengan mengirimkan permintaan berikut ke API organisasi Apigee:

    Tidak ada residensi data

    curl "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"  \
      -H "Authorization: Bearer $AUTH" \
      -X POST \
      -H "Content-Type:application/json" \
      -d '{
        "name":"'"$PROJECT_ID"'",
        "analyticsRegion":"'"$ANALYTICS_REGION"'",
        "runtimeType":"CLOUD",
        "billingType":"'"$BILLING_TYPE"'",
        "authorizedNetwork":"'"$NETWORK_NAME"'",
        "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'"
      }'

    Dengan:

    • -d menentukan payload data untuk permintaan. Payload ini harus menyertakan hal berikut:
      • name: Mengidentifikasi organisasi baru Anda. Nama ini harus sama dengan project ID Anda.

      • analyticsRegion: Menentukan lokasi fisik tempat data analisis Anda akan disimpan.

      • runtimeType: Tetapkan nilai ini ke CLOUD.
      • billingType: Menentukan jenis penagihan organisasi yang dibuat.
      • authorizedNetwork: Mengidentifikasi jaringan peering yang Anda tentukan di Mengonfigurasi jaringan layanan.
      • runtimeDatabaseEncryptionKeyName: ID kunci enkripsi aplikasi yang Anda buat di langkah sebelumnya. Ingat bahwa ID disusun seperti jalur file. Contoh:
        projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key

    Residensi data

    Buat organisasi menggunakan API:

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"  \
      -H "Authorization: Bearer $AUTH" \
      -X POST \
      -H "Content-Type:application/json" \
      -d '{
        "name":"'"$PROJECT_ID"'",
        "runtimeType":"CLOUD",
        "billingType":"'"$BILLING_TYPE"'",
        "controlPlaneEncryptionKeyName":"'"$CONTROL_PLANE_KEY_ID"'",
        "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'",
        "apiConsumerDataEncryptionKeyName":"'"$CONSUMER_DATA_KEY_ID"'",
        "authorizedNetwork":"'"$NETWORK_NAME"'",
        "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'"
      }'

    Dengan:

    -d menentukan payload data untuk permintaan. Payload ini harus mencakup hal berikut:

    • name: Mengidentifikasi organisasi baru Anda. Nama ini harus sama dengan project ID Anda.
    • runtimeType: Tetapkan nilai ini ke CLOUD.
    • billingType: Menentukan jenis penagihan organisasi yang dibuat.
    • controlPlaneEncryptionKeyName: Adalah ID kunci bidang kontrol Anda.
    • apiConsumerDataLocation: Anda juga harus menentukan sub-region untuk digunakan oleh resource internal. Lihat Region residensi data untuk mengetahui nilai yang didukung.
    • apiConsumerDataEncryptionKeyName: Adalah ID kunci wilayah data konsumen Anda.
    • authorizedNetwork: Mengidentifikasi jaringan peering yang Anda tentukan di Mengonfigurasi jaringan layanan.
    • runtimeDatabaseEncryptionKeyName: ID kunci enkripsi aplikasi yang Anda buat di langkah sebelumnya. Ingat bahwa ID disusun seperti jalur file. Contoh:
      projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key

    Setelah Anda menjalankan perintah ini, Apigee akan memulai operasi yang berjalan lama, yang dapat memerlukan waktu beberapa menit untuk diselesaikan.

    Jika Anda mendapatkan error, periksa penggunaan tanda kutip di sekitar nilai variabel dalam payload data. Pastikan Anda memiliki tanda petik ganda-tunggal-ganda di sekitar variabel $PROJECT_ID, seperti yang ditunjukkan contoh berikut:

    "'"$PROJECT_ID"'"

    Jika Anda menggunakan string biasa (bukan variabel lingkungan) untuk nilai permintaan, Anda dapat membungkusnya dengan tanda kutip ganda dalam string payload yang dikutip tunggal, seperti yang ditunjukkan contoh berikut:

    '{ "name":"my-gcp-project", ... }'
  5. Tunggu beberapa menit.
  6. Untuk memeriksa status permintaan pembuatan, Anda dapat mengirim permintaan GET ke List organizations API Apigee, seperti yang ditunjukkan contoh berikut:

    Tidak ada residensi data

    curl -H "Authorization: Bearer $AUTH" "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"

    Residensi data

    curl -H "Authorization: Bearer $AUTH" "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID"

    Jika Anda melihat respons ini, berarti pembuatan organisasi belum selesai:

    {
      "error": {
        "code": 403,
        "message": "Permission denied on resource \"organizations/apigee-docs-m\" (or it may not exist)",
        "status": "PERMISSION_DENIED"
      }
    }

    Jika Apigee berhasil membuat organisasi baru, Anda akan menerima respons yang mirip dengan berikut ini:

    Tidak ada residensi data

    {
      "name": "my-cloud-project",
      "createdAt": "1592586495539",
      "lastModifiedAt": "1592586495539",
      "environments": [],
      "properties": {
        "property": [
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          },
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-west1",
      "runtimeType": "CLOUD",
      "subscriptionType": "PAID",
      "caCertificate": "YOUR_CERTIFICATE",
      "authorizedNetwork": "my-network",
      "projectId": "my-cloud-project"
    }

    Residensi data

      {
        "name": "my-cloud-project",
        "createdAt": "1681412783749",
        "lastModifiedAt": "1681412783749",
        "environments": [
          "test-env"
        ],
        "properties": {
          "property": [
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            },
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            }
          ]
        },
        "authorizedNetwork": "default",
        "runtimeType": "CLOUD",
        "subscriptionType": "PAID",
        "caCertificate": "YOUR_CERTIFICATE",
        "runtimeDatabaseEncryptionKeyName": "projects/my-cloud-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key-name",
        "projectId": "my-cloud-project",
        "state": "ACTIVE",
        "billingType": "PAYG",
        "addonsConfig": {
          "advancedApiOpsConfig": {},
          "integrationConfig": {},
          "monetizationConfig": {},
          "connectorsPlatformConfig": {}
        },
        "apiConsumerDataEncryptionKeyName": "projects/my-cloud-project/locations/us-central1/keyRings/my-key-ring/cryptoKeys/my-key-name",
        "controlPlaneEncryptionKeyName": "projects/my-cloud-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key-name",
        "apiConsumerDataLocation": "us-central1",
        "apigeeProjectId": "i0c2a37e80f9850ab-tp"
      }
    
    

    Jika Apigee menampilkan respons error HTTP, lihat Membuat organisasi Apigee.

Langkah 6: Buat instance runtime

Instance runtime adalah tempat project Apigee dan layanan terkait disimpan; instance ini menyediakan endpoint yang ditampilkan kepada pengguna untuk layanan Anda. Untuk membuat instance runtime baru:

  1. Pastikan Apigee telah selesai membuat organisasi Anda. Anda mengirimkan permintaan untuk membuat organisasi baru di Membuat organisasi Apigee, tetapi Anda harus memastikan bahwa proses tersebut telah selesai sebelum melanjutkan.

    Untuk melakukannya, kirim permintaan berikut ke organizations API:

    Tidak ada residensi data

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

    Residensi data

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

    Jika organisasi ada (dan Anda memiliki izin yang tepat untuk melihatnya), Apigee akan merespons dengan detail tentang organisasi tersebut. Jika Apigee merespons dengan error, tunggu beberapa menit dan kirim permintaan lagi.

  2. Mirip dengan tugas sebelumnya saat Anda membuat kunci enkripsi untuk database, sekarang Anda perlu membuat kunci Cloud KMS yang digunakan untuk mengenkripsi data di sisi server. Untuk memulai, tentukan variabel lingkungan berikut:
    INSTANCE_NAME=YOUR_INSTANCE_NAME
    RUNTIME_LOCATION=YOUR_RUNTIME_LOCATION
    DISK_KEY_RING_NAME=YOUR_DISK_KEY_RING_NAME
    DISK_KEY_NAME=YOUR_DISK_KEY_NAME
  3. Dengan:

    • INSTANCE_NAME: Nama instance baru Anda. Misalnya, my-runtime-instance. Nama harus diawali dengan huruf kecil, dapat berisi hingga 32 karakter, dan hanya boleh menyertakan huruf kecil, angka, dan tanda hubung. Nama ini tidak boleh diawali atau diakhiri dengan tanda hubung dan harus memiliki panjang minimal dua karakter.
    • RUNTIME_LOCATION adalah lokasi fisik tempat cluster Anda dihosting. Nilai yang valid adalah lokasi yang diizinkan oleh Compute Engine. (Lihat Region dan zona yang tersedia.) Contoh ini menggunakan us-west1.
    • DISK_KEY_RING_NAME adalah nama key ring enkripsi disk.
    • DISK_KEY_NAME adalah nama kunci enkripsi disk.
  4. Buat kunci enkripsi disk:
    1. Buat key ring disk baru:
      gcloud kms keyrings create $DISK_KEY_RING_NAME \
        --location $RUNTIME_LOCATION \
        --project $PROJECT_ID

      Key ring disk Anda harus disetel ke lokasi yang sama dengan instance. Setiap instance dan key ring harus memiliki lokasinya sendiri.

    2. Buat kunci disk baru:
      gcloud kms keys create $DISK_KEY_NAME \
        --keyring $DISK_KEY_RING_NAME \
        --location $RUNTIME_LOCATION \
        --purpose "encryption" \
        --project $PROJECT_ID

      Kunci dapat dirujuk berdasarkan jalur kuncinya. Anda bisa mendapatkan jalur kunci dengan perintah berikut:

      gcloud kms keys list \
        --location=$RUNTIME_LOCATION \
        --keyring=$DISK_KEY_RING_NAME \
        --project=$PROJECT_ID

      Jalur kunci akan terlihat seperti berikut:

      projects/PROJECT_ID/locations/RUNTIME_LOCATION/keyRings/my-disk-key-ring/cryptoKeys/my-disk-key
    3. Masukkan jalur kunci dalam variabel lingkungan. Anda akan menggunakan variabel ini dalam perintah selanjutnya:

      DISK_KEY_ID=YOUR_DISK_KEY_ID

      Contoh: DISK_KEY_ID=projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key

    4. Berikan akses untuk Agen Layanan Apigee agar dapat menggunakan kunci baru:

      gcloud kms keys add-iam-policy-binding $DISK_KEY_NAME \
        --location $RUNTIME_LOCATION \
        --keyring $DISK_KEY_RING_NAME \
        --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project $PROJECT_ID

      Perintah ini mengikat kunci ke Agen Layanan Apigee.

    Untuk mengetahui informasi selengkapnya, lihat Tentang kunci enkripsi Apigee.

  5. Buat instance runtime baru untuk project Anda dengan mengirim permintaan POST ke Instances API Apigee:

    Tidak ada residensi data

    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances" \
      -X POST -H "Authorization: Bearer $AUTH" \
      -H "Content-Type:application/json" \
      -d '{
        "name":"'"$INSTANCE_NAME"'",
        "location":"'"$RUNTIME_LOCATION"'",
        "diskEncryptionKeyName":"'"$DISK_KEY_ID"'",
        "consumerAcceptList":["'"$PROJECT_ID"'"]
      }'

    Residensi data

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances" \
      -X POST -H "Authorization: Bearer $AUTH" \
      -H "Content-Type:application/json" \
      -d '{
        "name":"'"$INSTANCE_NAME"'",
        "location":"'"$RUNTIME_LOCATION"'",
        "diskEncryptionKeyName":"'"$DISK_KEY_ID"'",
        "consumerAcceptList":["'"$PROJECT_ID"'"]
      }'

    Dengan:

    • consumerAcceptList (Opsional) Menentukan daftar ID project Google Cloud yang dapat terhubung secara pribadi ke lampiran layanan VPC Apigee. Lampiran layanan adalah entitas yang digunakan dengan Google Cloud Private Service Connect untuk memungkinkan produsen layanan (dalam hal ini, Apigee) untuk mengekspos layanan kepada konsumen (dalam hal ini, satu atau beberapa project Cloud yang Anda miliki). Secara default, kami menggunakan project Cloud yang sudah dikaitkan dengan organisasi Apigee Anda. Contoh: "consumerAcceptList": ["project1", "project2", "project3"]

      Perhatikan bahwa Anda juga dapat menyetel dan mengubah daftar project yang diterima di UI Instance. Untuk mengetahui detailnya, lihat Mengelola instance.

    Meskipun rentang IP /22 digunakan untuk menjalankan beban kerja inti Apigee, rentang /28 digunakan oleh Apigee untuk mengakses instance guna tujuan pemecahan masalah. Lihat juga Membuat instance.

    Permintaan ini dapat memerlukan waktu hingga 20 menit untuk diselesaikan karena Apigee harus membuat dan meluncurkan cluster Kubernetes baru, menginstal resource Apigee di cluster tersebut, dan menyiapkan load balancing.

    Jika Apigee menampilkan error, lihat Membuat instance baru.

  6. Untuk memeriksa status permintaan pembuatan instance runtime, jalankan perintah berikut. Jika statusnya AKTIF, Anda dapat melanjutkan ke langkah berikutnya.

    Tidak ada residensi data

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"

    Residensi data

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"

Langkah 7: Buat lingkungan

Untuk membuat lingkungan dan melampirkannya ke runtime di command line:

  1. Tentukan variabel lingkungan yang akan digunakan di bagian ini.

    Untuk lingkungan Bayar sesuai penggunaan, buat variabel berikut:

    ENVIRONMENT_NAME="YOUR_ENV_NAME"
    ENVIRONMENT_TYPE="YOUR_ENV_TYPE"
    ENV_GROUP_NAME="YOUR_ENV_GROUP_NAME"
    ENV_GROUP_HOSTNAME="YOUR_ENV_GROUP_HOSTNAME"

    Dengan:

    • ENVIRONMENT_NAME adalah nama string. Contoh: test
    • ENVIRONMENT_TYPE adalah jenis lingkungan untuk lingkungan ini dan hanya berlaku untuk pengguna Pay-as-you-go, yang harus menentukan salah satu nilai berikut: BASE, INTERMEDIATE, atau COMPREHENSIVE. Pengguna lain harus menghilangkan jenis lingkungan.
    • ENV_GROUP_NAME adalah nama string. Contoh: test-group
    • ENV_GROUP_HOSTNAME adalah nama host domain yang valid. Contoh: foo.example.com
  2. Buat lingkungan baru dengan Environments API.

    Untuk lingkungan Bayar sesuai penggunaan baru, gunakan perintah berikut:

    Tidak ada residensi data

    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments" \
        -H "Authorization: Bearer $AUTH" \
        -X POST \
        -H "Content-Type:application/json" \
        -d '{
          "name":"'"$ENVIRONMENT_NAME"'",
          "type":"'"$ENVIRONMENT_TYPE"'"
      }'

    Residensi data

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments" \
        -H "Authorization: Bearer $AUTH" \
        -X POST \
        -H "Content-Type:application/json" \
        -d '{
          "name":"'"$ENVIRONMENT_NAME"'",
          "type":"'"$ENVIRONMENT_TYPE"'"
      }'

    Apigee membuat lingkungan baru.

  3. Sebelum melanjutkan, periksa apakah Apigee telah selesai membuat lingkungan baru dengan memanggil Environments API:

    Tidak ada residensi data

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

    Residensi data

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments"

    Apigee akan merespons dengan daftar lingkungan yang tersedia; misalnya, jika nama lingkungan Anda adalah test, Apigee akan merespons dengan:

    [
      "test"
    ]
  4. Lampirkan lingkungan baru ke instance runtime:

    Tidak ada residensi data

    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments" \
        -X POST -H "Authorization: Bearer $AUTH" \
        -H "content-type:application/json" \
        -d '{
          "environment":"'"$ENVIRONMENT_NAME"'"
        }'

    Residensi data

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments" \
        -X POST -H "Authorization: Bearer $AUTH" \
        -H "content-type:application/json" \
        -d '{
          "environment":"'"$ENVIRONMENT_NAME"'"
        }'

    Operasi ini dapat memerlukan waktu beberapa menit untuk selesai. Untuk memeriksa apakah lampiran telah selesai, jalankan perintah ini:

    Tidak ada residensi data

    curl -i -H "Authorization: Bearer $AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments"

    Residensi data

    curl -i -H "Authorization: Bearer $AUTH" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments"

    Saat melihat output seperti berikut, Anda dapat melanjutkan ke langkah berikutnya:

    {
      "attachments": [
        {
          "name": "ed628782-c893-4095-b71c-f4731805290a",
          "environment": "test",
          "createdAt": "1641604447542"
        }
      ]
    }
  5. Buat grup lingkungan baru menggunakan perintah berikut. Untuk mengetahui informasi selengkapnya, lihat Tentang lingkungan dan grup lingkungan:

    Tidak ada residensi data

    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups" \
        -H "Authorization: Bearer $AUTH" \
        -X POST \
        -H "Content-Type:application/json" \
        -d '{
          "name": "'"$ENV_GROUP_NAME"'",
          "hostnames":["'"$ENV_GROUP_HOSTNAME"'"]
      }'

    Residensi data

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups" \
        -H "Authorization: Bearer $AUTH" \
        -X POST \
        -H "Content-Type:application/json" \
        -d '{
          "name": "'"$ENV_GROUP_NAME"'",
          "hostnames":["'"$ENV_GROUP_HOSTNAME"'"]
      }'
  6. Tunggu hingga operasi selesai. Anda dapat memeriksa status grup baru menggunakan permintaan seperti berikut:

    Tidak ada residensi data

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

    Residensi data

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME"
  7. Lampirkan lingkungan baru ke grup lingkungan baru dengan perintah berikut:

    Tidak ada residensi data

    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments" \
        -X POST \
        -H "Authorization: Bearer $AUTH" \
        -H "content-type:application/json" \
        -d '{
          "environment":"'"$ENVIRONMENT_NAME"'"
      }'

    Residensi data

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments" \
        -X POST \
        -H "Authorization: Bearer $AUTH" \
        -H "content-type:application/json" \
        -d '{
          "environment":"'"$ENVIRONMENT_NAME"'"
      }'
  8. Untuk memeriksa status operasi, panggil API ini:

    Tidak ada residensi data

    curl -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments"

    Residensi data

    curl -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments"

Langkah 8: Konfigurasi perutean

Pada langkah ini, Anda mengonfigurasi cara aplikasi klien berkomunikasi dengan Apigee. Traffic klien ke Apigee juga disebut traffic "northbound". Opsi konfigurasi ke utara meliputi hal berikut. Buka opsi konfigurasi yang ingin Anda gunakan dan lakukan langkah-langkah untuk opsi tersebut:

Jenis akses Deskripsi proses konfigurasi dan deployment
Internal dengan peering VPC

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 API Apigee.

Eksternal dengan MIG

Izinkan akses eksternal ke proxy API Anda.

Gunakan grup instance terkelola (MIG) untuk mengirim traffic API dari layanan backend load balancer global ke Apigee. Dengan konfigurasi ini, Apigee hanya dapat terhubung ke VPC yang di-peering. Konfigurasi ini memungkinkan Anda mengirim permintaan proxy Apigee API dari mesin yang mendukung jaringan mana pun.

Internal dengan PSC (Baru)

Izinkan hanya akses internal ke proxy API Anda dari project Google Cloud mana pun menggunakan Private Service Connect (PSC).

PSC memungkinkan koneksi pribadi antara produsen layanan (Apigee) dan konsumen layanan (project VPC yang di-peering dan/atau satu atau beberapa project Cloud lain yang Anda kontrol). Dengan metode ini, permintaan diteruskan melalui endpoint layanan atau load balancer internal regional ke satu titik lampiran, yang disebut lampiran layanan. Konfigurasi ini memungkinkan klien internal Anda mengirim permintaan proxy API Apigee dari mesin yang mendukung jaringan mana pun.

Eksternal dengan PSC (Baru)

Izinkan akses eksternal ke proxy API Anda menggunakan Private Service Connect (PSC).

Gunakan Private Service Connect (PSC) untuk mengaktifkan koneksi pribadi antara produsen layanan (Apigee) dan konsumen layanan (project VPC yang di-peering dan/atau satu atau beberapa project Cloud lain yang Anda kontrol). Dengan metode ini, permintaan melewati Load Balancer eksternal global atau Load Balancer eksternal regional ke satu titik lampiran, yang disebut lampiran layanan. Konfigurasi ini memungkinkan Anda mengirim permintaan proxy Apigee API dari mesin yang mendukung jaringan.

Setiap pendekatan perutean ini disajikan dalam petunjuk di bawah.

Perutean internal (VPC)

Untuk merutekan traffic dari klien internal ke Apigee, Anda dapat memilih untuk menggunakan penghentian TLS atau tidak:

  • Opsi TLS: Anda memiliki dua pilihan jika ingin melakukan panggilan proxy API dari klien internal dengan TLS diaktifkan:
    • (Opsi 1) Mengonfigurasi load balancer internal (ILB):
      1. Buat grup instance terkelola (MIG) di project Anda. Untuk membuat MIG, ikuti langkah-langkah 8a, 8b, dan 8c di tab Perutean eksternal (MIG).
      2. Buat dan konfigurasi load balancer HTTPS(S) internal (ILB), dan lampirkan MIG yang Anda buat ke layanan backend ILB, seperti yang dijelaskan dalam Menyiapkan Load Balancing HTTP(S) Internal dengan backend grup instance VM. Dengan konfigurasi ILB, Anda memiliki kontrol penuh atas sertifikat CA yang digunakan dengan ILB.
      3. Buka Memanggil proxy API dengan akses khusus internal untuk menguji penyiapan.
    • (Opsi 2) Gunakan nama domain yang sepenuhnya memenuhi syarat default internal dan IP load balancer internal instance Apigee. Kasus ini hanya direkomendasikan untuk tujuan pengujian, dan bukan untuk lingkungan produksi. Dalam hal ini, sertifikat yang ditandatangani sendiri yang dibuat Apigee digunakan dengan load balancer internal Apigee, dan Anda tidak dapat mengubahnya. Lihat Memanggil proxy API dengan akses khusus internal.
  • Opsi non-TLS: Jika Anda tidak memerlukan penghentian TLS, pemanggilan proxy API dapat dilakukan dengan melewati validasi sertifikat TLS. Misalnya, opsi -k pada alat command line curl menonaktifkan verifikasi sertifikat; namun, protokol TLS tetap aktif selama koneksi. Perhatikan bahwa akses ingress Apigee melalui HTTP biasa di port 80 tidak didukung, sama seperti Apigee Hybrid. Lihat Memanggil proxy API dengan akses khusus internal.

Perutean eksternal (MIG)

Bagian ini menjelaskan cara mengonfigurasi perutean untuk mengizinkan akses eksternal ke proxy API menggunakan grup instance terkelola (MIG) untuk mengirim traffic API dari layanan backend load balancer global ke Apigee. Anda harus melakukannya sebelum dapat mengirim permintaan dari klien eksternal ke instance runtime Apigee.

Proses umumnya adalah sebagai berikut:

Langkah 8a: Aktifkan Akses Google Pribadi untuk subnet jaringan VPC Anda
Langkah 8b: Siapkan variabel lingkungan
Langkah 8c: Buat grup instance terkelola
Langkah 8d: Buat sertifikat dan kunci SSL untuk load balancer
Langkah 8e: Buat load balancer global
Langkah 8f: Dapatkan alamat IP yang dicadangkan dan buat aturan firewall

Setiap langkah ini dijelaskan di bagian selanjutnya.

Langkah 8a: Aktifkan Akses Google Pribadi untuk subnet jaringan VPC Anda

Untuk mengaktifkan Akses Google Pribadi bagi subnet jaringan VPC Anda, ikuti langkah-langkah yang tercantum di Mengaktifkan Akses Google Pribadi.

Langkah 8b: Siapkan variabel lingkungan

Petunjuk di bagian ini menggunakan variabel lingkungan untuk merujuk ke string yang digunakan berulang kali. Sebaiknya Anda menyetelnya sebelum melanjutkan:

MIG_NAME=apigee-mig-MIG_NAME   # You can choose a different name if you like
VPC_NAME=default       # If you are using a shared VPC, use the shared VPC name
VPC_SUBNET=default     # Private Google Access must be enabled for this subnet
REGION=RUNTIME_REGION        # The same region as your Apigee runtime instance
APIGEE_ENDPOINT=APIGEE_INSTANCE_IP     # See the tip below for details on getting this IP address value

Anda akan menggunakan variabel ini beberapa kali selama proses yang tersisa. Jika Anda ingin mengonfigurasi beberapa wilayah, buat variabel dengan nilai khusus untuk setiap wilayah.

Langkah 8c: Buat grup instance terkelola

Pada langkah ini, Anda akan membuat dan mengonfigurasi grup instance terkelola (MIG). Pada langkah selanjutnya, Anda akan menambahkan MIG ke layanan backend yang terpasang ke load balancer global. MIG diperlukan untuk mengirim traffic API dari layanan backend load balancer global ke Apigee.

Untuk membuat MIG:

  1. Buat template instance dengan menjalankan perintah berikut.
    gcloud compute instance-templates create $MIG_NAME \
    --project $PROJECT_ID \
    --region $REGION \
    --network $VPC_NAME \
    --subnet $VPC_SUBNET \
    --tags=https-server,apigee-mig-proxy,gke-apigee-proxy \
    --machine-type e2-medium --image-family debian-12 \
    --image-project debian-cloud --boot-disk-size 20GB \
    --no-address \
    --metadata ENDPOINT=$APIGEE_ENDPOINT,startup-script-url=gs://apigee-5g-saas/apigee-envoy-proxy-release/latest/conf/startup-script.sh

    Seperti yang dapat Anda lihat dari perintah ini, komputer memiliki jenis e2-medium. Instance ini menjalankan Debian 12 dan memiliki disk 20 GB. Skrip startup-script.sh mengonfigurasi MIG untuk merutekan traffic masuk dari load balancer ke instance Apigee.

  2. Buat grup instance terkelola dengan menjalankan perintah berikut:
    gcloud compute instance-groups managed create $MIG_NAME \
    --project $PROJECT_ID --base-instance-name apigee-mig \
    --size 2 --template $MIG_NAME --region $REGION
  3. Konfigurasi penskalaan otomatis untuk grup dengan menjalankan perintah berikut:
    gcloud compute instance-groups managed set-autoscaling $MIG_NAME \
    --project $PROJECT_ID --region $REGION --max-num-replicas 3 \
    --target-cpu-utilization 0.75 --cool-down-period 90
  4. Tentukan port bernama dengan menjalankan perintah berikut:
    gcloud compute instance-groups managed set-named-ports $MIG_NAME \
    --project $PROJECT_ID --region $REGION --named-ports https:443

Langkah 8d: Buat sertifikat dan kunci SSL untuk load balancer

Anda hanya perlu membuat kredensial satu kali, baik saat menginstal di satu atau beberapa region. Pada langkah selanjutnya, Anda akan mengaitkan kredensial ini dengan proxy HTTPS target load balancer.

Anda dapat membuat kredensial dengan:

Untuk mengetahui informasi selengkapnya tentang cara membuat dan menggunakan sertifikat SSL untuk load balancer Google Cloud, lihat Sertifikat SSL dan Ringkasan sertifikat SSL.

Dalam contoh berikut, kita membuat sertifikat SSL yang dikelola Google:

  1. Buat variabel lingkungan berikut:
    CERTIFICATE_NAME=YOUR_CERT_NAME
    DOMAIN_HOSTNAME=YOUR_DOMAIN_HOSTNAME 

    Tetapkan DOMAIN_HOSTNAME ke nama host domain valid yang telah Anda daftarkan. Pada langkah selanjutnya, Anda akan mendapatkan alamat IP load balancer dan memperbarui data A domain agar mengarah ke alamat tersebut. Misalnya, nama host domain mungkin terlihat seperti ini: foo.example.com.

  2. Jalankan perintah gcloud compute ssl-certificates create:
    gcloud compute ssl-certificates create $CERTIFICATE_NAME \
      --domains=$DOMAIN_HOSTNAME \
      --project $PROJECT_ID \
      --global

    Penyediaan sertifikat dapat memerlukan waktu hingga satu jam. Untuk memeriksa status penyediaan, jalankan perintah ini:

    gcloud compute ssl-certificates describe $CERTIFICATE_NAME \
     --global \
     --format="get(name,managed.status, managed.Status)"

Langkah 8e: Buat load balancer global

  1. Buat health check:
    gcloud compute health-checks create https HEALTH_CHECK_NAME \
    --project $PROJECT_ID --port 443 --global \
    --request-path /healthz/ingress

    Anda akan menggunakan health check ini untuk memastikan bahwa layanan backend berjalan. Untuk mengonfigurasi health check lanjutan terhadap proxy tertentu, lihat Melakukan health check.

  2. Buat layanan backend:
    gcloud compute backend-services create PROXY_BACKEND_NAME \
    --project $PROJECT_ID \
    --protocol HTTPS \
    --health-checks HEALTH_CHECK_NAME \
    --port-name https \
    --timeout 302s \
    --connection-draining-timeout 300s \
    --global
  3. Tambahkan MIG ke layanan backend Anda dengan perintah berikut:
    gcloud compute backend-services add-backend PROXY_BACKEND_NAME \
    --project $PROJECT_ID --instance-group $MIG_NAME \
    --instance-group-region $REGION \
    --balancing-mode UTILIZATION --max-utilization 0.8 --global
  4. Buat peta URL load balancing dengan perintah berikut:
    gcloud compute url-maps create MIG_PROXY_MAP_NAME \
    --project $PROJECT_ID --default-service PROXY_BACKEND_NAME
  5. Buat proxy HTTPS target load balancing dengan perintah berikut:
    gcloud compute target-https-proxies create MIG_HTTPS_PROXY_NAME \
    --project $PROJECT_ID --url-map MIG_PROXY_MAP_NAME \
    --ssl-certificates $CERTIFICATE_NAME

Langkah 8f: Dapatkan alamat IP yang dicadangkan dan buat aturan firewall

Anda harus menetapkan alamat IP ke load balancer, lalu membuat aturan yang mengizinkan load balancer mengakses MIG. Anda hanya perlu melakukan langkah ini satu kali, baik Anda menginstal di satu atau beberapa region.

  1. Cadangkan alamat IP untuk load balancer:
    gcloud compute addresses create ADDRESSES_NAME \
    --project $PROJECT_ID \
    --ip-version=IPV4 \
    --global
  2. Buat aturan penerusan global dengan perintah berikut:
    gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --project $PROJECT_ID --address ADDRESSES_NAME --global \
    --target-https-proxy MIG_HTTPS_PROXY_NAME --ports 443
  3. Dapatkan alamat IP yang dipesan dengan menjalankan perintah berikut:
    gcloud compute addresses describe ADDRESSES_NAME \
    --project $PROJECT_ID --format="get(address)" --global
  4. Langkah penting: Buka situs, host DNS, atau ISP tempat data DNS Anda dikelola, dan pastikan data DNS domain Anda ditetapkan ke alamat IP load balancer Google Cloud. Alamat ini adalah nilai IP yang ditampilkan pada langkah terakhir. Untuk mengetahui detail selengkapnya, lihat Perbarui data A dan AAAA DNS agar mengarah ke alamat IP load balancer.
  5. Buat aturan firewall yang memungkinkan load balancer mengakses MIG menggunakan perintah berikut:
    gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --description "Allow incoming from GLB on TCP port 443 to Apigee Proxy" \
    --project $PROJECT_ID --network $VPC_NAME --allow=tcp:443 \
    --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=gke-apigee-proxy

    Perhatikan bahwa rentang alamat IP 130.211.0.0/22 dan 35.191.0.0/16 adalah rentang alamat IP sumber untuk Google Load Balancing. Aturan firewall ini memungkinkan Google Cloud Load Balancing membuat permintaan health check ke MIG.

Penyediaan Apigee selesai. Buka Men-deploy proxy contoh.

Perutean internal (PSC)

Bagian ini menjelaskan cara mengizinkan hanya akses internal ke proxy API dari project Google Cloud Anda menggunakan Private Service Connect (PSC).

Anda memiliki dua opsi untuk mengonfigurasi akses internal dengan PSC:

  • Endpoint layanan: Permintaan melewati endpoint layanan ke satu titik lampiran, yang disebut lampiran layanan.
  • Load balancer regional internal: Permintaan melewati load balancer HTTP(S) internal regional. Lihat juga Load balancing global vs. regional.

Pilih tab di bawah untuk pilihan konfigurasi Anda dan ikuti langkah-langkahnya:

Endpoint layanan

Membuat endpoint layanan PSC untuk lampiran layanan

  1. Dapatkan lampiran layanan dari instance yang Anda buat sebelumnya:

    Tidak ada residensi data

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
    "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Residensi data

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
    "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

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

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "host": "10.82.192.2",
          "port": "443",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "peeringCidrRange": "SLASH_22",
          "runtimeVersion": "1-7-0-20220228-190814",
          "ipRange": "10.82.192.0/22,10.82.196.0/28",
          "consumerAcceptList": [
            "875609189304"
          ],
          "serviceAttachment": "projects/bfac74a67a320c43a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw1"
        }
      ]
    }
  2. Buat Endpoint Layanan PSC yang mengarah ke lampiran layanan yang Anda peroleh dari isi respons instance pada langkah sebelumnya, seperti yang dijelaskan dalam Membuat endpoint Private Service Connect.
  3. Untuk menguji penyiapan, buka Memanggil proxy API dengan akses khusus internal.

LB regional internal

Langkah 7a: Siapkan variabel lingkungan

Petunjuk di bagian ini menggunakan variabel lingkungan untuk merujuk ke string yang digunakan berulang kali. Pastikan Anda telah menetapkan variabel di Tentukan variabel lingkungan.

Selain itu, tetapkan variabel lingkungan berikut:

NEG_NAME=YOUR_NEG_NAME
NETWORK_NAME=YOUR_NETWORK_NAME
SUBNET_NAME=YOUR_SUBNET_NAME
TARGET_SERVICE=TARGET_SERVICE_ATTACHMENT

Dengan:

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

Langkah 7b: Buat subnet khusus proxy

gcloud compute networks subnets create testproxyonlysubnet \
--purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE --region=$RUNTIME_REGION --network=$NETWORK_NAME \
--range=100.0.0.0/24 --project=$PROJECT_ID

Langkah 7c: Buat grup endpoint jaringan (NEG)

  1. Dapatkan lampiran layanan dari instance yang Anda buat sebelumnya:

    Tidak ada residensi data

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
    "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Residensi data

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
    "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

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

    {
    "instances": [
      {
        "name": "us-west1",
        "location": "us-west1",
        "host": "10.82.192.2",
        "port": "443",
        "createdAt": "1645731488019",
        "lastModifiedAt": "1646504754219",
        "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
        "state": "ACTIVE",
        "peeringCidrRange": "SLASH_22",
        "runtimeVersion": "1-7-0-20220228-190814",
        "ipRange": "10.82.192.0/22,10.82.196.0/28",
        "consumerAcceptList": [
          "875609189304"
        ],
      "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
      }
    ]
    }
  2. Buat 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 \
    --project=$PROJECT_ID
    --network=$NETWORK_NAME
    --subnet=$SUBNET_NAME
    

    Di mana

    • $PROJECT_ID dapat berupa project Cloud yang sudah dikaitkan dengan organisasi Apigee Anda, atau project Cloud yang disertakan dalam consumerAcceptlist saat instance runtime Apigee dibuat.

Langkah 7d: Mengonfigurasi load balancer internal regional

  1. Cadangkan alamat IPv4 internal untuk load balancer.
    gcloud compute addresses create ADDRESS_NAME \
    --ip-version=IPV4 --subnet=$SUBNET_NAME \
    --region=$RUNTIME_LOCATION --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)" --region=$RUNTIME_LOCATION --project=$PROJECT_ID
  2. Buat layanan backend untuk NEG.
    gcloud compute backend-services create BACKEND_SERVICE_NAME \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=HTTPS \
    --region=$RUNTIME_LOCATION \
    --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 \
    --region=$RUNTIME_LOCATION \
    --project=$PROJECT_ID

    Ganti kode berikut:

    • NEG_NAME: nama grup endpoint jaringan.
    • BACKEND_SERVICE_NAME dengan nama layanan backend.
  5. Untuk membuat load balancer HTTPS, Anda harus memiliki resource sertifikat SSL untuk digunakan di proxy target HTTPS.

    Gunakan perintah ini untuk membuat resource sertifikat SSL yang dikelola sendiri. Untuk membuat sertifikat SSL yang dikelola sendiri, Anda memerlukan file kunci pribadi lokal dan file sertifikat lokal. Jika Anda perlu membuat file ini, lihat langkah 1 menggunakan sertifikat SSL yang dikelola sendiri.

    gcloud compute ssl-certificates create CERTIFICATE \
    --certificate LB_CERT \
    --private-key LB_PRIVATE_KEY
    --region=$RUNTIME_LOCATION --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.
  6. 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 \
    --region=$RUNTIME_REGION \
    --project=$PROJECT_ID

    Ganti kode berikut:

    • URL_MAP_NAME: nama untuk peta URL.
    • DEFAULT_BACKEND_SERVICE_NAME: nama layanan backend default load balancer. Default akan digunakan jika tidak ada aturan host yang cocok dengan nama host yang diminta.
  7. 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 \
    --region=$RUNTIME_LOCATION --project=$PROJECT_ID

    Ganti kode berikut:

    • PROXY_NAME: nama untuk proxy HTTPS target.
    • URL_MAP_NAME: nama peta URL.
    • CERTIFICATE: nama resource sertifikat.
  8. Buat aturan penerusan.
    gcloud compute forwarding-rules create FWD_RULE \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --address=ADDRESS_NAME \
    --target-https-proxy=PROXY_NAME \
    --ports=443 \
    --target-https-proxy-region=$RUNTIME_REGION \
    --region=$RUNTIME_REGION \
    --project=$PROJECT_ID \
    --network=$NETWORK_NAME \
    --subnet=$SUBNET_NAME
    

    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.
    • NETWORK_NAME: (Opsional) Nama jaringan tempat NEG dibuat. Jika Anda menghapus parameter ini, jaringan project default akan digunakan.
    • SUBNET_NAME: Nama subnet yang digunakan untuk konektivitas pribadi ke produsen.
  9. Penyediaan Apigee selesai. Buka Men-deploy proxy contoh.

Perutean eksternal (PSC)

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

Langkah 7b: Buat NEG dan konfigurasi load balancer

Anda dapat membuat load balancer global atau regional.

LB eksternal global

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

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

  1. Pastikan Anda telah menetapkan variabel lingkungan di Tentukan variabel lingkungan.
  2. Dapatkan lampiran layanan dari instance yang Anda buat sebelumnya:

    Tidak ada residensi data

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Residensi data

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

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

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "host": "10.82.192.2",
          "port": "443",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "peeringCidrRange": "SLASH_22",
          "runtimeVersion": "1-7-0-20220228-190814",
          "ipRange": "10.82.192.0/22,10.82.196.0/28",
          "consumerAcceptList": [
            "875609189304"
          ],
          "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
        }
      ]
    }
  3. Buat 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. Gunakan nilai lampiran layanan yang ditampilkan oleh perintah sebelumnya. Contoh: projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
    • NETWORK_NAME: (Opsional) Nama jaringan tempat NEG dibuat. Jika Anda menghapus parameter ini, jaringan project default akan digunakan.
    • SUBNET_NAME: Nama subnet yang digunakan untuk konektivitas pribadi ke produsen. Ukuran subnet bisa kecil: NEG PSC hanya memerlukan satu IP dari subnet. Untuk Apigee, hanya satu NEG PSC yang diperlukan per region. Subnet dapat dibagikan dan digunakan oleh VM atau entitas lain. Jika subnet tidak ditentukan, endpoint jaringan dapat menjadi bagian dari subnetwork mana pun di region tempat grup endpoint jaringan dibuat.
    • $PROJECT_ID: Project Cloud yang sudah dikaitkan dengan organisasi Apigee Anda, atau project Cloud yang disertakan dalam consumerAcceptlist saat instance runtime Apigee dibuat. Jika belum, buat variabel lingkungan untuk menyimpan project ID, karena akan digunakan di sebagian besar perintah berikut.
  4. 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
  5. Buat layanan backend untuk NEG.
    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTPS \
        --global --project=$PROJECT_ID
  6. Ganti BACKEND_SERVICE_NAME dengan nama layanan backend.

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

    Ganti kode berikut:

    • BACKEND_SERVICE_NAME: nama layanan backend.
    • NEG_NAME: nama grup endpoint jaringan.
    • REGION: region grup endpoint jaringan.
  8. 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 akan digunakan jika tidak ada aturan host yang cocok dengan nama host yang diminta.
  9. Buat proxy HTTPS target.

    Untuk membuat load balancer HTTPS, Anda harus memiliki resource sertifikat SSL untuk digunakan di proxy target HTTPS. Anda dapat membuat resource sertifikat SSL menggunakan sertifikat SSL yang dikelola Google atau sertifikat SSL yang dikelola sendiri. Sebaiknya gunakan sertifikat yang dikelola Google karena Google Cloud memperoleh, mengelola, dan memperpanjang sertifikat ini secara otomatis.

    Untuk membuat sertifikat yang dikelola Google, Anda harus memiliki domain.

    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 load balancer Anda.

    Gunakan perintah ini untuk membuat resource sertifikat SSL yang dikelola sendiri. Untuk membuat sertifikat SSL yang dikelola sendiri, Anda memerlukan file kunci pribadi lokal dan file sertifikat lokal. Jika Anda perlu membuat file ini, lihat langkah 1 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.

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

LB eksternal regional

Mengonfigurasi load balancer HTTP(S) eksternal regional. Lihat juga Ringkasan load balancer HTTP(S) eksternal.

  1. Pastikan Anda telah menetapkan variabel di Tentukan variabel lingkungan.
  2. Buat subnet khusus proxy:
    gcloud compute networks subnets create SUBNET_NAME \
          --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE \
          --region=$RUNTIME_LOCATION --network=NETWORK_NAME \
          --range=100.0.0.0/24 --project=$PROJECT_ID

    Ganti kode berikut:

    • SUBNET_NAME: nama subnet.
    • (Opsional) NETWORK_NAME: Nama jaringan tempat subnet dibuat. Jika Anda menghapus parameter ini, jaringan project default akan digunakan.
  3. Dapatkan lampiran layanan dari instance yang Anda buat sebelumnya:

    Tidak ada residensi data

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Residensi data

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

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

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "host": "10.82.192.2",
          "port": "443",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "peeringCidrRange": "SLASH_22",
          "runtimeVersion": "1-7-0-20220228-190814",
          "ipRange": "10.82.192.0/22,10.82.196.0/28",
          "consumerAcceptList": [
            "875609189304"
          ],
          "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
        }
      ]
    }
  4. Buat grup endpoint jaringan.
    gcloud compute network-endpoint-groups create NEG_NAME \
        --network-endpoint-type=private-service-connect \
        --psc-target-service=TARGET_SERVICE \
        --region=$RUNTIME_LOCATION --project=$PROJECT_ID

    Ganti kode berikut:

    • NEG_NAME: nama grup endpoint jaringan.
    • TARGET_SERVICE: nama lampiran layanan yang ingin Anda hubungkan. Contoh: projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
  5. Buat layanan backend untuk NEG.
    gcloud compute backend-services create BACKEND_SERVICE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --protocol=HTTPS \
      --region=$RUNTIME_LOCATION  \
      --project=$PROJECT_ID
  6. Ganti BACKEND_SERVICE_NAME dengan nama layanan backend.

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

    Ganti kode berikut:

    • BACKEND_SERVICE_NAME: nama layanan backend.
    • NEG_NAME: nama grup endpoint jaringan.
  8. 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 \
      --region=$RUNTIME_LOCATION  \
      --project=$PROJECT_ID

    Ganti kode berikut:

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

    Untuk membuat load balancer HTTPS, Anda harus memiliki resource sertifikat SSL untuk digunakan di proxy target HTTPS.

    Gunakan perintah ini untuk membuat resource sertifikat SSL yang dikelola sendiri. Untuk membuat sertifikat SSL yang dikelola sendiri, Anda memerlukan file kunci pribadi lokal dan file sertifikat lokal. Jika Anda perlu membuat file ini, lihat langkah 1 menggunakan sertifikat SSL yang dikelola sendiri.

    gcloud compute ssl-certificates create CERTIFICATE \
      --certificate LB_CERT \
      --private-key LB_PRIVATE_KEY --region=$RUNTIME_LOCATION \
      --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.

    Gunakan resource sertifikat SSL untuk membuat proxy HTTPS target.

    gcloud compute target-https-proxies create PROXY_NAME \
      --url-map=URL_MAP_NAME --region=$RUNTIME_LOCATION \
      --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.
  10. Cadangkan alamat eksternal regional untuk load balancer. Perhatikan bahwa tingkat jaringan harus ditetapkan ke STANDARD.
    gcloud compute addresses create ADDRESS_NAME \
          --region=$RUNTIME_LOCATION --network-tier=STANDARD \
          --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)" --region=$RUNTIME_LOCATION \
          --project=$PROJECT_ID
  11. Membuat aturan penerusan.
    gcloud compute forwarding-rules create FWD_RULE \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --network-tier=STANDARD \
      --address=ADDRESS_NAME \
      --target-https-proxy=PROXY_NAME \
      --ports=443  --region=$RUNTIME_LOCATION \
      --target-https-proxy-region=$RUNTIME_LOCATION --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. Buka Men-deploy proxy contoh.

Langkah 9: Deploy proxy contoh

  1. Download proxy contoh dari GitHub. Target proxy adalah layanan httpbin.org, yang merupakan layanan permintaan dan respons publik yang umum digunakan.
  2. Upload paket proxy API ke runtime menggunakan Apigee apis API:

    Tidak ada residensi data

    curl -i -X POST -H "Authorization: Bearer $AUTH" \
        -H "Content-Type:multipart/form-data" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/apis?name=httpbin&action=import" \
        -F 'file=@PATH_TO_ZIP_FILE/httpbin_rev1_2020_02_02.zip'

    Residensi data

    curl -i -X POST -H "Authorization: Bearer $AUTH" \
        -H "Content-Type:multipart/form-data" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/apis?name=httpbin&action=import" \
        -F 'file=@PATH_TO_ZIP_FILE/httpbin_rev1_2020_02_02.zip'

    Dengan PATH_TO_ZIP_FILE adalah jalur ke direktori yang berisi file ZIP yang didownload.

  3. Deploy API Proxy ke lingkungan yang Anda buat sebelumnya:

    Tidak ada residensi data

    curl -i -H "Authorization: Bearer $AUTH" -X POST \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"

    Residensi data

    curl -i -H "Authorization: Bearer $AUTH" -X POST \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"
  4. Konfirmasi bahwa deployment berhasil diselesaikan dengan panggilan API ini:

    Tidak ada residensi data

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"

    Residensi data

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"
  5. Panggil proxy API:

    Kirim permintaan ke proxy API dari mesin yang mendukung jaringan mana pun dengan menjalankan perintah berikut:

    curl -i -H "Host: ENV_GROUP_HOSTNAME" \
        "https://ENV_GROUP_HOSTNAME/httpbin/headers"

    Jika perlu, Anda dapat menggunakan API ini untuk mendapatkan nilai ENV_GROUP_HOSTNAME:

    Tidak ada residensi data

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

    Residensi data

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

    Jika Anda mendapatkan error seperti ini: CONNECT_CR_SRVR_HELLO:sslv3 alert handshake failure, periksa untuk memastikan sertifikat SSL yang Anda buat sebelumnya telah disediakan. Gunakan perintah ini untuk memeriksa status penyediaan. Saat sertifikat disediakan, statusnya adalah ACTIVE.

    gcloud compute ssl-certificates describe CERTIFICATE \
        --global \
        --format="get(name,managed.status, managed.Status)"

    Jika berhasil, proxy API contoh akan menampilkan respons yang mirip dengan ini:

    {
        "headers": {
          "Accept": "*/*",
          "Grpc-Trace-Bin": "AAD/8WC/I4AUSrMEch0E9yj+AYck1x9afwckAgA",
          "Host": "httpbin.org",
          "Traceparent": "00-fff160bf2380144ab304721d04f728fe-8724d71f5a7f0724-00",
          "User-Agent": "curl/7.77.0",
          "X-Amzn-Trace-Id": "Root=1-61d785ef-7613aa8a7fde7a910441fab9",
          "X-B3-Sampled": "0",
          "X-B3-Spanid": "8724d71f5a7f0724",
          "X-B3-Traceid": "fff160bf2380144ab304721d04f728fe",
          "X-Cloud-Trace-Context": "fff160bf2380144ab304721d04f728fe/9738144823944087332;o=0",
          "X-Envoy-Attempt-Count": "1"
        }
    }

Untuk mengetahui informasi selengkapnya tentang men-deploy proxy, termasuk informasi pemecahan masalah tambahan, lihat Men-deploy proxy API.