Panduan operasi

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Lihat dokumentasi Apigee Edge.

Cara mendapatkan kunci API

Contoh berikut menjelaskan cara mendapatkan kunci API yang dapat Anda gunakan untuk memvalidasi panggilan API ke layanan target yang di-proxy melalui Apigee Adapter for Envoy.

1. Login ke Apigee

  1. Buka UI Apigee di browser.
  2. Setelah masuk ke UI, pilih organisasi yang sama dengan yang Anda gunakan untuk mengonfigurasi Apigee Adapter for Envoy.

2. Membuat Developer

Anda dapat menggunakan developer yang sudah ada untuk pengujian, atau membuat yang baru sebagai berikut:

  1. Pilih Publikasikan > Developer di menu navigasi samping.
  2. Klik + Developer.
  3. Isi dialog untuk membuat developer baru. Anda dapat menggunakan nama/email developer apa pun yang Anda inginkan.

3. Membuat Produk API

Ikuti contoh Pembuatan produk yang diberikan di bawah. Lihat juga Tentang konfigurasi produk API.

  1. Pilih Publish > API Products di menu navigasi samping.
  2. Klik +Create.
  3. Isi halaman Detail produk sebagai berikut. Jangan klik Simpan hingga Anda diminta untuk melakukannya.
    Kolom Nilai
    Nama httpbin-product
    Display Name httpbin product
    Lingkungan your_environment

    Tetapkan ini ke lingkungan yang Anda gunakan saat menyediakan Apigee Adapter for Envoy dengan apigee-remote-service-cli.

    Akses Private
    Kuota 5 permintaan setiap 1 menit

    Lihat juga Tentang produk API.

  4. Di bagian Atribut Kustom, klik +TAMBAHKAN ATRIBUT KUSTOM.
  5. Masukkan pasangan nama/nilai ini:
    • Nama: Masukkan nama atribut ini: apigee-remote-service-targets
    • Nilai: Masukkan nama layanan target. Contoh: httpbin.org
  6. Klik Oke.
  7. Klik Simpan.

4. Membuat Aplikasi Developer

  1. Pilih Publikasikan > Aplikasi di menu navigasi samping.
  2. Klik + Aplikasi.
  3. Isi halaman Aplikasi Developer sebagai berikut. Jangan Simpan hingga Anda diberi tahu untuk melakukannya.
  4. Nama httpbin-app
    Display Name httpbin app
    Developer Pilih developer yang Anda buat sebelumnya, atau pilih developer yang Anda inginkan dari daftar.
  5. Di bagian Kredensial, klik + Tambahkan produk dan pilih produk yang baru saja Anda konfigurasi: httpbin-product.
  6. Klik Buat.
  7. Di bagian Kredensial, klik Tampilkan di samping Kunci.
  8. Salin nilai Consumer Key. Nilai ini adalah kunci API yang akan Anda gunakan untuk melakukan panggilan API ke layanan httpbin.

Tentang produk API

Produk API adalah titik kontrol utama untuk Layanan Jarak Jauh Apigee. Saat membuat Produk API dan mengikatnya ke layanan target, Anda membuat kebijakan yang akan diterapkan ke permintaan apa pun yang Anda konfigurasi untuk ditangani oleh Apigee Adapter for Envoy.

Definisi Produk API

Saat menentukan Produk API di Apigee, Anda dapat menetapkan sejumlah parameter yang akan digunakan untuk mengevaluasi permintaan:

  • Target
  • Request path
  • Kuota
  • Cakupan OAuth

Target Layanan Jarak Jauh

Definisi Produk API akan berlaku untuk permintaan jika permintaan cocok dengan target binding (misalnya, httpbin.org) dan jalur permintaan (misalnya, /httpbin). Daftar target potensial disimpan sebagai atribut di Produk API.

Secara default, Apigee Remote Service memeriksa header :authority (host) khusus Envoy terhadap daftar targetnya; namun, header ini dapat dikonfigurasi untuk menggunakan header lain.

Jalur Resource API

Jalur yang dimasukkan cocok menurut aturan berikut:

  • Garis miring tunggal (/) dengan sendirinya cocok dengan jalur apa pun.
  • * valid di mana saja dan cocok dalam segmen (di antara garis miring).
  • ** valid di akhir dan cocok dengan apa pun hingga akhir baris.

Kuota

Kuota menentukan jumlah pesan permintaan yang diizinkan untuk dikirimkan aplikasi ke API selama satu jam, hari, minggu, atau bulan. Jika aplikasi mencapai batas kuota, panggilan API berikutnya akan ditolak.

Kasus penggunaan kuota

Kuota memungkinkan Anda menerapkan jumlah permintaan yang dapat dibuat klien ke layanan dalam jangka waktu tertentu. Kuota sering digunakan untuk menerapkan kontrak bisnis atau SLA dengan developer dan partner, bukan untuk pengelolaan traffic operasional. Misalnya, kuota dapat digunakan untuk membatasi traffic layanan gratis, sekaligus mengizinkan akses penuh bagi pelanggan berbayar.

Kuota ditentukan dalam Produk API

Parameter kuota dikonfigurasi di Produk API. Misalnya, saat membuat Produk API, Anda dapat secara opsional menetapkan batas kuota yang diizinkan, unit waktu, dan interval.

Menetapkan batas kuota di UI Apigee.>

Karena kunci API dipetakan kembali ke Produk API, setiap kali kunci API diverifikasi, penghitung kuota yang sesuai dapat dikurangi (jika Kuota ditentukan dalam Produk terkait).

Tidak seperti dalam runtime Apigee, Kuota yang dimasukkan dalam definisi Produk secara otomatis diterapkan oleh Apigee Remote Service. Jika permintaan diizinkan, permintaan akan dihitung berdasarkan kuota yang diizinkan.

Tempat kuota dikelola

Kouta dipertahankan dan diperiksa secara lokal oleh proses Layanan Jarak Jauh dan dipertahankan secara asinkron dengan Apigee Runtime. Artinya, kuota tidak akurat dan kemungkinan akan melebihi batas jika Anda memiliki lebih dari satu Layanan Jarak Jauh yang mempertahankan kuota. Jika koneksi ke Apigee Runtime terganggu, kuota lokal akan berlanjut sebagai kuota mandiri hingga dapat terhubung kembali ke Apigee Runtime.

Cakupan OAuth

Jika menggunakan token JWT, Anda dapat membatasi token ke subset cakupan OAuth yang diizinkan. Cakupan yang ditetapkan ke token JWT yang diterbitkan akan diperiksa berdasarkan cakupan Produk API.

Tentang Aplikasi developer

Setelah mengonfigurasi Produk API, Anda akan membuat Aplikasi yang terkait dengan Developer. Aplikasi mengizinkan klien mengakses Produk API terkait dengan Kunci API atau Token JWT.

Menggunakan autentikasi berbasis JWT

Anda dapat menggunakan token JWT untuk melakukan panggilan proxy API terautentikasi, bukan menggunakan kunci API. Bagian ini menjelaskan cara menggunakan perintah apigee-remote-service-cli token untuk membuat, memeriksa, dan merotasi token JWT. Untuk lingkungan hybrid Apigee, Anda dapat menggunakan perintah ini untuk membuat secret Kubernetes guna menyimpan JWT.

Ringkasan

Verifikasi dan autentikasi JWT ditangani oleh Envoy menggunakan JWT Authentication Filter.

Setelah diautentikasi, filter ext-authz Envoy akan mengirimkan header permintaan dan JWT ke apigee-remote-service-envoy. JWT ini mencocokkan klaim api_product_list dan scope JWT dengan Produk API Apigee untuk mengotorisasi JWT terhadap target permintaan.

Membuat token JWT Apigee

Token JWT Apigee dapat dibuat menggunakan CLI:

apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET

Atau dengan menggunakan endpoint token OAuth standar. Contoh curl:

curl https://org-env.apigee.net/remote-service/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"

Menggunakan token JWT

Setelah memiliki token, Anda cukup meneruskannya ke Envoy di header Otorisasi. Contoh:

curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"

Kegagalan token JWT

Penolakan Envoy

Jika Envoy menolak token, Anda mungkin melihat pesan seperti:

Jwks remote fetch is failed

Jika ya, pastikan konfigurasi Envoy Anda berisi URI yang valid di bagian remote_jwks, URI tersebut dapat dijangkau oleh Envoy, dan Anda telah menetapkan sertifikat dengan benar saat menginstal proxy Apigee. Anda akan dapat memanggil URI secara langsung dengan panggilan GET dan menerima respons JSON yang valid.

Contoh:

curl https://myorg-eval-test.apigee.net/remote-service/certs

Pesan lain dari Envoy mungkin terlihat seperti:

  • "Audiens di JWT tidak diizinkan"
  • "Jwt issuer is not configured" (Penerbit JWT tidak dikonfigurasi)

Error ini berasal dari persyaratan dalam konfigurasi Envoy yang mungkin perlu Anda ubah.

Memeriksa token

Anda dapat menggunakan CLI untuk memeriksa token. Contoh

apigee-remote-service-cli -c config.yaml token inspect -f path/to/file

atau

apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN

Proses Debug

Lihat Kunci API yang valid gagal.

Logging

Anda dapat menyesuaikan tingkat logging pada layanan $REMOTE_SERVICE_HOME/apigee-remote-service-envoy. Semua logging dikirim ke stderr.

Elemen Wajib Deskripsi
-l, --log-level Level yang valid: debug, info, warn, error. Menyesuaikan tingkat logging. Default: info
-j, --json-log Memancarkan output log sebagai rekaman JSON.

Envoy menyediakan logging. Untuk mengetahui informasi selengkapnya, lihat link dokumentasi Envoy berikut:

Mengubah nama rahasia kebijakan

Secret Kubernetes yang di-deploy ke cluster berisi kredensial yang diperlukan adaptor untuk mengautentikasi komunikasi dengan proxy layanan jarak jauh. Secret ini memerlukan titik pemasangan volume, yang dapat dikonfigurasi. Secara default, titik pemasangan adalah /policy-secret. Untuk mengubah titik pemasangan, ikuti langkah-langkah berikut:

  1. Jalankan perintah ini:
    $REMOTE_SERVICE_HOME/apigee-remote-service-envoy --policy-secret '/new-mount_point_name

    Contoh:

    $REMOTE_SERVICE_HOME/apigee-remote-service-envoy --policy-secret '/my-mount-point
  2. Buka $CLI_HOME/samples/apigee-envoy-adapter.yaml di editor.
  3. Ubah nama titik pemasangan menjadi nama baru:
    volumeMounts:
      - mountPath: /config
        name: apigee-remote-service-envoy
        readOnly: true
      - mountPath: /opt/apigee/tls
        name: tls-volume
        readOnly: true
      - mountPath: /my-mount-point
        name: policy-secret
        readOnly: true
  4. Simpan file dan terapkan ke service mesh:
    kubectl apply -f $REMOTE_SERVICE_HOME/samples/apigee-envoy-adapter.yaml

Menggunakan proxy jaringan

Proxy HTTP dapat disisipkan dengan menggunakan variabel lingkungan HTTP_PROXY dan HTTPS_PROXY di lingkungan biner apigee-remote-service-envoy. Saat menggunakannya, variabel lingkungan NO_PROXY juga dapat digunakan untuk mengecualikan host tertentu agar tidak dikirim melalui proxy.

HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
NO_PROXY=127.0.0.1,localhost

Ingat bahwa proxy harus dapat dijangkau dari apigee-remote-service-envoy.

Tentang metrik dan analisis

Endpoint metrik Prometheus tersedia di :5001/metrics. Anda dapat mengonfigurasi nomor port ini. Lihat File konfigurasi.

Analisis Envoy

Link berikut memberikan informasi tentang cara mendapatkan data analisis proxy Envoy:

Analytics Istio

Link berikut memberikan informasi tentang cara mendapatkan data analisis proxy Envoy:

Analisis Apigee

Apigee Remote Service for Envoy mengirimkan statistik permintaan ke Apigee untuk pemrosesan analisis. Apigee melaporkan permintaan ini dengan nama Produk API terkait.

Untuk mengetahui informasi tentang analisis Apigee, lihat Ringkasan layanan analisis.