Menggunakan Adaptor Apigee untuk Envoy dengan Apigee Edge

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

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

Prasyarat

Sebelum memulai:

Ringkasan

Contoh ini menjelaskan cara menggunakan Adaptor Apigee untuk Envoy dengan Apigee Edge untuk Cloud Publik. API panggilan proxy mengalir melalui Envoy yang berjalan sebagai aplikasi native dengan Edge yang menyediakan API layanan pengelolaan layanan melalui Apigee Remote Service for Envoy.

Gambar berikut menunjukkan arsitektur dasar untuk integrasi Apigee Edge:

Tujuan tingkat tinggi
    Envoy Adapter yang berjalan secara native untuk berkomunikasi dengan Apigee Edge Cloud, termasuk
    bidang pengelolaan, bidang runtime, dan layanan GCP

Proxy Envoy dan Remote Service berjalan secara lokal. Envoy menangani traffic API ke dan dari layanan target serta berkomunikasi dengan Layanan Jarak Jauh. {i>Remote Service<i} juga mengkomunikasikan dengan Apigee Edge Cloud untuk mengambil informasi proxy dan produk API.

Menyediakan Apigee Edge

Pada langkah ini, Anda akan menggunakan Remote Service CLI guna menyediakan Adaptor Apigee untuk aset Envoy Apigee Edge. Perintah penyediaan men-deploy proxy API ke Apigee Edge, dan juga menyiapkan sertifikat pada Apigee dan membuat kredensial yang akan digunakan Remote Service untuk mengamankan hubungkan dari sistem Anda ke Apigee.

  1. Buka direktori $CLI_HOME:
    cd $CLI_HOME
  2. Buat variabel lingkungan berikut. Variabel-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

    Dalam hal ini:

    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:
    ./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. Periksa isi file config.yaml. Ini akan terlihat seperti berikut:
    # Configuration for apigee-remote-service-envoy
    # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52
    tenant:
      internal_api: https://istioservices.apigee.net/edgemicro
      remote_service_api: https://my-org-test.apigee.net/remote-service
      org_name: my-org
      env_name: test
      key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4
      secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98

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

Menjalankan layanan Apigee Remote Service untuk Envoy

Anda dapat menjalankan Layanan Jarak Jauh 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 adalah tiga variasi gambar yang dapat dipilih:

Variasi Gambar
scratch google/apigee-envoy-adapter:v1.0.0
Ubuntu google/apigee-envoy-adapter:v1.0.0-ubuntu
Ubuntu dengan Boring Crypto google/apigee-envoy-adapter:v1.0.0-boring

Misalnya, untuk menjalankan gambar awal 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:v1.0.0

Menginstal dan menjalankan proxy Envoy

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

  1. Download biner Envoy atau membangunnya, atau gunakan Docker.
  2. Jalankan Envoy menggunakan contoh file konfigurasi yang disiapkan untuk layanan httpbin.org:
    envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml

Menguji penginstalan

  1. Panggil httpbin layanan:
    curl -i http://localhost:8080/httpbin/headers
    

    Layanan sekarang dikelola oleh Apigee, dan karena Anda tidak menyediakan kunci API, panggilan akan mengembalikan {i>error<i} berikut.

    curl -i http://localhost:8080/httpbin/headers
    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
  2. Konfigurasi produk API dan dapatkan kunci API seperti yang dijelaskan di Cara mendapatkan kunci API.
  3. Lakukan panggilan API menggunakan kunci tersebut:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/httpbin/headers -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 coba dan coba:

  • Jika Anda mengonfigurasi produk API seperti yang dijelaskan di Cara mendapatkan kunci API, batas kuota ditetapkan menjadi 5 permintaan per menit. Coba panggil layanan httpbin beberapa kali lagi untuk memicu kuota. Jika melebihi kuota, Anda akan melihat error ini:
    HTTP/1.1 429 Too Many Requests
  • Akses Analisis Apigee di UI Edge. Buka Analyze > Metrik API > API Performa Proxy.
  • Membuat dan menggunakan token JWT untuk mengautentikasi panggilan API.
  • Gunakan CLI untuk mengelola, membuat token, dan mengontrol binding. Untuk mengetahui detail CLI, lihat Reference.