Apigee Edge ile Apigee Adapter for Envoy'u kullanma

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Bu örnekte, Apigee Edge ile Envoy için Apigee Adapter'ın nasıl kullanılacağı gösterilmektedir.

Ön koşullar

Başlamadan önce:

Genel bakış

Bu örnekte, Apigee Edge'in herkese açık Cloud ile kullanımı için Apigee Adapter for Envoy'un nasıl kullanılacağı açıklanmaktadır. API proxy çağrıları, Apigee Remote Service for Envoy aracılığıyla Edge ile yerel uygulama olarak çalışan Envoy üzerinden gerçekleşir.

Aşağıdaki şekilde Apigee Edge entegrasyonunun temel mimarisi gösterilmektedir:

Yönetim düzlemi, çalışma zamanı düzlemi ve GCP hizmetleri dahil Apigee Edge Cloud ile iletişim kurmak için yerel olarak çalışan Envoy Adapter'ın üst düzey görünümü

Yerel olarak bir Envoy proxy ve Remote Service çalışıyor. Envoy, hedef hizmete gelen ve hedef hizmetten giden API trafiğini yönetir ve Uzak Hizmet ile iletişim kurar. Remote Service, API ürün ve proxy bilgilerini almak için Apigee Edge Cloud ile iletişim de kurar.

Apigee Edge'in Temel Hazırlığını Yap

Bu adımda, Envoy varlıkları için Apigee Adapter'ı Apigee Edge'e sağlamak için Remote Service KSA'yı kullanacaksınız. Temel hazırlık komutu, Apigee Edge'e bir API proxy'si dağıtır, ayrıca Apigee üzerinde sertifika oluşturur ve Remote Service'in sisteminizden Apigee'ye güvenli bir şekilde bağlanmak için kullanacağı kimlik bilgilerini oluşturur.

  1. $CLI_HOME dizinine gidin:
    cd $CLI_HOME
  2. Aşağıdaki ortam değişkenlerini oluşturun. Aşağıdaki değişkenler, temel hazırlık komut dosyasında parametre olarak kullanılır:
    export ORG=organization_name
    export ENV=environment_name
    export USER=your_apigee_username
    export PASSWORD=your_apigee_password

    Burada:

    Değişken Açıklama
    organization_name Apigee kuruluşunuzun adı.
    environment_name Kuruluşunuzdaki bir ortamın adı.
    your_apigee_username Apigee hesabı kullanıcı adınız. Kullanıcı adı genellikle bir e-posta adresidir.
    your_apigee_password Apigee şifreniz.
  3. Apigee Edge'de uzak hizmet proxy'sini sağlamak için aşağıdaki komutu yürütün:
    ./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. config.yaml dosyasının içeriğini kontrol edin. Aşağıdaki gibi görünecektir:
    # 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

    Anahtar ve gizli anahtar değerleri, Uzak Hizmet Proxy'sinden Apigee Edge'e yapılan istekleri doğrulamak için kullanılır.

Apigee Remote Service for Envoy hizmetini çalıştırma

Remote Service'i yerel ikili program olarak veya Docker üzerinde çalıştırabilirsiniz.

Hizmeti yerel olarak çalıştırma

Temel hazırlık komutu tarafından oluşturulan yapılandırma dosyasıyla hizmet ikili programını yürütün:

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

Hizmeti Docker'da çalıştırma

Docker görüntüleri sürüm etiketleriyle yayınlanır. Bu yükleme için en son sürümü kullanın. Seçebileceğiniz üç resim varyasyonu vardır:

Çeşitlilik Resim
çizim google/apigee-envoy-adapter:v1.0.0
Ubuntu google/apigee-envoy-adapter:v1.0.0-ubuntu
Boring Crypto ile Ubuntu google/apigee-envoy-adapter:v1.0.0-boring

Örneğin, yedek görüntüyü birim ekleme aracılığıyla /config.yaml olarak kullanılabilen yerel config.yaml ile çalıştırmak için şu komutu kullanın:

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

Envoy proxy'yi yükleme ve çalıştırma

Envoy proxy'yi yüklemek ve çalıştırmak için aşağıdaki adımları uygulayın:

  1. Envoy ikili programı indirin, oluşturun veya Docker'ı kullanın.
  2. httpbin.org hizmeti için ayarlanmış örnek bir yapılandırma dosyası kullanarak Envoy'u çalıştırın:
    envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml

Kurulumu test etme

  1. httpbin hizmetini arayın:
    curl -i http://localhost:8080/httpbin/headers
    

    Hizmet artık Apigee tarafından yönetiliyor ve API anahtarı sağlamadığınız için çağrı aşağıdaki hatayı döndürüyor.

    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. API anahtarı edinme sayfasında açıklandığı şekilde bir API ürünü yapılandırın ve API anahtarı alın.
  3. Şu anahtarı kullanarak API çağrısı yapın:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"

    Çağrı, 200 durumuyla başarılı olmalı ve yanıtta bir üstbilgi listesi döndürmelidir. Örneğin:

    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"
      }
    }

Sonraki adımlar

httpbin hizmetinin API trafiği artık Apigee tarafından yönetiliyor. Keşfedebileceğiniz ve deneyebileceğiniz bazı özellikler şunlardır:

  • API ürününüzü API anahtarı alma bölümünde açıklandığı şekilde yapılandırdıysanız kota sınırı, dakikada 5 isteğe ayarlanmıştır. Kotayı tetiklemek için httpbin hizmetini birkaç kez daha çağırmayı deneyin. Kotayı aştığınızda şu hatayı görürsünüz:
    HTTP/1.1 429 Too Many Requests
  • Uç kullanıcı arayüzünden Apigee Analytics'e erişin. Analiz > API Metrikleri > API Proxy Performansı'na gidin.
  • API çağrılarının kimliğini doğrulamak için JWT jetonları oluşturup kullanın.
  • Jetonları yönetmek, oluşturmak ve bağlamaları kontrol etmek için KSA'yı kullanın. CLI ayrıntıları için Referans'a bakın.