Bagian ini menjelaskan penggunaan Apigee Connect (Beta) untuk komunikasi antara bidang pengelolaan hibrida dan layanan MART di bidang runtime.
Pengantar
Apigee Connect memungkinkan bidang pengelolaan Apigee Hybrid terhubung secara aman ke layanan MART di bidang runtime tanpa mengharuskan Anda mengekspos endpoint MART di internet. Jika Anda menggunakan Apigee Connect, Anda tidak perlu mengonfigurasi gateway ingress MART dengan alias host dan sertifikat DNS yang sah.

Prasyarat
Apigee hybrid versi 1.2.0 atau yang lebih baru harus diinstal dan dikonfigurasi sebelum menyiapkan Apigee Connect.
- Jika Anda menginstal Apigee hybrid untuk pertama kalinya, ikuti petunjuk penginstalan di dokumentasi Apigee hybrid.
- Jika saat ini Anda menggunakan Apigee hybrid versi 1.1.x, Anda harus mengupgrade penginstalan ke versi 1.2.0 sebelum melanjutkan. Untuk mengetahui langkah-langkah upgrade, lihat Mengupgrade Apigee Hybrid
Menambahkan Apigee Connect ke runtime hybrid
Bagian ini mengasumsikan bahwa Anda telah menginstal atau mengupgrade ke dan mengonfigurasi Apigee hybrid 1.2.0 atau yang lebih baru
Jika Apigee Connect dikonfigurasi dan diaktifkan, ingress MART akan diabaikan: bidang pengelolaan hanya terhubung ke MART menggunakan Apigee Connect. Semua traffic MART antara bidang runtime hybrid melewati koneksi Apigee Connect yang aman.
Ikuti langkah-langkah berikut untuk mengaktifkan dan menggunakan Apigee Connect dengan Apigee Hybrid:
- Aktifkan Apigee Connect API di
Library API Google Cloud. Anda dapat mengaktifkan API di
Konsol Google Cloud (GCP) atau dengan
gcloud. Untuk mengetahui petunjuk tentang cara mengaktifkan API di konsol Google Cloud, lihat Langkah 3: Aktifkan API. Untuk menggunakangcloudguna mengaktifkan API:
$ gcloud config set project YOUR_GCP_PROJECT_ID $ gcloud services enable apigeeconnect.googleapis.com
DenganYOUR_GCP_PROJECT_IDadalah project GCP yang sama dengan project yang Apigee-nya diaktifkan dan organisasi Apigee-nya disediakan untuk Anda. - Tambahkan peran Apigee Connect Agent ke akun layanan MART yang Anda buat
di langkah
Buat akun layanan dalam petunjuk penginstalan hybrid Apigee:
$ gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID --member serviceAccount:YOUR_MART_SERVICE_ACCOUNT_EMAIL --role roles/apigeeconnect.Agent
DenganYOUR_GCP_PROJECT_IDadalah project GCP yang sama dengan project yang Apigee-nya diaktifkan dan organisasi Apigee-nya disediakan untuk Anda, danYOUR_MART_SERVICE_ACCOUNT_EMAILadalah nama akun layanan MART. Nama dalam bentuk alamat email. Misalnya:apigee-mart@my-project.iam.gserviceaccount.com.
Peran Apigee Connect Agent telah ditetapkan dan memiliki izin berikut yang ditetapkan kepadanya:
Izin Deskripsi apigeeconnect.endpoints.connectIni adalah izin untuk menyiapkan Agen Apigee Connect. Untuk mengetahui detail tentang cara menetapkan izin akses melalui konsol GCP atau API, lihat:
- Pastikan file kunci akun layanan MART berada di direktori
hybrid_files/service_accounts, seperti yang dijelaskan dalam Membuat akun layanan. - Buka file penggantian dan tambahkan stanza berikut. Konfigurasi mengharuskan Anda memberikan
jalur ke kunci akun layanan yang didownload. Kunci harus untuk akun layanan dengan peran
Apigee Connect Agent .
# Apigee Connect Agent connectAgent: enabled: true serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
Tambahkan stanza di bagian judul k8sCluster, misalnya:
k8sCluster: name: your_cluster_name region: your_cluster_region # Apigee Connect Agent connectAgent: enabled: true serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
# Apigee Connect Agent connectAgent: enabled: true replicaCountMin: 3 serviceAccountPath: ./service-accounts/connect_agent_sa_key.json - Temukan kunci akun layanan dengan peran Apigee Organization Admin yang Anda download saat pertama kali menginstal Apigee Hybrid seperti yang dijelaskan di bagian Aktifkan akses sinkronisasi. Anda memerlukan kunci ini untuk membuat token yang diperlukan untuk melakukan panggilan API seperti yang dijelaskan di bawah.
- Jalankan kedua perintah ini untuk mendapatkan token:
$ export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file $ export TOKEN=$(gcloud auth application-default print-access-token)
Dengan org-admin-service-account-file adalah jalur di sistem Anda ke kunci akun layanan yang Anda download dengan peran Admin Organisasi Apigee. - Panggil Apigee API berikut untuk mengaktifkan Apigee Connect bagi organisasi Anda:
curl -v -X PUT \ https://apigee.googleapis.com/v1/organizations/your_org_name \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -d '{ "name" : "your_org_name", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.connect.enabled", "value" : "true" } ] } }'
- Mulai Apigee Connect Agent di cluster:
$ $APIGEECTL_HOME/apigeectl apply -f your_overrides_file.yaml -c connect-agent
- Periksa log Agen Apigee Connect. Jika tidak ada error yang dilaporkan, upgrade berhasil:
$ kubectl logs -n namespace apigee-connect-agent-pod-name
Apigee Connect Agent melaporkan kategori log berikut:
Untuk mendapatkan bantuan tentang cara melihat log audit di Apigee Hybrid, lihat Informasi pencatatan audit.Kategori log audit Operasi DATA_READ ConnectionService.ListConnectionsDATA_WRITE Tether.Egress - Uji penginstalan.
mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-project-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key
Dengan upgrade ini, bidang runtime hybrid berkomunikasi dengan bidang pengelolaan melalui Apigee Connect.
Lihat juga: Menghapus Apigee Connect.
Menguji penginstalan
- Buka UI Apigee Hybrid.
- Pastikan semua Developer dan aplikasi Developer yang Anda buat sebelumnya ada di UI. Karena kueri entitas ini dilakukan dari server MART, entitas ini hanya akan ada jika komunikasi antara bidang pengelolaan dan runtime dikonfigurasi dengan benar.
- Untuk memastikan permintaan melewati Apigee Connect dan bukan melalui ingress MART, periksa
log server MART. Anda akan melihat entri untuk agen Apigee Connect bernama
apigee-connect-agent-1.0:
$ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart | grep connect
Contoh:
"2019-12-11 04:59:52,321 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576040392317 /v1/organizations/apigee-connect-hybrid-prod/developers/ count=100&expand=true&startKey=4ee9e8f7-12b2-4cde-bf10-32d991469876 200 GET apigee-connect-hybrid-prod 10.40.11.3 10.40.0.5 apigee-connect-agent-1.0 null"
- Di UI hybrid, buat produk API, developer, dan aplikasi developer. Kemudian, periksa log layanan MART
untuk memastikan entri log mengonfirmasi bahwa entitas dikirim ke bidang runtime. Misalnya,
entri log berikut menunjukkan bahwa produk API yang disebut
foo-productditerima:
$ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart
2019-12-16 22:15:29,572 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576534529566 /v1/organizations/myorg/apiproducts/foo-product/ -NA- 201 CREATE myorg 10.16.1.61 10.16.1.64 apigee-connect-agent-1.0 null 2019-12-16 22:15:30,412 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576534530407 /v1/organizations/myorg/apps/ apiProduct=foo-product&expand=false 200 GET myorg 10.16.1.61 10.16.1.64 apigee-connect-agent-1.0 null
- Coba buat dan deploy proxy baru, seperti yang dijelaskan dalam Membuat dan men-deploy proxy.
- Konfigurasi proxy Anda dengan verifikasi kunci API dengan mengikuti langkah-langkah dalam Mengamankan proxy API dengan mewajibkan kunci API. Runtime mendapatkan data yang diperlukan untuk memvalidasi kunci API dari bidang pengelolaan melalui Apigee Connect; oleh karena itu, jika verifikasi kunci API berfungsi, Anda tahu bahwa Apigee Connect berfungsi dengan baik. Anda juga dapat memeriksa log Apigee Connect untuk melihat laporan transfer data.
Menghapus Apigee Connect
Jika Anda menghapus deployment Apigee Connect, status pod dapat tetap dalam status "Terminating" selama hingga tujuh menit. Waktu ini sudah diperkirakan. Agen Apigee Connect menunggu hingga koneksi yang ada berakhir, bukan menghentikannya secara tiba-tiba. Penundaan ini memastikan bahwa permintaan dalam proses tidak hilang.