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 tanpa peering VPC. Langkah-langkah ini berlaku untuk model harga Langganan dan Bayar sesuai penggunaan untuk organisasi berbayar dengan atau tanpa kedudukan data yang diaktifkan.
Lihat juga Opsi penyediaan.Batasan
Opsi penginstalan peering non-VPC yang dijelaskan dalam dokumen ini memiliki beberapa batasan:
- Kontrol Layanan VPC tidak didukung.
- Peering DNS pribadi tidak didukung.
Untuk daftar lengkap fitur dan pendekatan jaringan yang didukung dan tidak didukung untuk peering non-VPC, lihat Cara memilih opsi jaringan.
Ringkasan langkah
Langkah-langkah penyediaannya adalah sebagai berikut:
- Langkah 1: Tentukan variabel lingkungan:
Siapkan
gcloud
dan tentukan variabel lingkungan. Google Cloud CLI mengelola autentikasi, konfigurasi lokal, alur kerja developer,dan interaksi dengan Google Cloud API. - Langkah 2: Aktifkan API: Apigee mengharuskan Anda mengaktifkan beberapa Google Cloud API.
- Langkah 3: Buat identitas layanan Apigee: Akun layanan ini digunakan oleh library klien Google Cloud untuk melakukan autentikasi dengan Google Cloud API.
- Langkah 4: Buat organisasi: Organisasi Apigee (terkadang disebut sebagai org) adalah penampung tingkat teratas di Apigee. Tindakan ini mencakup semua lingkungan dan grup lingkungan, pengguna, proxy API, dan resource terkait.
- Langkah 5: Buat instance runtime: Instance, atau runtime, adalah tempat project dan layanan terkait disimpan; instance ini menyediakan endpoint yang ditampilkan kepada pengguna untuk layanan Anda.
- Langkah 6: Membuat lingkungan: Proxy API harus di-deploy ke lingkungan, dan ditambahkan ke grup lingkungan, sebelum API yang dieksposnya dapat diakses melalui jaringan.
- Langkah 7: Konfigurasi pemilihan rute: Izinkan akses eksternal atau akses khusus internal ke API Anda.
- Langkah 8: Men-deploy proxy contoh: Uji penyediaan dengan men-deploy dan memanggil proxy API.
Langkah 1: Menentukan variabel lingkungan
Siapkan gcloud
dan tentukan variabel lingkungan untuk digunakan di langkah berikutnya:
- Pastikan Anda telah menyelesaikan persyaratan penyiapan yang tercantum di Sebelum memulai.
- Anda harus menginstal Cloud SDK. Jika Anda perlu menginstalnya, lihat Menginstal Cloud SDK.
- 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
. - 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:
PAYG
untuk organisasi Pay-as-you-go.SUBSCRIPTION
untuk organisasi Langganan.
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:
PAYG
untuk organisasi Pay-as-you-go.SUBSCRIPTION
untuk organisasi Langganan.
-
AUTH menentukan header
- (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
-
Apigee mengharuskan Anda mengaktifkan beberapa Google Cloud API. Aktifkan dengan menjalankan perintah
services enable
berikut:gcloud services enable apigee.googleapis.com \ compute.googleapis.com \ cloudkms.googleapis.com --project=$PROJECT_ID
(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
-
Buat identitas layanan Apigee:
gcloud beta services identity create --service=apigee.googleapis.com \ --project=$PROJECT_ID
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: 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.
-
Membuat key ring dan kunci enkripsi database runtime.
-
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
ataueurope
) 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, gunakannam4
. - 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
- (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
- 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.
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
Masukkan ID kunci dalam variabel lingkungan. Anda akan menggunakan variabel ini dalam perintah berikutnya:
RUNTIMEDB_KEY_ID=YOUR_RUNTIMEDB_KEY_ID
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.
-
- Jika Anda menggunakan data residency, buat key ring dan kunci enkripsi control plane. Jika Anda tidak menggunakan retensi data, lanjutkan ke langkah 3.
- 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.
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.
- 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
- 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
- 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
- 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.
-
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"'", "disableVpcPeering":"true", "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 keCLOUD
.billingType
: Menentukan jenis penagihan organisasi yang dibuat.disableVpcPeering
: Tetapkan ketrue
jika Anda tidak ingin menggunakan peering VPC. Default:false
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"'", "disableVpcPeering":"true", "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 keCLOUD
.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.disableVpcPeering
: Tetapkan ketrue
jika Anda tidak ingin menggunakan peering VPC. Default:false
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", ... }'
- Tunggu beberapa menit.
- 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 berhasil, objek respons akan menunjukkan
"state": "ACTIVE"
, dan Anda dapat melanjutkan ke langkah berikutnya.Jika Apigee menampilkan respons error HTTP, lihat Membuat organisasi Apigee.
Lakukan langkah-langkah berikut untuk membuat key ring dan kunci enkripsi control plane.
Lihat juga: Pemecahan masalah CMEK.
Langkah 5: 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:
-
Pastikan Apigee telah selesai membuat organisasi Anda. Anda telah mengirimkan permintaan untuk membuat organisasi baru di Membuat organisasi Apigee, tetapi Anda harus memastikan permintaan 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, lalu kirim permintaan lagi.
- Serupa 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
- INSTANCE_NAME: Nama instance baru Anda. Misalnya,
my-runtime-instance
. Nama harus diawali dengan huruf kecil, dapat panjangnya maksimal 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 tempat fisik tempat cluster Anda dihosting.
Nilai yang valid adalah lokasi apa pun 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.
- Buat kunci enkripsi disk:
- Buat key ring disk baru:
gcloud kms keyrings create $DISK_KEY_RING_NAME \ --location $RUNTIME_LOCATION \ --project $PROJECT_ID
Key ring disk Anda harus ditetapkan ke lokasi yang sama dengan instance. Setiap instance dan ring kunci harus memiliki lokasinya sendiri.
- 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 direferensikan oleh jalur kunci-nya. 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 terlihat seperti berikut:
projects/PROJECT_ID/locations/RUNTIME_LOCATION/keyRings/my-disk-key-ring/cryptoKeys/my-disk-key
Masukkan jalur kunci dalam variabel lingkungan. Anda akan menggunakan variabel ini dalam perintah berikutnya:
DISK_KEY_ID=YOUR_DISK_KEY_ID
Contoh:
DISK_KEY_ID=projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
Berikan akses bagi Agen Layanan Apigee untuk 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. \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
Perintah ini mengikat kunci ke Agen Layanan Apigee.
Untuk mengetahui informasi selengkapnya, lihat Tentang kunci enkripsi Apigee.
- Buat key ring disk baru:
- Buat instance runtime baru untuk project Anda dengan mengirimkan 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 keterangan:
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 Private Service Connect Google Cloud untuk memungkinkan produsen layanan (dalam hal ini, Apigee) 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. Misalnya:"consumerAcceptList": ["project1", "project2", "project3"]
Perhatikan bahwa Anda juga dapat menetapkan dan mengubah daftar project yang diterima di UI Instance. Untuk mengetahui detailnya, lihat Mengelola 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.
Untuk memeriksa status permintaan pembuatan instance runtime, jalankan perintah berikut. Jika statusnya ACTIVE, 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"
Dengan keterangan:
Langkah 6: Buat lingkungan
Untuk membuat lingkungan dan melampirkannya ke runtime di command line:
- Tentukan variabel lingkungan yang akan digunakan di bagian ini. Variabel lingkungan spesifik yang Anda buat
akan bergantung pada apakah Anda membuat lingkungan untuk organisasi langganan atau Bayar sesuai penggunaan.
Langganan
Untuk lingkungan langganan, buat variabel berikut:
ENVIRONMENT_NAME="YOUR_ENV_NAME"
ENV_GROUP_NAME="YOUR_ENV_GROUP_NAME"
ENV_GROUP_HOSTNAME="YOUR_ENV_GROUP_HOSTNAME"
Dengan keterangan:
ENVIRONMENT_NAME
adalah nama string. Contoh:test
ENV_GROUP_NAME
adalah nama string. Contoh:test-group
ENV_GROUP_HOSTNAME
adalah nama host domain yang valid. Contoh:foo.example.com
Bayar sesuai penggunaan
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 keterangan:
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
, atauCOMPREHENSIVE
. Pengguna lain harus menghapus jenis lingkungan.ENV_GROUP_NAME
adalah nama string. Contoh:test-group
ENV_GROUP_HOSTNAME
adalah nama host domain yang valid. Contoh:foo.example.com
- Buat lingkungan baru dengan Environments API. Perintah spesifik yang Anda gunakan akan bergantung pada apakah Anda membuat lingkungan untuk organisasi langganan atau Bayar sesuai penggunaan.
Langganan
Untuk lingkungan langganan 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"'" }'
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"'" }'
Apigee membuat lingkungan baru.
Bayar sesuai penggunaan
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.
- Sebelum melanjutkan, pastikan 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 hal berikut:[ "test" ]
- 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 hingga 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" } ] }
- 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"'"] }'
- 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"
- 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"'" }'
- 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 7: Konfigurasikan perutean
Pada langkah ini, Anda mengonfigurasi cara aplikasi klien berkomunikasi dengan Apigee. Traffic klien ke Apigee juga disebut traffic "northbound". Opsi konfigurasi northbound 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 PSC (Baru) |
Hanya izinkan akses internal ke proxy API dari project Google Cloud Anda 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 lainnya yang Anda kontrol). Dengan metode ini, permintaan akan melewati endpoint layanan atau load balancer internal regional ke satu titik lampiran, yang disebut lampiran layanan. Konfigurasi ini memungkinkan klien internal Anda mengirim permintaan proxy Apigee API dari mesin apa pun yang terhubung ke jaringan. |
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-peer dan/atau satu atau beberapa project Cloud lainnya yang Anda kontrol). Dengan metode ini, permintaan akan diteruskan melalui load balancer eksternal global atau load balancer eksternal regional ke satu titik pemasangan, yang disebut lampiran layanan. Konfigurasi ini memungkinkan Anda mengirim permintaan proxy Apigee API dari mesin apa pun yang terhubung ke jaringan. |
Setiap pendekatan pemilihan rute ini disajikan dalam petunjuk di bawah.
Perutean internal (PSC)
Bagian ini menjelaskan cara mengizinkan hanya akses internal ke proxy API dari project Google Cloud mana pun 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 ini untuk pilihan konfigurasi Anda dan ikuti langkah-langkahnya:
Endpoint layanan
Membuat endpoint layanan PSC untuk lampiran layanan
- 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", "createdAt": "1645731488019", "lastModifiedAt": "1646504754219", "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek", "state": "ACTIVE", "runtimeVersion": "1-7-0-20220228-190814", "consumerAcceptList": [ "my-project" ], "serviceAttachment": "projects/bfac74a67a320c43a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw1" } ] }
- Buat Endpoint Layanan PSC yang mengarah ke lampiran layanan yang Anda dapatkan dari isi respons instance pada langkah sebelumnya, seperti yang dijelaskan dalam Membuat endpoint Private Service Connect.
- Penyediaan Apigee selesai. Buka Men-deploy proxy contoh.
LB regional internal
Langkah 8a: Menyiapkan variabel lingkungan
Petunjuk di bagian ini menggunakan variabel lingkungan untuk merujuk ke string yang digunakan berulang kali. Pastikan Anda telah menetapkan variabel di Menentukan variabel lingkungan.
Selain itu, tetapkan variabel lingkungan berikut:
NEG_NAME=YOUR_NEG_NAME"TARGET_SERVICE=YOUR_TARGET_SERVICE"
NETWORK_NAME=YOUR_NETWORK_NAME"
SUBNET_NAME=YOUR_SUBNET_NAME"
Dengan keterangan:
- NEG_NAME: nama untuk grup endpoint jaringan.
- TARGET_SERVICE: lampiran layanan yang ingin Anda hubungkan. Contoh:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
- 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 dapat kecil: PSC NEG hanya memerlukan satu IP dari subnet. Untuk Apigee, hanya satu PSC NEG yang diperlukan per wilayah. Subnet dapat dibagikan dan digunakan oleh VM atau entitas lainnya. Jika subnet tidak ditentukan, endpoint jaringan dapat menjadi bagian dari subnetwork mana pun di wilayah tempat grup endpoint jaringan dibuat.
Langkah 8b: 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 8c: Buat grup endpoint jaringan (NEG)
- 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", "createdAt": "1645731488019", "lastModifiedAt": "1646504754219", "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek", "state": "ACTIVE", "runtimeVersion": "1-7-0-20220228-190814", "consumerAcceptList": [ "my-project" ], "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7" } ] }
Buat NEG Private Service Connect yang mengarah ke lampiran layanan yang Anda peroleh dari isi respons instance di 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
Dengan $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 8d: Konfigurasikan load balancer internal regional
- 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
- Buat layanan backend untuk NEG.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTPS \ --region=$RUNTIME_REGION \ --project=$PROJECT_ID
- 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.
-
Untuk membuat load balancer HTTPS, Anda harus memiliki resource sertifikat SSL yang akan 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.
-
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 digunakan jika tidak ada aturan host yang cocok dengan nama host yang diminta.
-
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.
- 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.
- Penyediaan Apigee selesai. Buka Men-deploy proxy contoh.
Ganti BACKEND_SERVICE_NAME dengan nama layanan backend.
Pemilihan rute eksternal (PSC)
Bagian ini menjelaskan cara mengonfigurasi pemilihan rute eksternal menggunakan Private Service Connect (PSC) untuk mengizinkan komunikasi antara Apigee dan VPC yang Anda kontrol. Anda harus melakukannya sebelum dapat mengirim permintaan dari klien eksternal ke instance runtime Apigee.
Langkah 8b: Buat NEG dan konfigurasikan load balancer
Anda dapat membuat load balancer global atau regional.
LB eksternal global
Konfigurasikan load balancer HTTP(S) eksternal global (skema load balancing ditetapkan ke EXTERNAL_MANAGED
).
Meskipun NEG Private Service Connect bersifat regional, semua komponen load balancing lain dalam konfigurasi ini bersifat global.
- Pastikan Anda telah menetapkan variabel lingkungan di Menentukan variabel lingkungan.
- 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" } ] }
Buat NEG Private Service Connect yang mengarah ke lampiran layanan yang Anda dapatkan dari isi respons instance di 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 dapat kecil: PSC NEG hanya memerlukan satu IP dari subnet. Untuk Apigee, hanya satu PSC NEG yang diperlukan per wilayah. Subnet dapat dibagikan dan digunakan oleh VM atau entitas lainnya. Jika subnet tidak ditentukan, endpoint jaringan dapat menjadi bagian dari subnetwork mana pun di region tempat grup endpoint jaringan dibuat.
- $PROJECT_ID Project Cloud yang sudah dikaitkan dengan organisasi Apigee Anda, atau project Cloud yang disertakan dalam
consumerAcceptlist
saat instance runtime Apigee dibuat. Jika Anda belum melakukannya, buat variabel lingkungan untuk menyimpan project ID, karena digunakan di sebagian besar perintah berikut.
- 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
- Buat layanan backend untuk NEG.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global --project=$PROJECT_ID
- 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.
Buat peta URL untuk load balancer.
Peta URL harus merujuk ke layanan backend default. Tetapkan layanan backend yang baru saja Anda buat sebagai default.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --global --project=$PROJECT_ID
Ganti kode berikut:
- URL_MAP_NAME: nama untuk peta URL.
- DEFAULT_BACKEND_SERVICE_NAME: nama layanan backend default load balancer. Default digunakan jika tidak ada aturan host yang cocok dengan nama host yang diminta.
Buat proxy HTTPS target.
Untuk membuat load balancer HTTPS, Anda harus memiliki resource sertifikat SSL yang akan digunakan di proxy target HTTPS. Anda dapat membuat resource sertifikat SSL menggunakan sertifikat SSL yang dikelola Google atau sertifikat SSL yang dikelola sendiri. 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.
- 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.
Ganti BACKEND_SERVICE_NAME dengan nama layanan backend.
LB eksternal regional
Mengonfigurasi load balancer HTTP(S) eksternal regional. Lihat juga Ringkasan load balancer HTTP(S) eksternal.
- Pastikan Anda telah menetapkan variabel di Menentukan variabel lingkungan.
- 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.
- 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" } ] }
- 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
- 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
- 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.
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 digunakan jika tidak ada aturan host yang cocok dengan nama host yang diminta.
Buat proxy HTTPS target.
Untuk membuat load balancer HTTPS, Anda harus memiliki resource sertifikat SSL yang akan 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.
- 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
- 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.
Ganti BACKEND_SERVICE_NAME dengan nama layanan backend.
Penyediaan Apigee selesai. Buka Men-deploy proxy contoh.
Langkah 8: Men-deploy proxy contoh
- Download contoh proxy dari GitHub. Target proxy adalah layanan httpbin.org, yang merupakan layanan permintaan dan respons publik yang umum digunakan.
- Upload paket proxy API ke runtime menggunakan API
apis
Apigee: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.
-
Deploy Proxy API 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"
- 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"
Panggil proxy API:
Kirim permintaan ke proxy API dari mesin apa pun yang terhubung ke jaringan dengan menjalankan perintah berikut:
curl -i -H "Host: ENV_GROUP_HOSTNAME" \ "https://ENV_GROUP_HOSTNAME/httpbin/headers"
Jika diperlukan, 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 adalahACTIVE
.gcloud compute ssl-certificates describe CERTIFICATE \ --global \ --format="get(name,managed.status, managed.Status)"
Setelah berhasil, contoh proxy API 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 informasi selengkapnya tentang men-deploy proxy, termasuk informasi pemecahan masalah tambahan, lihat Men-deploy proxy API.