Menggunakan Adaptor Apigee untuk Envoy dengan Apigee Edge

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

Contoh ini menunjukkan cara menggunakan Apigee Adapter untuk Envoy dengan Apigee Edge.

Prasyarat

Sebelum memulai:

Ringkasan

Contoh ini menjelaskan cara menggunakan Apigee Adapter untuk Envoy dengan Apigee Edge untuk Public Cloud. Panggilan proxy API mengalir melalui Envoy yang berjalan sebagai aplikasi native dengan Edge yang menyediakan layanan pengelolaan API melalui Apigee Remote Service untuk Envoy.

Menyediakan Apigee Edge

Pada langkah ini, Anda akan menggunakan Remote Service CLI untuk menyediakan Apigee Adapter untuk aset Envoy ke Apigee Edge. Perintah penyediaan men-deploy proxy API ke Apigee Edge, dan juga menyiapkan sertifikat di Apigee serta menghasilkan kredensial yang akan digunakan Remote Service untuk terhubung dengan aman dari sistem Anda ke Apigee.

  1. Buka direktori $CLI_HOME:
    cd $CLI_HOME
  2. Buat variabel lingkungan berikut. Variabel ini akan digunakan sebagai parameter ke skrip penyediaan:
    export ORG=organization_name
    export ENV=environment_name
    export USER=your_apigee_username
    export PASSWORD=your_apigee_password

    Dengan keterangan:

    Variabel Deskripsi
    organization_name Nama organisasi Apigee Anda.
    environment_name Nama lingkungan di organisasi Anda.
    your_apigee_username Nama pengguna akun Apigee Anda. Biasanya nama pengguna adalah alamat email.
    your_apigee_password Sandi Apigee Anda.
  3. Jalankan perintah berikut untuk menyediakan proxy layanan jarak jauh di Apigee Edge:

    Jika Anda tidak melakukan upgrade, gunakan perintah ini untuk menyediakan Apigee:

    $CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \
      --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml

    Jika Anda melakukan upgrade, gunakan perintah ini dengan flag --force-proxy-install untuk menyediakan Apigee:

    $CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --mfa $MFA \
      --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
  4. Periksa konten file config.yaml. Konfigurasinya akan terlihat seperti ini:
    # Configuration for apigee-remote-service-envoy (platform: SaaS)
    # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: apigee-remote-service-envoy
      namespace: apigee
    data:
      config.yaml: |
        tenant:
          internal_api: https://istioservices.apigee.net/edgemicro
          remote_service_api: https://my-username-test.apigee.net/remote-service
          org_name: my-org
          env_name: my-env
          key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664
          secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75
       ...

    Nilai kunci dan rahasia digunakan untuk memvalidasi permintaan dari Remote Service Proxy ke Apigee Edge.

Menjalankan Apigee Remote Service untuk layanan Envoy

Anda dapat menjalankan Remote Service sebagai biner native atau di Docker.

Menjalankan layanan secara native

Jalankan biner layanan dengan file konfigurasi yang dihasilkan oleh perintah penyediaan:

$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml

Menjalankan layanan di Docker

Image Docker dipublikasikan dengan tag rilis. Untuk penginstalan ini, gunakan versi terbaru. Ada tiga variasi gambar yang dapat dipilih:

Variasi Gambar
Tanpa distro dari Google google/apigee-envoy-adapter:v2.0.0
Ubuntu google/apigee-envoy-adapter:v2.0.0-ubuntu
Ubuntu dengan Kripto yang Membosan google/apigee-envoy-adapter:v2.0.0-boring

Misalnya, untuk menjalankan image scratch dengan config.yaml lokal yang tersedia sebagai /config.yaml melalui pemasangan volume, gunakan perintah ini:

docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.0

Membuat contoh file konfigurasi

Buat file konfigurasi Envoy menggunakan CLI:

  1. Pastikan Anda berada di direktori $ENVOY_HOME.
  2. Tampilkan daftar template konfigurasi yang tersedia:
    $CLI_HOME/apigee-remote-service-cli samples templates
  3. Jalankan perintah contoh. Untuk TEMPLATE, ganti salah satu template Envoy yang didukung:

    $CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml

    Perintah tersebut akan membuat file ./samples/envoy-config.yaml.

Untuk mengetahui informasi selengkapnya, lihat Perintah sample.

Menginstal dan menjalankan proxy Envoy

Ikuti langkah-langkah berikut untuk menginstal dan menjalankan proxy Envoy:

  1. Download Envoy binary atau buat Envoy, atau gunakan Docker.
  2. Jalankan Envoy menggunakan contoh file konfigurasi yang Anda buat sebelumnya untuk layanan httpbin.org:
    envoy -c ./samples/envoy-config.yaml

Menguji penginstalan

  1. Konfigurasi produk API dan dapatkan kunci API seperti yang dijelaskan dalam Cara mendapatkan kunci API.
  2. Panggil layanan httpbin tanpa kunci API:
    curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
    

    Layanan ini sekarang dikelola oleh Apigee, dan karena Anda tidak memberikan kunci API, panggilan akan menampilkan error berikut.

    curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
    HTTP/1.1 403 Forbidden
    date: Tue, 12 May 2020 17:51:36 GMT
    server: envoy
    content-length: 0
    x-envoy-upstream-service-time: 11
  3. Lakukan panggilan API menggunakan kunci:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/headers \
    -H "HOST:httpbin.org" -H "x-api-key: $APIKEY"

    Panggilan akan berhasil dengan status 200 dan menampilkan daftar header dalam respons. Contoh:

    curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS"
    HTTP/1.1 200 OK
    server: envoy
    date: Tue, 12 May 2020 17:55:34 GMT
    content-type: application/json
    content-length: 828
    access-control-allow-origin: *
    access-control-allow-credentials: true
    x-envoy-upstream-service-time: 301
    
    {
      "headers": {
        "Accept": "*/*",
        "Content-Length": "0",
        "Host": "httpbin.default.svc.cluster.local",
        "User-Agent": "curl/7.70.0-DEV",
        "X-Api-Key": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS",
        "X-Apigee-Accesstoken": "",
        "X-Apigee-Api": "httpbin.default.svc.cluster.local",
        "X-Apigee-Apiproducts": "httpbin",
        "X-Apigee-Application": "httpbin",
        "X-Apigee-Authorized": "true",
        "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS",
        "X-Apigee-Developeremail": "user@example.com",
        "X-Apigee-Environment": "test",
        "X-Apigee-Organization": "my-org",
        "X-Apigee-Scope": "",
        "X-B3-Parentspanid": "1476f9a2329bbdfa",
        "X-B3-Sampled": "0",
        "X-B3-Spanid": "1ad5c19bfb4bc96f",
        "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa"
      }
    }

Langkah berikutnya

Traffic API ke layanan httpbin kini dikelola oleh Apigee. Berikut beberapa fitur yang dapat Anda jelajahi dan coba:

  • Jika Anda mengonfigurasi produk API seperti yang dijelaskan di Cara mendapatkan kunci API, batas kuota telah ditetapkan menjadi 5 permintaan per menit. Coba panggil layanan httpbin beberapa kali untuk memicu kuota. Jika kuota habis, error status HTTP 403 akan ditampilkan.
  • Akses Analisis Apigee di UI Edge. Buka Analyze > API Metrics > API Proxy Performance.
  • Membuat dan menggunakan token JWT untuk mengautentikasi panggilan API.
  • Gunakan CLI untuk mengelola, membuat token, dan mengontrol binding. Untuk detail CLI, lihat Referensi.