Apigee Edge ile Apigee Adapter for Envoy'u kullanma

Apigee Edge belgelerini görüntülüyorsunuz.
Git: Apigee X belgeleri.
bilgi

Bu örnekte, Apigee Edge ile Envoy için Apigee bağdaştırıcının nasıl kullanılacağı gösterilmektedir.

Ön koşullar

Başlamadan önce:

Genel Bakış

Bu örnekte, Genel Cloud için Apigee Edge ile Envoy için Apigee Adapter'ın nasıl kullanılacağı açıklanmaktadır. API proxy çağrıları, Edge'in Envoy için Apigee Remote Service üzerinden API yönetim hizmetleri sağladığı yerel bir uygulama olarak çalışan Envoy üzerinden akar.

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

Yönetim düzlemi, çalışma zamanı düzlemi ve GCP hizmetleri dahil olmak üzere Apigee Edge Cloud ile iletişim kurmak için doğal olarak çalışan Envoy bağdaştırıcının üst düzey görünümü

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

Apigee Edge'i sağlama

Bu adımda, Envoy öğeleri için Apigee Adapter'ı Apigee Edge'e sağlamak üzere Remote Service CLI'yi kullanacaksınız. Temel hazırlık komutu Apigee Edge'e bir API proxy'si dağıtır. ve ayrıca, yeni bir projede Apigee'ye gönderir ve Uzak Hizmet'in güvenli bir şekilde kullandığı kimlik bilgilerini oluşturur. sisteminizden Apigee'ye bağlayabilirsiniz.

  1. $CLI_HOME dizinine gidin:
    cd $CLI_HOME
  2. Aşağıdaki ortam değişkenlerini oluşturun. Bu değişkenler, parametrelerini temel hazırlık komut dosyasına ekleyin:
    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ınızın kullanıcı adı. 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. Şuna benzer bir görünümde olacaktır:
    # 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 gelen istekleri doğrulamak için kullanılır kullanıma sunduk.

Envoy hizmeti için Apigee Remote Service'i çalıştırma

Uzak Hizmeti, yerel bir ikili dosya olarak veya Docker'da çalıştırabilirsiniz.

Hizmeti yerel olarak çalıştırma

Temel hazırlık komutu tarafından oluşturulan yapılandırma dosyasını kullanarak 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, yayın etiketleriyle yayınlanır. Bu yükleme için en son sürümü kullanın. Orada üç resim varyasyonu vardır:

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

Örneğin, scratch görüntüsünü bir birim bağlama üzerinden /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'sini yükleme ve çalıştırma

Envoy proxy'sini yüklemek ve çalıştırmak için şu adımları uygulayın:

  1. Envoy ikili dosyasını indirin veya inşa etmek isterseniz 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

Yüklemeyi test etme

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

    Bu hizmet şu anda Apigee tarafından yönetiliyor. API anahtarı sağlamadığınız için çağrı aşağıdaki hatayı döndürür.

    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. Bir API ürününü yapılandırma ve API anahtarı alma API anahtarı nasıl alınır?
  3. Anahtarı kullanarak bir 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 başlık 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 hizmetine giden API trafiği artık Apigee tarafından yönetiliyor. İşte keşfedip deneyebileceğiniz bazı özellikler:

  • API ürününüzü API anahtarı nasıl alınır? kota sınırı dakikada 5 istek olarak ayarlandı. httpbin hizmetini aramayı deneyin birkaç kez daha ekleyebilirsiniz. Kotayı aştığınızda şu hatayı görürsünüz:
    HTTP/1.1 429 Too Many Requests
  • Edge kullanıcı arayüzünden Apigee Analytics'e erişin. Analiz > API Metrikleri > API Proxy Performansı.
  • API çağrılarının kimliğini doğrulamak için JWT jetonları oluşturup kullanma
  • Jetonları yönetmek, oluşturmak ve bağlantıları kontrol etmek için KSA'yı kullanın. CLI ayrıntıları için Referans bölümüne bakın.