Menggunakan Apigee Connect (Beta)

Bagian ini menjelaskan penggunaan Apigee Connect (Beta) untuk komunikasi antara bidang pengelolaan hybrid dan layanan MART di bidang runtime.

Pengantar

Dengan Apigee Connect, bidang pengelolaan hybrid Apigee dapat terhubung dengan aman ke layanan MART di bidang runtime tanpa mengharuskan Anda mengekspos endpoint MART di internet. Jika menggunakan Apigee Connect, Anda tidak perlu mengonfigurasi gateway masuk MART dengan alias host dan sertifikat DNS yang diotorisasi.

Layanan utama yang dijalankan di bidang runtime hybrid yang menampilkan Apigee Connect

Prasyarat

Apigee Hybrid versi1.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 dalam 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 serta mengonfigurasi Apigee hybrid 1.2.0 atau yang lebih baru

Jika Apigee Connect dikonfigurasi dan diaktifkan, traffic masuk MART akan diabaikan: bidang pengelolaan hanya terhubung ke MART menggunakan Apigee Connect. Semua traffic MART di antara bidang runtime hybrid akan melewati koneksi Apigee Connect yang aman.

Ikuti langkah-langkah berikut untuk mengaktifkan dan menggunakan Apigee Connect dengan Apigee Hybrid:

  1. Aktifkan Apigee Connect API di Library Google Cloud API. Anda dapat mengaktifkan API di Google Cloud (GCP) console atau dengan gcloud. Untuk mengetahui petunjuk cara mengaktifkan API di Konsol Google Cloud, lihat Langkah 3: Mengaktifkan API. Untuk menggunakan gcloud agar dapat mengaktifkan API:
    $ gcloud config set project YOUR_GCP_PROJECT_ID
    $ gcloud services enable apigeeconnect.googleapis.com

    Dengan YOUR_GCP_PROJECT_ID merupakan project GCP yang sama dengan Apigee yang diaktifkan dan organisasi Apigee disediakan untuk Anda.
  2. Tambahkan peran Agen Apigee Connect ke akun layanan MART yang Anda buat di langkah Create service accounts 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

    Jika YOUR_GCP_PROJECT_ID merupakan project GCP yang sama dengan Apigee yang diaktifkan dan organisasi Apigee disediakan untuk Anda, dan YOUR_MART_SERVICE_ACCOUNT_EMAIL adalah nama akun layanan MART. Nama dapat berupa alamat email. Contoh: apigee-mart@my-project.iam.gserviceaccount.com.

    Peran Apigee Connect Agent telah ditetapkan sebelumnya dan memiliki izin berikut yang ditetapkan untuknya:
    Izin Deskripsi
    apigeeconnect.endpoints.connect Ini adalah izin untuk menyiapkan Agen Apigee Connect.

    Untuk mengetahui detail tentang cara menetapkan izin akses melalui konsol GCP atau API, lihat:

  3. Pastikan file kunci akun layanan MART ada di direktori hybrid_files/service_accounts, seperti yang dijelaskan dalam Membuat akun layanan.
  4. Buka file penggantian dan tambahkan bait berikut. Konfigurasi ini mengharuskan Anda menyediakan jalur ke kunci akun layanan yang telah didownload. Kunci tersebut harus untuk akun layanan dengan peran Agen Apigee Connect .
    # Apigee Connect Agent
    connectAgent:
      enabled: true
      serviceAccountPath: ./service-accounts/connect_agent_sa_key.json

    Tambahkan stanza di bawah 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
  5. Temukan kunci akun layanan dengan peran Apigee Organization Admin yang Anda download saat pertama kali menginstal Apigee Hybrid seperti yang dijelaskan di bagian Mengaktifkan akses sinkronisasi. Anda memerlukan kunci ini untuk membuat token yang diperlukan untuk melakukan panggilan API seperti yang dijelaskan di bawah.
  6. Jalankan kedua perintah berikut 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 Apigee Organization Admin.
  7. Panggil Apigee API berikut guna mengaktifkan Apigee Connect untuk 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"
        } ]
      }
    }'

  8. Mulai Agen Apigee Connect di cluster:

    $ $APIGEECTL_HOME/apigeectl apply -f your_overrides_file.yaml -c connect-agent

  9. mart:
      hostAlias: "mart.apigee-hybrid-docs.net"
      serviceAccountPath: ./service-accounts/example-project-apigee-mart.json
      sslCertPath: ./certs/fullchain.pem
      sslKeyPath: ./certs/privkey.key
    
  10. Periksa log Agen Apigee Connect. Jika tidak ada error yang dilaporkan, upgrade berhasil:
    $ kubectl logs -n namespace apigee-connect-agent-pod-name

    Agen Apigee Connect melaporkan kategori log berikut:
    Kategori log audit Operasi
    DATA_READ ConnectionService.ListConnections
    DATA_WRITE Tether.Egress
    Untuk mendapatkan bantuan tentang cara melihat log audit di Apigee Hybrid, lihat Informasi logging audit.
  11. Dengan upgrade ini, bidang runtime hybrid berkomunikasi dengan bidang pengelolaan melalui Apigee Connect.

  12. Uji penginstalan.

Lihat juga: Menghapus Apigee Connect.

Menguji penginstalan

  1. Buka Apigee Hybrid UI.
  2. Pastikan aplikasi Developer dan Developer yang Anda buat sebelumnya ada di UI. Karena entity ini dikueri dari server MART, entity ini hanya akan ada jika komunikasi antara bidang pengelolaan dan runtime dikonfigurasi dengan benar.
  3. Untuk memastikan permintaan melalui Apigee Connect dan tidak melalui ingress MART, periksa log server MART. Anda akan melihat entri untuk agen Apigee Connect yang 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"
  4. Pada UI hybrid, buat produk API, developer, dan aplikasi developer. Kemudian, periksa log layanan MART untuk memastikan entri log mengonfirmasi bahwa entity telah dikirim ke bidang runtime. Misalnya, entri log berikut menunjukkan bahwa produk API yang disebut foo-product telah diterima:
    $ 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
  5. Coba buat dan deploy proxy baru, seperti yang dijelaskan dalam Membuat dan men-deploy proxy.
  6. Konfigurasikan 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 "Penghentian" hingga tujuh menit. Jumlah waktu ini adalah hal normal. Agen Apigee Connect akan menunggu hingga masa berlaku koneksi yang ada habis, bukan menghentikannya secara tiba-tiba. Penundaan ini memastikan bahwa permintaan yang sedang berlangsung tidak hilang.