Panduan operasi

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

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 Adaptor Apigee untuk Envoy.

1. Login ke Apigee

  1. Buka UI Apigee di browser.
  2. Setelah berada di UI, pilih organisasi yang sama dengan yang Anda gunakan untuk mengonfigurasi Adaptor Apigee untuk Envoy.

2. Membuat Developer

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

  1. Pilih Publikasi > 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 Publikasi > Produk API di menu navigasi samping.
  2. Klik + API Product.
  3. Isi halaman Detail produk sebagai berikut. Jangan klik Simpan hingga diperintahkan untuk melakukannya.
  4. Kolom Nilai
    Nama httpbin-product
    Display Name httpbin product
    Lingkungan your_environment

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

    Akses Private
    Kuota 5 permintaan setiap 1 menit

    Lihat juga Memahami kuota.

  5. Di bagian Target layanan jarak jauh Apigee, klik Tambahkan target layanan jarak jauh Apigee.
  6. Pada dialog target layanan jarak jauh Apigee, tambahkan nilai berikut:
    Atribut Nilai Deskripsi
    Nama target Masukkan nama layanan target. Contoh: httpbin.org Endpoint target yang didahului oleh proxy Envoy.
    Jalur Masukkan /resource_path untuk mencocokkan jalur tertentu. Contoh: /httpbin. Jalur permintaan yang akan dicocokkan pada endpoint target. Panggilan proxy API ke jalur ini akan cocok dengan produk API ini.
  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. Selanjutnya, tambahkan dua produk ke aplikasi:
    1. Di bagian Kredensial, klik + Tambahkan produk dan pilih produk yang baru saja Anda konfigurasi: httpbin-product.
    2. Klik Buat.
    3. Di bagian Kredensial, klik Tampilkan di samping Kunci.
    4. Salin nilai Kunci Konsumen. 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 Apigee Remote Service. Saat membuat Produk API dan mengikatnya ke layanan target, berarti Anda membuat kebijakan yang akan diterapkan ke setiap permintaan yang Anda konfigurasi Adaptor Apigee untuk Envoy yang akan ditangani.

    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 pada permintaan jika permintaan tersebut cocok dengan binding target (misalnya httpbin.org) dan jalur permintaan (misalnya, /httpbin). Daftar target potensial disimpan sebagai atribut pada Produk API.

    Secara default, Layanan Jarak Jauh Apigee memeriksa header :authority (host) khusus Envoy terhadap daftar targetnya; tetapi dapat dikonfigurasi untuk menggunakan header lain.

    Jalur Resource API

    Jalur yang dimasukkan cocok sesuai dengan aturan berikut:

    • Satu garis miring (/) saja 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 aplikasi untuk dikirim 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 diajukan 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 untuk layanan gratis, sekaligus memungkinkan akses penuh untuk pelanggan yang membayar.

    Kuota ditentukan dalam Produk API

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

    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 Layanan Jarak Jauh Apigee. Jika permintaan diotorisasi, permintaan akan dihitung berdasarkan kuota yang diizinkan.

    Tempat kuota dikelola

    Kuota dikelola dan diperiksa secara lokal oleh proses Layanan Jarak Jauh dan dikelola secara asinkron dengan Runtime Apigee. Artinya, kuota tidak ditentukan dengan tepat dan kemungkinan akan mengalami beberapa kelebihan jika Anda memiliki lebih dari satu Layanan Jarak Jauh yang mempertahankan kuota. Jika koneksi ke Apigee Runtime terganggu, kuota lokal akan terus berjalan sebagai kuota mandiri hingga dapat terhubung kembali ke Apigee Runtime.

    Cakupan OAuth

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

    Tentang Aplikasi developer

    Setelah mengonfigurasi Produk API, Anda akan membuat Aplikasi yang terkait dengan Developer. Aplikasi ini memungkinkan 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 yang diautentikasi, bukan menggunakan kunci API. Bagian ini menjelaskan cara menggunakan perintah apigee-remote-service-cli token untuk membuat, memeriksa, dan memutar token JWT.

    Ringkasan

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

    Setelah diautentikasi, filter ext-authz Envoy akan mengirimkan header permintaan dan JWT ke apigee-remote-service-envoy. Hal ini mencocokkan klaim api_product_list dan scope JWT terhadap Produk API Apigee untuk memberikan otorisasi 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 berisi URI yang valid di bagian remote_jwks, yang 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 dalam Jwt tidak diizinkan"
    • "Penerbit Jwt tidak dikonfigurasi"

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

    Memeriksa token

    Anda dapat menggunakan CLI untuk memeriksa token Anda. 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 di layanan $REMOTE_SERVICE_HOME/apigee-remote-service-envoy. Semua logging dikirim ke stderr.

    Elemen Wajib Deskripsi
    -l, --log-level Level yang valid: debug, info, peringatan, error. Menyesuaikan level logging. Default: info
    -j, --json-log Mengeluarkan output log sebagai kumpulan data JSON.

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

    Menggunakan proxy jaringan

    Proxy HTTP dapat disisipkan 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:

    Analisis Istio

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

    Analisis Apigee

    Layanan Jarak Jauh Apigee untuk Envoy mengirimkan statistik permintaan ke Apigee untuk pemrosesan analisis. Apigee melaporkan permintaan ini di bagian nama Produk API terkait.

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