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 kemampuan data tetap.

Ringkasan langkah

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 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 Melakukan inisialisasi 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 perlukan: Tanpa retensi data atau dengan Retensi 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 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 saat masa berlakunya berakhir, Anda cukup membuat ulang token menggunakan perintah yang sama. Untuk 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 Analisis API Apigee 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 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 saat masa berlakunya berakhir, Anda cukup membuat ulang token menggunakan perintah yang sama. Untuk 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 platform 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 menampilkan 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 \
        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 ini 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 akan menampilkan nama agen dalam format berikut: service-PROJECT_NUMBER@gcp-sa-apigee.. misalnya:

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

Langkah 4: Konfigurasikan jaringan layanan

Pada langkah ini, Anda 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. Platform runtime Apigee diberi alamat IP dari dalam rentang CIDR ini. Oleh karena itu, penting untuk mencadangkan rentang tersebut untuk Apigee dan tidak digunakan oleh aplikasi lain di jaringan VPC Anda. Untuk informasi selengkapnya dan pertimbangan penting, lihat Memahami rentang peering.

Perhatikan bahwa Anda membuat rentang IP jaringan yang memadai untuk satu instance Apigee. Jika berencana membuat instance Apigee tambahan, Anda harus mengulangi langkah ini untuk setiap instance. Rentang tersebut 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 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 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 menentukan rentang alamat secara opsional. 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. 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, 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 hingga 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 menggunakan data residency, key ring dan kunci enkripsi kontrol plane (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 secret klien, yang kemudian disimpan di database. Untuk mengetahui informasi selengkapnya, lihat Tentang kunci enkripsi Apigee.

  1. Membuat key ring dan kunci enkripsi database runtime.

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

      Nilainya adalah lokasi fisik tempat cincin kunci enkripsi database runtime dan kunci disimpan.

      Satu region

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

      Contoh:

      RUNTIMEDBKEY_LOCATION="us-west1"

      Nilainya dapat sama dengan $RUNTIME_LOCATION (juga merupakan region), tetapi tidak harus begitu. Namun, mungkin ada manfaat performa jika keduanya sama.

      Multi-region

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

      Contoh:

      RUNTIMEDBKEY_LOCATION="us"

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

    2. Tentukan variabel lingkungan untuk ring kunci dan nama 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 lainnya.

      RUNTIMEDB_KEY_RING_NAME=YOUR_DB_KEY_RING_NAME
      RUNTIMEDB_KEY_NAME=YOUR_DB_KEY_NAME
    3. (Opsional) Periksa pekerjaan Anda dengan menampilkan nilai yang baru saja Anda tetapkan. Ingat 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 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 berikutnya:

      RUNTIMEDB_KEY_ID=YOUR_RUNTIMEDB_KEY_ID
    7. Berikan akses bagi Agen Layanan Apigee untuk 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. \
        --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.
        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 data residency, buat key ring dan kunci enkripsi control plane. Jika Anda tidak menggunakan retensi 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 kunci dan ring enkripsi database bidang kontrol Anda:
      CONTROL_PLANE_LOCATION=YOUR_CONTROL_PLANE_LOCATION
      CONSUMER_DATA_REGION=YOUR_CONSUMER_DATA_REGION

      Dengan keterangan:

      • CONTROL_PLANE_LOCATION adalah lokasi fisik tempat data platform 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 ring kunci dan nama 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 keterangan:

      • 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 region data konsumen.
      • CONSUMER_DATA_KEY_NAME adalah nama kunci yang akan Anda gunakan untuk mengidentifikasi kunci enkripsi region data konsumen.
    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 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 berikutnya:
      CONTROL_PLANE_KEY_ID=YOUR_CONTROL_PLANE_KEY_ID
      
      CONSUMER_DATA_KEY_ID=YOUR_CONSUMER_DATA_KEY_ID
    6. Berikan akses bagi Agen Layanan Apigee untuk 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." \
        --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." \
       --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.
        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 organizations API 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 keterangan:

    • -d menentukan payload data untuk permintaan. Payload ini harus menyertakan hal berikut:
      • name: Mengidentifikasi organisasi baru Anda. Namanya 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. Misalnya:
        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 keterangan:

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

    • name: Mengidentifikasi organisasi baru Anda. Namanya 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 region 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. Misalnya:
      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 kutip ganda-tunggal-ganda di sekitar variabel $PROJECT_ID, seperti yang ditunjukkan pada contoh berikut:

    "'"$PROJECT_ID"'"

    Jika menggunakan string biasa (bukan variabel lingkungan) untuk nilai permintaan, Anda dapat menggabungkannya dalam tanda kutip ganda dalam string payload tanda kutip tunggal, seperti yang ditunjukkan pada 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 pada 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.