Agar bidang runtime dan bidang kontrol dapat berkomunikasi, Anda harus mengaktifkan izin yang diperlukan untuk akses Synchronizer dan penayang analisis dengan updateControlPlaneAccess API.
Mendapatkan token otorisasi
Untuk melakukan panggilan Apigee API yang dijelaskan nanti dalam topik ini, Anda perlu mendapatkan token otorisasi yang memiliki peran Apigee Organization Admin.
- Jika Anda bukan pemilik project Google Cloud yang terkait dengan organisasi hybrid Apigee, pastikan akun pengguna Google Cloud Anda memiliki peran roles/apigee.admin (Admin Organisasi Apigee). Anda dapat memeriksa peran yang ditetapkan kepada Anda dengan perintah ini:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:your_account_email"Contoh:
gcloud projects get-iam-policy my-project \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:myusername@example.com"
Output-nya harus menyertakan
roles/apigee.admin. - Jika Anda tidak memiliki
roles/apigee.admin, tambahkan peran Apigee Organization Admin ke akun pengguna Anda. Gunakan perintah berikut untuk menambahkan peran ke akun pengguna Anda:gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member user:your_account_email \ --role roles/apigee.adminContoh:
gcloud projects add-iam-policy-binding my-project \ --member user:myusername@example.com \ --role roles/apigee.admin
-
Pada command line, dapatkan kredensial autentikasi
gcloudAnda menggunakan perintah berikut:Linux / MacOS
export TOKEN=$(gcloud auth print-access-token)
Untuk memeriksa apakah token Anda telah diisi, gunakan
echo, seperti yang ditunjukkan dalam contoh berikut:echo $TOKEN
Tindakan ini akan menampilkan token Anda sebagai string yang dienkode.
Windows
for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%aUntuk memeriksa apakah token Anda telah diisi, gunakan
echo, seperti yang ditunjukkan dalam contoh berikut:echo %TOKEN%
Tindakan ini akan menampilkan token Anda sebagai string yang dienkode.
Mengaktifkan akses sinkronisasi
Untuk mengaktifkan akses sinkronisasi:
- Dapatkan alamat email untuk akun layanan yang Anda beri akses sinkronisasi.
Untuk lingkungan produksi, nilainya harus
apigee-synchronizer. Untuk lingkungan non-produksi, nilainya harusapigee-non-prod. Gunakan perintah berikut:Produksi
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"Non-produksi
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod" - Panggil API updateControlPlaneAccess untuk mengaktifkan izin yang diperlukan untuk Synchronizer menggunakan perintah berikut:
Tidak ada residensi data
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \ -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"Dengan:
${ORG_NAME}: Nama organisasi hybrid Anda.apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: Alamat email akun layanan.
Residensi data
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \ -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"Dengan:
CONTROL_PLANE_LOCATION: Lokasi untuk data bidang kontrol Anda jika penginstalan hybrid menggunakan residensi data. Ini adalah lokasi tempat konten inti pelanggan seperti paket proxy disimpan. Untuk mengetahui daftarnya, lihat Region bidang kontrol Apigee API yang tersedia.${ORG_NAME}: Nama organisasi hybrid Anda.apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: Alamat email akun layanan.
- Untuk memverifikasi bahwa akun layanan telah ditetapkan, gunakan perintah berikut untuk memanggil API guna mendapatkan
daftar akun layanan:
Tidak ada residensi data
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"Residensi data
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"Output-nya akan terlihat seperti berikut:
{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com" ] }
Mengaktifkan akses penayang analisis
Beberapa komponen runtime Apigee hybrid memublikasikan analisis dan data debug untuk memberikan informasi pelaporan dan proses debug. Untuk mengaktifkan publikasi data ini, Anda harus memberikan izin tambahan ke akun layanan yang menjalankan komponen Apigee ini untuk memublikasikan data langsung ke bidang kontrol.
Untuk mengaktifkan akses penayang analisis:
- Dapatkan alamat email untuk akun layanan yang Anda beri akses penayang analisis.
Untuk lingkungan produksi, lingkungan tersebut harus berupa
apigee-runtime,apigee-mart, danapigee-mint-task-scheduler(jika Anda mengaktifkan Monetisasi untuk Apigee hybrid). Untuk lingkungan non-produksi, nilainya harusapigee-non-prod.Produksi
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-runtime OR apigee-mart OR apigee-mint-task-scheduler"Non-produksi
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod" - Tetapkan izin untuk akun layanan bagi komponen runtime, MART, dan penjadwal tugas mint (jika Anda mengaktifkan Monetisasi untuk Apigee hybrid di v1.15.1 dan yang lebih baru) untuk memublikasikan data ke bidang kontrol dengan perintah berikut:
Tidak ada residensi data
Panggil
updateControlPlaneAccessAPI untuk mengaktifkan izin bagi akun layanan runtime dan MART:curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"Jika Anda mengaktifkan Monetisasi untuk Apigee hybrid, tetapkan izin untuk akun layanan penjadwal tugas mint:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"Dengan alamat email akun layanan berikut:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.comapigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.comapigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
Residensi data
Panggil
updateControlPlaneAccessAPI untuk mengaktifkan izin bagi akun layanan runtime dan MART:curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"Jika Anda mengaktifkan Monetisasi untuk Apigee hybrid, tetapkan izin untuk akun layanan penjadwal tugas mint:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"Dengan:
CONTROL_PLANE_LOCATIONadalah lokasi untuk data bidang kontrol Anda jika penginstalan hybrid Anda menggunakan residensi data. Ini adalah lokasi tempat konten inti pelanggan seperti paket proxy disimpan. Untuk mengetahui daftarnya, lihat Region bidang kontrol Apigee API yang tersedia.- Berikut adalah alamat email akun layanan:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.comapigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.comapigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
Responsnya akan terlihat seperti berikut:
{ "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29", "metadata": { "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata", "operationType": "UPDATE", "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess", "state": "IN_PROGRESS" } } - Verifikasi status operasi menggunakan ID di kolom name dari respons update:
Tidak ada residensi data
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"
Residensi data
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"
Responsnya akan terlihat seperti berikut:
{ "name": "organizations/YOUR_ORG_NAME/operations/$OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata", "operationType": "UPDATE", "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess", "state": "FINISHED" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.apigee.v1.ControlPlaneAccess", "name": "organizations/YOUR_ORG_NAME/controlPlaneAccess" } } - Verifikasi konfigurasi ControlPlaneAccess organisasi:
Tidak ada residensi data
curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-token)"
Residensi data
curl "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-token)"
Responsnya akan terlihat seperti berikut:
{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com" ], "analyticsPublisherIdentities": [ "serviceAccount:apigee-mart@YOUR_ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-mint-task-scheduler@YOUR_ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-runtime@YOUR_ORG_NAME.iam.gserviceaccount.com" ] }
Anda kini telah mengaktifkan bidang runtime dan pengelolaan hybrid Apigee untuk berkomunikasi. Selanjutnya, instal cert-manager agar Apigee hybrid dapat menafsirkan dan mengelola sertifikat.