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 bağdaştırıcının nasıl kullanılacağı gösterilmektedir.

Ön koşullar

Başlamadan önce:

Genel Bakış

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

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 gelen ve hedef hizmetten giden API trafiğini yönetir ve uzak hizmetle iletişim kurar. Uzak Hizmet ayrıca API ürünü ve proxy bilgilerini almak için Apigee Edge Cloud ile iletişim kurar.

Apigee Edge'i sağlama

Bu adımda, Apigee Edge'e Envoy öğeleri için Apigee Bağdaştırıcısı sağlamak üzere Uzak Hizmet KSA'sını kullanacaksınız. Hazırlama komutu, Apigee Edge'e bir API proxy'si dağıtır ve Apigee'de bir sertifika oluşturur. Ayrıca, uzak hizmetin 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, temel hazırlama komut dosyasının parametreleri 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şunuzda 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'si sağlamak için aşağıdaki komutu yürütün:
    ./apigee-remote-service-cli provision --legacy --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üme sahip olmalıdı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 anahtar değerleri, Uzak Hizmet Proxy'sinden Apigee Edge'e yapılan istekleri doğrulamak için kullanılır.

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

Hizmet ikilisini, temel hazırlama komutu tarafından oluşturulan yapılandırma dosyasıyla 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. Üç resim varyantı arasından seçim yapabilirsiniz:

Çeşitlilik Resim
Google dağıtımsız gcr.io/distroless/base
Ubuntu google/apigee-envoy-adapter:v1.1.0-ubuntu
BoringCrypto ile Ubuntu google/apigee-envoy-adapter:v1.1.0-boring

Örneğin, bir birim ekleme aracılığıyla /config.yaml olarak kullanılabilen yerel config.yaml ile sıfırdan resmi çalıştırmak için şu komutu kullanın:

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

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

Örnek yapılandırma dosyaları oluşturmak için apigee-remote-service-cli samples create komutunu kullanın.

Bu örnekte, oluşturulan şu dosyalara ihtiyacınız vardır:

  • envoy-config.yaml: HTTP hizmeti için dağıtım yapılandırması.

Örnekleri oluşturmak için:

  1. $CLI_HOME dizinine gidin.
  2. Dosyaları oluşturmak için şu komutu yürütün:

    ./apigee-remote-service-cli samples create --template native -c ./config.yaml
    işaretini belirtin.

    Aşağıdaki dosyalar ./samples dizinine yazılır:

    ls samples
    envoy-config.yaml
    

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

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

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

  1. Envoy ikilisini 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 $CLI_HOME/samples/envoy-config.yaml

Kurulumu test etme

  1. httpbin hizmetini çağırın:
    curl -i http://localhost:8080/httpbin/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/httpbin/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
  2. API anahtarı edinme bölümünde açıklandığı şekilde bir API ürünü yapılandırın ve API anahtarı alın.
  3. Anahtarı kullanarak bir API çağrısı yapın:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/httpbin/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 giden API trafiği artık Apigee tarafından yönetilmektedir. Keşfedebileceğiniz ve deneyebilirsiniz bazı özellikler:

  • API ürününüzü API anahtarı edinme bölümünde 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. Analizin > 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'yi kullanın. CLI ayrıntıları için Referans bölümüne bakın.