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 Apigee Adapter for Envoy'un nasıl kullanılacağı gösterilmektedir.

Ön koşullar

Başlamadan önce:

Genel Bakış

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

Apigee Edge'i sağlama

Bu adımda, Apigee Adapter for Envoy varlıklarını Apigee Edge'e sağlamak için Uzak Hizmet CLI'sını kullanacaksınız. Sağlama komutu, Apigee Edge'e bir API proxy'si dağıtır ve Apigee'de bir sertifika oluşturup Uzak Hizmet'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. Bu değişkenler, sağlama 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ınızın kullanıcı adı. Kullanıcı adı genellikle bir e-posta adresidir.
    your_apigee_password Apigee şifreniz.
  3. Apigee Edge'de uzaktan hizmet proxy'si sağlamak için aşağıdaki komutu yürütün:

    Yükseltme yapmıyorsanız Apigee'yi sağlamak için şu komutu kullanın:

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

    Yükseltme yapıyorsanız Apigee'yi sağlamak için bu komutu --force-proxy-install işaretiyle kullanın:

    $CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --mfa $MFA \
      --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 (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
       ...

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

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

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

Hizmeti yerel olarak çalıştırma

Sağlama komutu tarafından oluşturulan yapılandırma dosyasıyla hizmet ikilisini 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. Aralarından seçim yapabileceğiniz üç resim varyasyonu vardır:

Çeşitlilik Resim
Google distroless google/apigee-envoy-adapter:v2.0.0
Ubuntu google/apigee-envoy-adapter:v2.0.0-ubuntu
Boring Crypto ile Ubuntu google/apigee-envoy-adapter:v2.0.0-boring

Örneğin, scratch görüntüsünü bir birim bağlama yoluyla config.yaml yereliniz /config.yaml olarak kullanılabilir şekilde çalıştırmak için şu komutu kullanın:

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

Örnek yapılandırma dosyaları oluşturma

CLI'yı kullanarak bir Envoy yapılandırma dosyası oluşturun:

  1. $ENVOY_HOME dizininde olduğunuzdan emin olun.
  2. Kullanılabilir yapılandırma şablonlarını listeleyin:
    $CLI_HOME/apigee-remote-service-cli samples templates
  3. Örnekler komutunu yürütün. TEMPLATE için desteklenen Envoy şablonlarından birini kullanın:

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

    Bu komut, ./samples/envoy-config.yaml dosyasını oluşturur.

Daha fazla bilgi için Örnekler komutu başlıklı makaleyi inceleyin.

Envoy proxy'sini 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 dosyasını indirin veya derleyin ya da Docker'ı kullanın.
  2. httpbin.org hizmeti için daha önce oluşturduğunuz örnek bir yapılandırma dosyasını kullanarak Envoy'u çalıştırın:
    envoy -c ./samples/envoy-config.yaml

Kurulumu test etme

  1. API anahtarı edinme başlıklı makalede açıklandığı gibi bir API ürünü yapılandırın ve API anahtarı alın.
  2. httpbin hizmetini API anahtarı olmadan çağırma:
    curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
    

    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/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. Anahtarı kullanarak bir API çağrısı yapın:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/headers \
    -H "HOST:httpbin.org" -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 hizmetine yönelik API trafiği artık Apigee tarafından yönetiliyor. Keşfedip deneyebileceğiniz bazı özellikler:

  • API ürününüzü API anahtarı edinme başlıklı makalede açıklandığı şekilde yapılandırdıysanız kota sınırı dakikada 5 istek olarak ayarlanmıştır. Kotayı tetiklemek için httpbin hizmetini birkaç kez daha aramayı deneyin. Kota tükendiğinde HTTP durum 403 hatası döndürülür.
  • Edge kullanıcı arayüzünde 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şturun ve kullanın.
  • Bağlamaları yönetmek, jeton oluşturmak ve kontrol etmek için CLI'yı kullanın. CLI ayrıntıları için Referans bölümüne bakın.