Edge Microgateway için işlem ve yapılandırma referansı

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

Edge Microgateway v. 3.1.x

Bu konuda, Edge Microgateway'in nasıl yönetileceği ve yapılandırılacağı açıklanmaktadır.

İnternet bağlantınız varsa Edge Microgateway'i yeni sürüme geçirme

Bu bölümde, mevcut bir Edge Microgateway kurulumunun nasıl yeni sürüme geçirileceği açıklanmaktadır. İnternet bağlantısı olmadan çalışıyorsanız Edge Microgateway'i internet bağlantısı olmadan yükleyebilir miyim?

Apigee, mevcut yapılandırmanızı yeni sürümü güncelleyin.

  1. Edge'in son sürümüne yükseltmek için aşağıdaki npm komutunu yürütün Mikro ağ geçidi:
    npm upgrade edgemicro -g

    Edge Microgateway'in belirli bir sürümüne geçmek için oyununuzun sürümünü "sayı" değerini eklemeniz gerekir. Sürüm numarasını belirtmezseniz en son sürüm yüklenir. Örneğin, 3.1.0 sürümüne geçmek için, şu komutu kullanın:

    npm upgrade edgemicro@3.1.0 -g
  2. Sürüm numarasını kontrol edin. Örneğin, 3.1.0 sürümünü yüklediyseniz:
    edgemicro --version
    current nodejs version is v12.5.0
    current edgemicro version is 3.1.0
        
  3. Son olarak, edgemicro-auth proxy'sini en son sürümüne yükseltin:
    edgemicro upgradeauth -o $ORG -e $ENV -u $USERNAME

Yapılandırma değişiklikleri yapma

Bilmeniz gereken yapılandırma dosyaları şunlardır:

  • Varsayılan sistem yapılandırma dosyası
  • Yeni başlatılan Edge Microgateway örneği için varsayılan yapılandırma dosyası
  • Çalışan örnekler için dinamik yapılandırma dosyası

Bu bölümde söz konusu dosyalar ve bunları değiştirme hakkında bilmeniz gerekenler ele alınmaktadır.

Varsayılan sistem yapılandırması dosya

Edge Microgateway'i yüklediğinizde buraya varsayılan bir sistem yapılandırma dosyası yerleştirilir:

prefix/lib/node_modules/edgemicro/config/default.yaml

Burada prefix, npm öneki dizinidir. Bkz. Bu dizini bulamıyorsanız Edge Microgateway nerede yüklüdür?

Sistem yapılandırma dosyasını değiştirirseniz Edge'i yeniden başlatmanız, yeniden yapılandırmanız ve yeniden başlatmanız gerekir Mikro ağ geçidi:

edgemicro init
edgemicro configure [params]
edgemicro start [params]

Yeni başlatılan Edge Microgateway örnekleri için varsayılan yapılandırma dosyası

edgemicro init komutunu çalıştırdığınızda, sistem yapılandırma dosyası (açıklanan yukarıda) default.yaml, ~/.edgemicro dizinine yerleştirilir.

~/.edgemicro ürününde yapılandırma dosyasını değiştirirseniz yapılandırma dosyasını yeniden yapılandırıp yeniden başlatmanız gerekir Edge Mikro Ağ Geçidi:

edgemicro stop
edgemicro configure [params]
edgemicro start [params]

Dinamik çalışan örnekler için yapılandırma dosyası

edgemicro configure [params] çalıştırdığınızda dinamik bir yapılandırma dosyası ~/.edgemicro konumunda oluşturulur. Dosya buna göre adlandırılır kalıp: org-env-config.yaml; burada org ve env Ayrıca, Apigee Edge kuruluşunuzun ve ortamlarınızın adları. Yapılandırmayı oluşturmak için bu dosyayı ve ardından sıfır kapalı kalma süresiyle bunları yeniden yükleyin. Örneğin, bir eklenti ekler ve yapılandırırsanız aşağıda açıklandığı gibi, herhangi bir kesinti yaşamadan yapılandırmayı yeniden yükleyebilirsiniz.

Edge Microgateway çalışıyorsa (sıfır kapalı kalma süresi seçeneği):

  1. Edge Mikro Ağ Geçidi yapılandırmasını yeniden yükleyin:
    edgemicro reload -o $ORG -e $ENV -k $KEY -s $SECRET

    Burada:

    • $ORG, Edge kuruluş adınızdır (kuruluş olmalısınız (kuruluş olmalısınız) yöneticisi).
    • $ENV, kuruluşunuzdaki bir ortamdır (örneğin, "test" veya "prod").
    • $KEY, daha önce config komutu tarafından döndürülen anahtardır.
    • $SECRET, daha önce config komutu tarafından döndürülen anahtardır.

    Örneğin:

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \
      -s 05c14356e42ed1...4e34ab0cc824

Edge Microgateway durdurulduysa:

  1. Edge Microgateway'i yeniden başlatın:
    edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET

    Burada:

    • $ORG, Edge kuruluş adınızdır (kuruluş olmalısınız (kuruluş olmalısınız) yöneticisi).
    • $ENV, kuruluşunuzda bulunan bir ortamdır (örneğin, "test" veya "prod").
    • $KEY, daha önce config komutu tarafından döndürülen anahtardır.
    • $SECRET, daha önce config komutu tarafından döndürülen anahtardır.

    Örneğin:

    edgemicro start -o docs -e test -k 701e70ee718ce...b6181d000723 \
      -s 05c1435...e34ab0cc824

Aşağıda bir yapılandırma dosyası örneği verilmiştir. Yapılandırma dosyası ayarları hakkında ayrıntılar için Edge Microgateway yapılandırma referansı başlıklı makaleye bakın.

edge_config:
  bootstrap: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test
  jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey'
  managementUri: 'https://api.enterprise.apigee.com'
  vaultName: microgateway
  authUri: 'https://%s-%s.apigee.net/edgemicro-auth'
  baseUri: >-
    https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s
  bootstrapMessage: Please copy the following property to the edge micro agent config
  keySecretMessage: The following credentials are required to start edge micro
  products: 'https://docs-test.apigee.net/edgemicro-auth/products'
edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
headers:
  x-forwarded-for: true
  x-forwarded-host: true
  x-request-id: true
  x-response-time: true
  via: true
oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey'
analytics:
  uri: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test

Ortam değişkenlerini ayarlama

Edge kuruluşunuz için değer gerektiren komut satırı arayüzü komutları ve Edge Microgateway'i başlatmak için gereken anahtar ve sır bu ortam değişkenleri:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

Bu değişkenlerin ayarlanması isteğe bağlıdır. Bunları ayarlarsanız değerlerini belirtmeniz gerekmez Edge Microgateway'i yapılandırmak ve başlatmak için Komut Satırı Arayüzü'nü (KSA) kullandığınızda.

Edge Mikro Ağ Geçidi'nde SSL'yi Yapılandırma sunucu

Apigee Edge Microgateway'de TLS'yi yapılandırma hakkında bilgi edinmek için aşağıdaki videoları izleyin:

Video Açıklama
Tek Yönlü Kuzeye Giden TLS'yi Yapılandırma Apigee Edge Microgateway'de TLS'yi yapılandırma hakkında bilgi edinin. Bu videoda TLS'ye ve önemine genel bir bakış sağlanarak TLS'nin tanıtıldığı .
2 Yönlü Kuzeye Giden TLS'yi yapılandırma Bu, Apigee Edge Microgateway'de TLS'yi yapılandırmayla ilgili ikinci videodur. Bu videosunda kuzeye giden 2 yönlü TLS'nin nasıl yapılandırılacağı açıklanmaktadır.
Tek ve 2 yönlü Güneye giden TLS'yi yapılandırma Apigee Edge Microgateway'de TLS'yi yapılandırmayla ilgili bu üçüncü videoda güneye giden 1 ve 2 yönlü TLS'yi yapılandırma

Microgateway sunucusunu SSL kullanacak şekilde yapılandırabilirsiniz. Örneğin, SSL yapılandırıldığında, "https" kullanarak Edge Microgateway aracılığıyla API'leri çağırabilir protokolü şu şekildedir:

https://localhost:8000/myapi

Mikro ağ geçidi sunucusunda SSL'yi yapılandırmak için şu adımları izleyin:

  1. openssl yardımcı programını veya tercih ettiğiniz yöntemi kullanarak bir SSL sertifikası ve anahtarı oluşturun ya da edinin.
  2. Edge Microgateway yapılandırma dosyasına edgemicro:ssl özelliğini ekleyin. Eksiksiz bir aşağıdaki tabloya bakın. Örneğin:
    edgemicro:
      ssl:
       key: <absolute path to the SSL key file>
       cert: <absolute path to the SSL cert file>
       passphrase: admin123 #option added in v2.2.2
       rejectUnauthorized: true #option added in v2.2.2
       requestCert: true
  3. Edge Microgateway'i yeniden başlatın. Şu adreste belirtilen adımları uygulayın: Yapılandırmada değişiklik yapma varsayılan dosya veya çalışma zamanı yapılandırma dosyası olabilir.

Yapılandırma dosyasının SSL içeren edgemicro bölümü örneğini burada bulabilirsiniz. yapılandırıldı:

edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
  ssl:
    key: /MyHome/SSL/em-ssl-keys/server.key
    cert: /MyHome/SSL/em-ssl-keys/server.crt
    passphrase: admin123 #option added in v2.2.2
    rejectUnauthorized: true #option added in v2.2.2

Desteklenen tüm sunucu seçeneklerinin listesi aşağıda verilmiştir:

Option Açıklama
key ca.key dosyasının yolu (PEM biçiminde).
cert ca.cert dosyasının yolu (PEM biçiminde).
pfx Özel anahtar, sertifika ve CA sertifikalarını içeren pfx dosyasının yolu PFX biçiminde olur.
passphrase Özel anahtarın veya PFX'in parolasını içeren bir dize.
ca PEM biçiminde güvenilir sertifikaların listesini içeren bir dosyanın yolu.
ciphers Kullanılacak şifreleri ":" ile ayrılmış olarak açıklayan bir dize.
rejectUnauthorized True (doğru) ise sunucu sertifikası, sağlanan CA'lar listesine göre doğrulanır. Eğer doğrulama başarısız olursa hata döndürülür.
secureProtocol Kullanılacak SSL yöntemi. Örneğin, SSL'yi sürüm 3'e zorunlu kılmak için SSLv3_method.
servername SNI (Sunucu Adı Göstergesi) TLS uzantısının sunucu adı.
requestCert true (2 yönlü SSL için) tek yönlü SSL için yanlış

İstemci SSL/TLS seçeneklerini kullanma

Edge Microgateway'i, hedefe bağlanırken TLS veya SSL istemcisi olacak şekilde yapılandırabilirsiniz uç noktalar. Microgateway yapılandırma dosyasında, SSL/TLS'yi ayarlamak için hedefler öğesini kullanın. seçenekleri vardır.

Bu örnekte, tüm ana makinelere uygulanacak ayarlar gösterilmektedir:

edgemicro:
...
targets:
  ssl:
    client:
      key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
      cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
      passphrase: admin123
      rejectUnauthorized: true

Bu örnekte, ayarlar yalnızca belirtilen ana makineye uygulanır:

edgemicro:
...
targets:
  - host: 'myserver.example.com'
    ssl:
      client:
        key: /Users/myname/twowayssl/ssl/client.key
        cert: /Users/myname/twowayssl/ssl/ca.crt
        passphrase: admin123
        rejectUnauthorized: true

Aşağıda TLS için bir örnek verilmiştir:

edgemicro:
...
targets:
  - host: 'myserver.example.com'
    tls:
      client:
        pfx: /Users/myname/twowayssl/ssl/client.pfx
        passphrase: admin123
        rejectUnauthorized: true

Desteklenen tüm istemci seçeneklerinin listesi aşağıda verilmiştir:

Option Açıklama
pfx Özel anahtar, sertifika ve CA sertifikalarını içeren pfx dosyasının yolu PFX biçiminde olur.
key ca.key dosyasının yolu (PEM biçiminde).
passphrase Özel anahtarın veya PFX'in parolasını içeren bir dize.
cert ca.cert dosyasının yolu (PEM biçiminde).
ca PEM biçiminde güvenilir sertifikaların listesini içeren bir dosyanın yolu.
ciphers Kullanılacak şifreleri ":" ile ayrılmış olarak açıklayan bir dize.
rejectUnauthorized True (doğru) ise sunucu sertifikası, sağlanan CA'lar listesine göre doğrulanır. Eğer doğrulama başarısız olursa hata döndürülür.
secureProtocol Kullanılacak SSL yöntemi. Örneğin, SSL'yi sürüm 3'e zorunlu kılmak için SSLv3_method.
servername SNI (Sunucu Adı Göstergesi) TLS uzantısının sunucu adı.

Edgemicro kimlik doğrulama proxy'sini özelleştirme

Edge Microgateway, OAuth2 kimlik doğrulaması için varsayılan olarak Apigee Edge'de dağıtılan bir proxy'yi kullanır. Bu proxy, edgemicro configure öğesini ilk çalıştırdığınızda dağıtılır. Şunları değiştirebilirsiniz: bir JSON Web Jetonu'na özel talepler için destek eklemek üzere bu proxy'nin varsayılan yapılandırması (JWT), jeton geçerlilik süresini yapılandırın ve yenileme jetonları oluşturun. Ayrıntılar için GitHub'daki edgemicro-auth sayfasına göz atın.

Özel kimlik doğrulama hizmeti kullanma

Edge Microgateway, OAuth2 kimlik doğrulaması için varsayılan olarak Apigee Edge'de dağıtılan bir proxy'yi kullanır. Bu proxy, edgemicro configure öğesini ilk çalıştırdığınızda dağıtılır. Varsayılan olarak proxy'nin URL'si, Edge Microgateway yapılandırma dosyasında aşağıdaki gibi belirtilir:

authUri: https://myorg-myenv.apigee.net/edgemicro-auth

Kimlik doğrulama işlemini yürütmek için kendi özel hizmetinizi kullanmak istiyorsanız Yapılandırma dosyasında hizmetinize işaret edecek authUri değeri. Örneğin, üyeleri Kimlik doğrulamak için LDAP kullanan bir hizmet.

'nı inceleyin.

Günlük dosyalarını yönetme

Edge Microgateway, her istek ve yanıtla ilgili bilgileri günlüğe kaydeder. Günlük dosyaları, hata ayıklama ve sorun giderme bilgilerini inceleyin.

Günlük dosyalarının depolandığı yer

Varsayılan olarak, günlük dosyaları /var/tmp konumunda depolanır.

Varsayılan günlüğü değiştirme dosya dizini

Günlük dosyalarının depolandığı dizin, Edge Microgateway yapılandırmasında belirtilmiştir. dosyası olarak kaydedebilirsiniz. Ayrıca bkz. Yapılandırma oluşturma değişiklikler başlıklı makaleyi inceleyin.

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Farklı bir günlük dosyası dizini belirtmek için dir değerini değiştirin.

Günlükleri konsola gönder

Günlük kaydını, günlük bilgilerinin bir günlük dosyası olarak kaydetmelisiniz. to_console işaretini aşağıdaki gibi doğru değerine ayarlayın:

edgemicro:
  logging:
    to_console: true

Bu ayarda, günlükler standart çıkışa gönderilir. Şu anda günlükleri hem stdout.

Günlük kaydı düzeyini ayarlama

Şu günlük düzeylerini ayarlayabilirsiniz: bilgi, uyarı ve hatalarının nasıl düzeltileceğini öğrenin. Bilgi düzeyi önerilir. Tüm API isteklerini ve yanıtlarını günlüğe kaydeder, ve bu varsayılan değerdir.

Günlük aralıkları nasıl değiştirilir?

Bu aralıkları Edge Microgateway yapılandırma dosyasında yapılandırabilirsiniz. Yapılandırma değişiklikleri yapma başlıklı makaleyi de inceleyin.

Yapılandırılabilir özellikler şunlardır:

  • stats_log_interval: (varsayılan: 60) İstatistiklerin saniye cinsinden açık olduğu aralık kaydı, API günlük dosyasına yazılır.
  • rotate_interval: (varsayılan: 24) Günlük dosyalarının bulunduğu zaman aralığı, saat cinsinden döndürüldü. Örneğin:
edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

İyi günlük dosyası bakımı uygulamaları

Zaman içinde günlük dosyası verileri biriktikçe Apigee, uygulamalar:

Günlük dosyası adlandırma kuralı

Her Edge Microgateway örneği, üç tür günlük dosyası üretir:

  • api - Edge üzerinden gelen tüm istekleri ve yanıtları günlüğe kaydeder Mikro ağ geçidi. API sayaçları (istatistikler) ve hatalar da bu dosyaya kaydedilir.
  • err - Stderr'a gönderilen her şeyi günlüğe kaydeder.
  • out - stdout'a gönderilen her şeyi günlüğe kaydeder.

Adlandırma kuralı şöyledir:

edgemicro-<Host Name>-<Instance ID>-<Log Type>.log

Örneğin:

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log
edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log

Günlük dosyası içerikleri hakkında

Eklendiği sürüm: 2.3.3 sürümü

Varsayılan olarak günlük kaydı hizmeti; indirilen proxy'lerin, ürünlerin ve JSON'nin JSON'unu atlar. Web Jetonu (JWT). Bu nesnelerin çıktısını günlük dosyalarına almak isterseniz Edge Microgateway'i başlattığınızda DEBUG=*. Örneğin:

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

"api" içeriği günlük dosyası

"api" günlük dosyası, istek ve yanıt akışı hakkında ayrıntılı bilgiler içerir aracılığıyla şifre oluşturabilirsiniz. "api" günlük dosyaları şu şekilde adlandırılır:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Edge Mikro Ağ Geçidi'ne gönderilen her istek için "api" günlük dosya:

  • İstemciden gelen istek
  • Hedefe giden istek gönderildi
  • Hedeften gelen yanıt
  • İstemciye giden yanıt

Bu ayrı girişlerin her biri, günlüğün oluşturulmasına yardımcı olmak için daha küçük hale getirir. Aşağıda, dört etkinliğin her birini temsil eden dört örnek giriş verilmiştir. Günlükte dosyası bu şekilde görünür (satır numaraları yalnızca dokümanda referans amaçlıdır, ).

(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
(2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0
(3) 1436403888672 info tres s=200, d=7, i=0
(4) 1436403888676 info res s=200, d=11, i=0

Bunları tek tek inceleyelim:

1. İstemciden gelen istek örneği:

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651 - Unix tarih damgası
  • info: Bağlama göre değişir. Bilgi, uyarı veya hata olabilir. (günlük düzeyine göre değişir). İstatistik kaydı, uyarılar için uyarı veya hatası verir.
  • req - Etkinliği tanımlar. Bu durumda, gerekir.
  • m: İstekte kullanılan HTTP fiili.
  • u - URL'nin, temel yolu izleyen bölümü.
  • h - Edge Microgateway'in bulunduğu ana makine ve bağlantı noktası numarası dinlemektir.
  • r - İstemcinin istediği uzak ana makine ve bağlantı noktası kaynağıdır.
  • i - İstek kimliği. Dört etkinlik girişi de bu kimliği paylaşır. Her biri isteğe benzersiz bir istek kimliği atanır. Günlük kayıtlarını istek kimliğine göre ilişkilendirmek hedefin gecikmesiyle ilgili değerli bir analiz.
  • d - İsteğin tarafından alınmasından itibaren geçen süre (milisaniye cinsinden) Edge Mikro Ağ Geçidi. Yukarıdaki örnekte, hedefin 0 isteğine verdiği yanıt alınmıştır 7 milisaniye sonra (satır 3) yanıt gelir ve yanıt, 4 saniye daha milisaniye (4. satır). Başka bir deyişle, toplam istek gecikmesi 11 milisaniyeydi. Bu değer, hedefin 7 milisaniye ve Edge Microgateway tarafından 4 milisaniye kendisi.

2. Hedefe gönderilen giden istek örneği:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651 - Unix tarih damgası
  • info: Bağlama göre değişir. Bilgi, uyarı veya hata olabilir. (günlük düzeyine göre değişir). İstatistik kaydı, uyarılar için uyarı veya hatası verir.
  • treq - Etkinliği tanımlar. Bu durumda, hedef istek.
  • m: Hedef istekte kullanılan HTTP fiili.
  • u - URL'nin, temel yolu izleyen bölümü.
  • h - Arka uç hedefinin ana makine ve bağlantı noktası numarası.
  • i - Günlük girişinin kimliği. Dört etkinlik girişi de bunu paylaşacak. Kimlik.

3. Hedeften gelen yanıt örneği

1436403888672 info tres s=200, d=7, i=0

1436403888651 - Unix tarih damgası

  • info: Bağlama göre değişir. Bilgi, uyarı veya hata olabilir. (günlük düzeyine göre değişir). İstatistik kaydı, uyarılar için uyarı veya hatası verir.
  • tres - Etkinliği tanımlar. Bu durumda hedef yanıt.
  • s: HTTP yanıt durumu.
  • d - Milisaniye cinsinden süre. Google'ın API çağrısı için geçen süre yardımcı olur.
  • i - Günlük girişinin kimliği. Dört etkinlik girişi de bunu paylaşacak. Kimlik.

4. İstemciye giden yanıt örneği

1436403888676 info res s=200, d=11, i=0

1436403888651 - Unix tarih damgası

  • info: Bağlama göre değişir. Bilgi, uyarı veya hata olabilir. (günlük düzeyine göre değişir). İstatistik kaydı, uyarılar için uyarı veya hatası verir.
  • res - Etkinliği tanımlar. Bu durumda gerekir.
  • s: HTTP yanıt durumu.
  • d - Milisaniye cinsinden süre. Bu sayı, harcanan toplam süreyi gösterir hedef API'nin harcadığı süre ve Edge'in harcadığı süre de dahil olmak üzere API çağrısı tarafından Mikro ağ geçidinin kendisi.
  • i - Günlük girişinin kimliği. Dört etkinlik girişi de bunu paylaşacak. Kimlik.

Günlük dosyası programı

Günlük dosyaları, rotate_interval ile belirtilen aralıkta döndürülür yapılandırma özelliğini kullanın. Girişler aynı günlük dosyasını döndürme süresi sona erene kadar devam eder. Ancak Edge Microgateway, yeniden başlattığında yeni bir UID alır ve bu UID ile yeni bir günlük dosyaları grubu oluşturur. Şu kaynakları da inceleyin İyi bir günlük dosyası bakımı inceleyin.

Hata mesajları

Bazı günlük girişleri hata mesajları içerir. Hataların nerede ve neden oluştuğunu belirlemeye yardımcı olması için Edge Microgateway hatası referans.

Edge Mikro Ağ Geçidi yapılandırma referansı

Konum yapılandırma dosyası

Bu bölümde açıklanan yapılandırma özellikleri, Edge Mikro Ağ Geçidi içinde bulunur. yapılandırma dosyası. Ayrıca bkz. Yapılandırma oluşturma değişiklikler başlıklı makaleyi inceleyin.

Edge_config özellikleri

Bu ayarlar, Edge Microgateway örneği ile Apigee Edge.

  • bootstrap: (varsayılan: yok) Bir Edge'e yönlendiren bir URL Apigee Edge'de çalışan mikro ağ geçidine özel hizmet. Edge Microgateway, şu işlemleri yapmak için bu hizmeti kullanır: Apigee Edge ile iletişim kurma. Bu URL, ortak/özel anahtar çifti: edgemicro genkeys. Daha fazla bilgi için Kurulum ve Edge Microgateway'i yapılandırma hakkında daha fazla bilgi edinin.
  • jwt_public_key: (varsayılan: yok) Edge Mikro Ağ Geçidi'ne yönlendiren bir URL proxy'sini kullanabilirsiniz. Bu proxy, istemcilere imzalı erişim jetonları verme. Şu komutu çalıştırdığınızda bu URL döndürülür: proxy'yi dağıtın: edgemicro configuration. Daha fazla bilgi için Kurulum ve Edge Microgateway'i yapılandırma hakkında daha fazla bilgi edinin.
  • quotaUri: Bu yapılandırmayı ayarlayın Kotaları edgemicro-auth proxy'si üzerinden yönetmek istiyorsanız kuruluşunuza dağıtıldı. Bu özellik ayarlanmazsa kota uç noktası varsayılan olarak dahili Edge Microgateway uç noktasına ayarlanır.
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

Edgemicro özellikleri

Bu ayarlar Edge Mikro Ağ Geçidi işlemini yapılandırır.

  • bağlantı noktası: (varsayılan: 8000) Edge Mikro Ağ Geçidi'nin üzerinde bulunduğu bağlantı noktası numarası dinleme sürecidir.
  • max_connections: (varsayılan: -1) Bağlantının maksimum sayısını belirtir Edge Microgateway'in alabileceği eşzamanlı gelen bağlantılar. Bu numara aşıldığında, şu durum döndürülür:

    . res.statusCode = 429; // Too many requests
  • max_connections_hard: (varsayılan: -1) Maksimum eşzamanlı sayısı Edge Mikro Ağ Geçidi'nin bağlantıyı kapatmadan önce alabileceği istekler. Bu ayar amacı, hizmet reddi saldırılarını engellemektir. Bunun için genellikle max_connections.
  • günlük kaydı:
    • level: (varsayılan: hata)
      • info - Bir web sunucusu üzerinden gelen tüm istekleri ve yanıtları Edge Microgateway örneği.
      • uyarı: Yalnızca uyarı mesajlarını günlüğe kaydeder.
      • error - Yalnızca hata mesajlarını günlüğe kaydeder.
    • dir: (varsayılan: /var/tmp) Günlük dosyalarının bulunduğu dizin saklanıyor.
    • stats_log_interval: (varsayılan: 60) İstatistiklerin saniye cinsinden açık olduğu aralık kaydı, API günlük dosyasına yazılır.
    • rotate_interval: (varsayılan: 24) Günlük dosyalarının bulunduğu zaman aralığı, saat cinsinden döndürüldü.
  • Eklentiler: Eklentiler, Edge Microgateway'e işlevler ekler. Ayrıntılı bilgi hakkında bilgi edinmek için Özel eklentiler geliştirme başlıklı makaleye göz atın.
  • dir: ./gateway dizininden ./plugins dizini veya mutlak bir yol içerir.
  • sequence: Edge Microgateway'inize eklenecek eklenti modüllerinin listesi kullanır. Modüller burada belirtildikleri sırayla yürütülecektir.
  • debug: Edge Microgateway işlemine uzaktan hata ayıklama ekler.
    • bağlantı noktası: Dinlenecek bağlantı noktası numarası. Örneğin, IDE hata ayıklayıcınızı ayarlayın dinlemesine yardımcı olur.
    • bağımsız değişkenler: Hata ayıklama işleminin bağımsız değişkenleridir. Örneğin: args --nolazy
  • config_change_poll_interval: (varsayılan: 600 saniye) Edge Microgateway Düzenli olarak yeni bir yapılandırma yükler ve herhangi bir değişiklik olursa yeniden yükleme gerçekleştirir. Anket olarak yapılan değişiklikleri (ör. ürünlerde yapılan değişiklikler, mikro ağ geçidi duyarlı proxy'ler) alır. yerel yapılandırma dosyasında yapılan değişikliklerin yanı sıra.
  • disable_config_poll_interval: (varsayılan: false) Şu değere ayarlanır: Otomatik değişiklik yoklamayı devre dışı bırakmak için true değerini belirleyin.
  • request_timeout: Hedef istekler için bir zaman aşımı ayarlar. Zaman aşımını saniye. Zaman aşımı oluşursa Edge Microgateway, 504 durum koduyla yanıt verir. (Eklendi v2.4.x)
  • keep_alive_timeout: Bu özellik, Edge Mikro Ağ Geçidi'ni ayarlamanıza olanak tanır. zaman aşımına uğrat (milisaniye cinsinden). (Varsayılan: 5 saniye) (3.0.6 sürümü eklendi)
  • headers_timeout: Bu özellik, süreyi (milisaniye cinsinden) sınırlar. HTTP ayrıştırıcısı, tamamlamış olması gerekir.

    Örneğin:

    edgemicro:
    keep_alive_timeout: 6000
    headers_timeout: 12000

    Parametre, dahili olarak Node.js Server.headersTimeout özelliğini gönderin. (Varsayılan: Şundan 5 saniye fazla: edgemicro.keep_alive_timeout ile ayarlanan saat. Bu varsayılan değer ayarı yük dengeleyicilerin veya proxy'lerin bağlantıyı hatalı bir şekilde bırakmasını önler.) (3.1.1 sürümü eklendi)

üstbilgi özellikleri

Bu ayarlar, belirli HTTP üstbilgilerinin nasıl işleneceğini yapılandırır.

  • x-forwarded-for: (varsayılan: true) Engellemeyi önlemek için false değerine ayarlayın x-forwarded-for üstbilgileri. x-forwarded-for üstbilgisi değeri, Edge Analytics'teki client-ip değeri olarak ayarlanır.
  • x-forwarded-host: (varsayılan: true) Engellemeyi önlemek için yanlış değerine ayarlayın x-forwarded-host üstbilgileri, hedefe iletilir.
  • x-request-id: (varsayılan: true) Engellemeyi önlemek için false (yanlış) değerine ayarlayın x-request-id üstbilgilerini içermelidir.
  • x-response-time: (varsayılan: true) Engellemeyi önlemek için false (yanlış) değerine ayarlayın x-response-time üstbilgilerini kullanabilirsiniz.
  • via: (default: true) Üstbilgilerin kullanılmasını önlemek için false (yanlış) değerine ayarlayın hedefe geçilir.

oauth özellikleri

Bu ayarlar, istemci kimlik doğrulamasının Edge Microgateway tarafından nasıl zorunlu kılınacağını yapılandırır.

  • allowNoAuthorization: (varsayılan: false) True (doğru) değerine ayarlanırsa API çağrıları Edge Mikro Ağ Geçidi'nden herhangi bir Yetkilendirme başlığı olmadan geçmesine izin verilmiştir. Bunu şuna ayarla: false (yanlış) değerini alır.
  • allowInvalidAuthorization: (varsayılan: false) True (doğru) değerine ayarlanırsa API çağrıları Yetkilendirme başlığında iletilen jetonun geçersiz veya süresi dolmuşsa geçirmesine izin verilir. Bunu ayarla geçerli jetonları zorunlu kılmak için false (yanlış) değerine ayarlayın (varsayılan).
  • auth-header: (varsayılan: Yetkilendirme: Bearer) Aşağıdaki işlemler için kullanılan başlık erişim jetonunu Edge Mikro Ağ Geçidi'ne gönderin. Aşağıdaki durumlarda varsayılan ayarı değiştirmek isteyebilirsiniz: hedefin, Yetkilendirme başlığını başka bir amaçla kullanması gerekir.
  • api-key-header: (varsayılan: x-api-key) Başlığın veya sorgunun adı API anahtarının Edge Microgateway'e iletilmesi için kullanılan parametredir. Ayrıca bkz. API anahtarı.
  • keep-authorization-header: (default: false) Doğru değerine ayarlanırsa Yetkilendirme başlığı istekte gönderilen istek hedefe iletilir (korunur).
  • allowOAuthOnly -- True (doğru) değerine ayarlanırsa her API'nin bir Yetkilendirme taşıması gerekir bir hamiline ait erişim jetonu bulunur. Yalnızca OAuth güvenlik modeline ( geriye dönük uyumluluğu koruma). (2.4.x eklendi)
  • allowAPIKeyOnly -- True (doğru) değerine ayarlanırsa her API'nin bir API Anahtarı'na sahip x-api-key üstbilgisi (veya özel bir konum). yalnızca API anahtarı güvenlik modeli (geriye dönük uyumluluğu korurken) (2.4.x eklendi)
  • gracePeriod -- Bu parametre, kısa süreli bir hatadan kaynaklanan hataları önlemeye yardımcı olur sistem saatiniz ile Öncesi Değil (nbf) veya Verildiği Tarih (iat) saatleri arasındaki tutarsızlıklar JWT yetkilendirme jetonunda belirtilir. Bu parametreyi, izin verilecek saniye sayısına ayarlayın göz önünde bulundurmalısınız. (2.5.7'ye Eklendi)

Eklentiye özel özellikler

Her bir eklentiye ilişkin yapılandırılabilir özelliklerle ilgili ayrıntılar için Eklentileri kullanma bölümüne bakın.

Proxy'leri filtreleme

Bir Edge Mikro Ağ Geçidi örneğinin hangi mikro ağ geçidine duyarlı proxy'leri işleyeceğini filtreleyebilirsiniz. Edge Microgateway başladığında, Search Console'daki tüm mikro ağ geçidine duyarlı proxy'leri ön plana çıkarmanıza yardımcı olabilir. Kullanılacak proxy'leri sınırlandırmak için izin verdiği anlamına gelir. Örneğin, bu yapılandırma, proxy 360'taki üç olarak işlenecek: edgemicro_proxy-1, edgemicro_proxy-2, ve edgemicro_proxy-3:

edgemicro:
  proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

Ürünleri filtreleme

Edge Microgateway tarafından sunulan API ürünlerinin sayısını sınırlamak için indirme ve işlem aşamalarıdır. İndirilen ürünleri filtrelemek için productnamefilter ekleyin Edge Mikro Ağ Geçidi *.config.yaml içinde listelenen /products API'sine sorgu parametresi dosyası olarak kaydedebilirsiniz. Örneğin:

edge_config:
  bootstrap: >-
    https://edgemicroservices.apigee.net/edgemicro/bootstrap/organization/willwitman/environment/test
  jwt_public_key: 'https://myorg-test.apigee.net/edgemicro-auth/publicKey'
  managementUri: 'https://api.enterprise.apigee.com'
  vaultName: microgateway
  authUri: 'https://%s-%s.apigee.net/edgemicro-auth'
  baseUri: >-
    https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s
  bootstrapMessage: Please copy the following property to the edge micro agent config
  keySecretMessage: The following credentials are required to start edge micro
  products: 'https://myorg-test.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24'

Sorgu parametresi değerinin normal ifade biçiminde belirtilmesi ve URL kodlamalı olmalıdır. Örneğin, ^[Ee]dgemicro.*$ normal ifadesi aşağıdaki gibi adları yakalar: "edgemicro-test-1" , "edgemicro_demo" ve "Edgemicro_Yeni_Demo". Şu işlemler için uygun olan, URL kodlamalı değer: sorgu parametresinde kullanılan değer: %5E%5BEe%5Ddgemicro.%2A%24.

Aşağıdaki hata ayıklama çıktısı yalnızca filtrelenmiş ürünlerin indirildiğini göstermektedir:

...
2020-05-27T03:13:50.087Z [76060] [microgateway-config network] products download from https://gsc-demo-prod.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24 returned 200 OK
...
....
....
{
   "apiProduct":[
      {
         "apiResources":[

         ],
         "approvalType":"auto",
         "attributes":[
            {
               "name":"access",
               "value":"public"
            }
         ],
         "createdAt":1590549037549,
         "createdBy":"k***@g********m",
         "displayName":"test upper case in name",
         "environments":[
            "prod",
            "test"
         ],
         "lastModifiedAt":1590549037549,
         "lastModifiedBy":"k***@g********m",
         "name":"Edgemicro_New_Demo",
         "proxies":[
            "catchall"
         ],
         "quota":"null",
         "quotaInterval":"null",
         "quotaTimeUnit":"null",
         "scopes":[

         ]
      },
      {
         "apiResources":[

         ],
         "approvalType":"auto",
         "attributes":[
            {
               "name":"access",
               "value":"public"
            }
         ],
         "createdAt":1590548328998,
         "createdBy":"k***@g********m",
         "displayName":"edgemicro test 1",
         "environments":[
            "prod",
            "test"
         ],
         "lastModifiedAt":1590548328998,
         "lastModifiedBy":"k***@g********m",
         "name":"edgemicro-test-1",
         "proxies":[
            "Lets-Encrypt-Validation-DoNotDelete"
         ],
         "quota":"null",
         "quotaInterval":"null",
         "quotaTimeUnit":"null",
         "scopes":[

         ]
      },
      {
         "apiResources":[
            "/",
            "/**"
         ],
         "approvalType":"auto",
         "attributes":[
            {
               "name":"access",
               "value":"public"
            }
         ],
         "createdAt":1558182193472,
         "createdBy":"m*********@g********m",
         "displayName":"Edge microgateway demo product",
         "environments":[
            "prod",
            "test"
         ],
         "lastModifiedAt":1569077897465,
         "lastModifiedBy":"m*********@g********m",
         "name":"edgemicro_demo",
         "proxies":[
            "edgemicro-auth",
            "edgemicro_hello"
         ],
         "quota":"600",
         "quotaInterval":"1",
         "quotaTimeUnit":"minute",
         "scopes":[

         ]
      }
   ]
}

Analiz aktarma sıklığını yapılandırma

Edge Microgateway'in veri gönderme sıklığını kontrol etmek için bu yapılandırma parametrelerini kullanın analiz verilerini Apigee'ye aktarır:

  • bufferSize (İsteğe bağlı): arabellekte tutulması gereken süre bulunur. Varsayılan: 10.000
  • batchSize (İsteğe bağlı): Bir analiz kaydı grubunun maksimum boyutu Apigee'ye gönderildi. Varsayılan: 500
  • flushInterval (İsteğe bağlı): Her yıkama arasındaki milisaniye sayısı Apigee'ye gönderilen bir grup analiz kaydı. Varsayılan: 5.000

Örneğin:

analytics:
  bufferSize: 15000
  batchSize: 1000
  flushInterval: 6000

Analiz verilerini maskeleme

Aşağıdaki yapılandırma, istek yolu bilgilerinin Edge'de gösterilmesini engelliyor Analytics'ten ulaşabilirsiniz. İstek URI'sini maskelemek ve/veya istek yolunu sunar. URI'nın, isteğin ana makine adından ve yol bölümlerinden oluştuğunu unutmayın.

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

Edge Analytics'te API çağrılarını ayırma

Analytics eklentisini, belirli bir API yolunu ayırmak için yapılandırarak Edge Analytics kontrol panellerinde ayrı bir proxy kullanılır. Örneğin, şunları yapabilirsiniz: gerçek API proxy çağrılarıyla karıştırmamak için kontrol panelindeki durum denetimi API'sini ayırın. Analytics kontrol panelinde, ayrılmış proxy'ler şu adlandırma kalıbını kullanır:

edgemicro_proxyname-health

Aşağıdaki resimde, Analytics kontrol panelindeki ayrılmış iki proxy gösterilmektedir: edgemicro_hello-health ve edgemicro_mock-health:

Bunları kullan parametrelerini (Analytics kontrol panelindeki göreli ve mutlak yolları ayrı proxy'ler olarak ayırmak için) aşağıdaki parametreleri kullanabilirsiniz:

  • relativePath (İsteğe bağlı): Ayırtılacak göreli yolu Analytics kontrol paneli. Örneğin, /healthcheck belirtirseniz yolu içeren tüm API çağrıları /healthcheck, kontrol panelinde edgemicro_proxyname-health olarak görünür. Bu işaretin proxy temel yolunu yok saydığını unutmayın. Basepath dahil olmak üzere tam yola göre ayırmak için proxyPath işaretini kullanın.
  • proxyPath (İsteğe bağlı): Proxy dahil olmak üzere tam API proxy yolunu belirtir Basepath'ini kullanabilirsiniz. Örneğin, /mocktarget/healthcheck belirtirseniz, burada /mocktarget proxy temel yolu ise /mocktarget/healthcheck yoluna sahip tüm API çağrıları kontrol panelinde edgemicro_proxyname-health olarak görünür.

Örneğin, aşağıdaki yapılandırmada /healthcheck içeren herhangi bir API yolu Analytics eklentisi tarafından ayrılacaktır. Bu, /foo/healthcheck ve /foo/bar/healthcheck anlamına gelir Analytics kontrol panelinde edgemicro_proxyname-health adında ayrı bir proxy olarak ayrılır.

analytics:
  uri: >-
    https://xx/edgemicro/ax/org/docs/environment/test
  bufferSize: 100
  batchSize: 50
  flushInterval: 500
  relativePath: /healthcheck

Aşağıdaki yapılandırmada, /mocktarget/healthcheck proxy yoluna sahip tüm API'ler öğesi, edgemicro_proxyname-health ve analitik kontrol paneline gidin.

analytics:
  uri: >-
    https://xx/edgemicro/ax/org/docs/environment/test
  bufferSize: 100
  batchSize: 50
  flushInterval: 500
  proxyPath: /mocktarget/healthcheck

Edge Mikro Ağ Geçidi'ni şirket güvenlik duvarı

Apigee Edge ile iletişim için HTTP proxy kullanma

3.1.2 sürümünde eklendi.

Edge Microgateway ve Apigee Edge arasında iletişim için HTTP proxy'si kullanmak için takip etmek için:

  1. Ortam değişkenlerini ayarlama HTTP_PROXY, HTTPS_PROXY ve NO_PROXY. Bu değişkenleri, iletişimde kullanmak istediğiniz her bir HTTP proxy için ana makineleri kontrol eder Apigee Edge ile iletişim kuramaz. Örneğin:
    export HTTP_PROXY='http://localhost:3786'
    export HTTPS_PROXY='https://localhost:3786'
    export NO_PROXY='localhost,localhost:8080'

    NO_PROXY etiketinin, Edge Microgateway tarafından sunulan alan adlarının virgülle ayrılmış bir listesi olabileceğini unutmayın yönlendirmemelidir.

    Bu değişkenler hakkında daha fazla bilgi için https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables adresine bakın

  2. Edge Microgateway'i yeniden başlatın.

Hedef iletişim için HTTP proxy kullan

3.1.2 sürümünde eklendi.

Edge Microgateway ile arka uç hedefleri arasında iletişim için HTTP proxy kullanmak için şunları yapın:

  1. Mikro ağ geçidi yapılandırma dosyasına aşağıdaki yapılandırmayı ekleyin:
    edgemicro:
      proxy:
        tunnel: true | false
        url: proxy_url
        bypass: target_host # target hosts to bypass the proxy.
        enabled: true | false

    Burada:

    • tunnel: (İsteğe bağlı) Doğru olduğunda Edge Microgateway, HTTP tünel protokolü için HTTP BAĞLANTI yöntemini kullanır tek bir TCP bağlantısı üzerinden istek gönderebilir. (Aynı durum, sahip olunan aşağıda belirtilenler, TLS'nin etkin olduğu durumlarda) Varsayılan: false
    • url: HTTP proxy URL'si.
    • bypass: (İsteğe bağlı) Aşağıdaki koşulları karşılayan bir veya daha fazla virgülle ayrılmış hedef ana makine URL'sini HTTP proxy'yi atlamalıdır. Bu özellik ayarlanmadıysa NO_PROXY işlevini kullanın. ortam değişkenini kullanarak atlanacak hedef URL'leri belirtin.
    • etkin: Doğru ve proxy.url ayarlanırsa HTTP proxy için proxy.url değerini kullanın. Doğru ve proxy.url ayarlanmazsa HTTP proxy'de belirtilen proxy'leri kullanın (bkz. HTTP_PROXY ve HTTPS_PROXY ortam değişkenleri) Apigee Edge ile iletişim için HTTP proxy kullanma.

    Örneğin:

    edgemicro:
      proxy:
        tunnel: true
        url: 'http://localhost:3786'
        bypass: 'localhost','localhost:8080' # target hosts to bypass the proxy.
        enabled: true

  2. Edge Microgateway'i yeniden başlatın.

Microgateway ile uyumlu cihazlarda joker karakterler kullanma proxy'ler

Bir veya daha fazla "*" kullanabilirsiniz bir edgemicro_* (Mikro ağ geçidine duyarlı) proxy'si. Örneğin, /team/*/members, müşterilerin https://[host]/team/blue/members ve Yeni API proxy'leri oluşturmanıza gerek kalmadan https://[host]/team/green/members adresini kullanabilirsiniz. ve yeni ekipleri desteklemek konusunda size yardımcı olabilirler. /**/ desteklenmediğini unutmayın.

Önemli: Apigee, "*" joker karakteri kullanılmasını DESTEKLEMEZ olarak bir temel yolun ilk öğesi. Örneğin, şu DESTEKLENMEZ: /*/ araması.

JWT anahtarlarını döndürme

İlk kez bir JWT oluşturduktan sonra belirli bir süre içinde, Edge ile şifrelenmiş KVM'de depolanan ortak/özel anahtar çifti. Bu yeni anahtar oluşturma süreci çiftine anahtar rotasyonu denir.

Edge Microgateway, JWT'yi nasıl kullanır?

JSON Web Token (JWT), RFC7519'da açıklanan bir jeton standardıdır. JWT, bir dizi hak talebini imzalamanın bir yolunu sunar. JWT alıcısı tarafından güvenilir bir şekilde doğrulanabilir.

Edge Microgateway, OAuth güvenliği için taşıyıcı jeton olarak JWT'leri kullanır. Oluşturduğunuz Edge Microgateway için OAuth jetonu alırsanız bir JWT geri alırsınız. Daha sonra JWT'yi API çağrılarının yetkilendirme üstbilgisi. Örneğin:

curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"

Yeni bir JWT oluşturuluyor

edgemicro token komutunu kullanarak Edge Mikro Ağ Geçidi için bir JWT oluşturabilirsiniz veya API'dir. Örneğin:

edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy

Bu komut Apigee Edge'in daha sonra API'yi doğrulamak için kullanılabilecek bir JWT oluşturmasını ister çağrısının en iyi yolu. -i ve -s parametreleri, bir geliştirici uygulamasındaki tüketici kimliği ve gizli anahtar değerleridir dikkatinizi çekeriz.

Dilerseniz management API'yi kullanarak bir JWT oluşturabilirsiniz:

curl -i -X POST "http://$ORG-$ENV.apigee.net/edgemicro-auth/token" \
  -H "Content-Type: application/json" \
  -d '{
    "$CLIENT_ID": "your consumer key",
    "$CLIENT_SECRET": "your consumer secret",
    "grant_type": "client_credentials"
  }'

Burada:

  • $ORG, Edge kuruluş adınızdır (kuruluş yöneticisi olmanız gerekir).
  • $ENV, kuruluşunuzda bulunan bir ortamdır (ör. "test" veya "prod").
  • $CLIENT_ID, daha önce oluşturduğunuz geliştirici uygulamasındaki tüketici kimliğidir.
  • $CLIENT_SECRET, oluşturduğunuz Geliştirici Uygulamasındaki Tüketici Sırrıdır öğrendi.

Anahtar rotasyonu nedir?

İlk kez bir JWT oluşturduktan sonra belirli bir süre içinde, Edge ile şifrelenmiş KVM'de depolanan ortak/özel anahtar çifti. Bu yeni anahtar oluşturma süreci çiftine anahtar rotasyonu denir. Anahtarları döndürdüğünüzde yeni bir özel/ortak anahtar çifti oluşturulur. "mikro ağ geçidinde" depolanır Apigee Edge kuruluşunuzda/ortamınızda KVM'ye gidin. Ayrıca, eski ortak anahtar, orijinal anahtar kimliği değeriyle birlikte saklanır.

Edge, JWT oluşturmak için şifrelenmiş KVM'de depolanan bilgileri kullanır. CEVAP microgateway adlı KVM oluşturuldu ve ilk kurulum (yapılandırılmış) sırasında anahtarlarla dolduruldu Edge Mikro Ağ Geçidi. KVM'deki anahtarlar, JWT'yi imzalamak ve şifrelemek için kullanılır.

KVM anahtarları şunları içerir:

  • private_key: Oturum açmak için kullanılan en yeni (en son oluşturulan) RSA özel anahtarı JWT'ler.

  • public_key: JWT'leri doğrulamak için kullanılan en son (en son oluşturulan) sertifika private_key ile imzalanır.

  • private_key_kid - En yeni (en son oluşturulan) özel anahtar kimliği. Bu anahtar kimliği private_key değeriyle ilişkilendirilir ve anahtar rotasyonunu desteklemek için kullanılır.

  • public_key1_kid - En son (en son oluşturulan) ortak anahtar kimliği. Bu anahtar ortak_anahtar1 değeriyle ilişkilendirilir ve anahtar rotasyonunu desteklemek için kullanılır. Bu değer özel anahtar alt öğesi ile aynıdır.

  • public_key1 - En son (en son oluşturulan) ortak anahtar.

Anahtar rotasyonu yaptığınızda, haritadaki mevcut anahtar değerleri değiştirilir ve yeni anahtar/değer çiftleri eski ortak anahtarları korumak için anahtarlar eklenir. Örneğin:

  • public_key2_kid - Eski ortak anahtar kimliği. Bu anahtar ortak_anahtar2 değerine ayarlanır ve anahtar rotasyonunu desteklemek için kullanılır.

  • public_key2 - Eski ortak anahtar.

Doğrulama için sunulan JWT'ler yeni ortak anahtar kullanılarak doğrulanır. Eğer Doğrulama başarısız olursa, süresi dolana kadar (30 dakika sonra) eski ortak anahtar kullanılır. İçinde bu şekilde “döndürmenizi” anahtarlarını API trafiğini hemen kesintiye uğratmadan değiştirebilirsiniz.

Anahtar rotasyonu nasıl yapılır?

Bu bölümde, anahtar rotasyonunun nasıl gerçekleştirileceği açıklanmaktadır.

Edge Microgateway örneğinizi 2.5.2 sürümünden önce yapılandırdıysanız

Edge Microgateway örneğinizi 2.5.2 sürümünden önce yapılandırdıysanız KVM'yi ve kimlik doğrulama politikasını yükseltmek için aşağıdaki iki komutu kullanın:

upgradekvm -o $ORG -e $ENV -u $USERNAME

Bu komut hakkında daha fazla bilgi edinmek için Yeni sürüme geçme KVM'ye gidin.

Sonraki komut,edgemicro-oauth Apigee kuruluşunuz ile ilişkilendirebilirsiniz. Bu proxy, şunun için gereken hizmetleri sağlar: jeton oluşturacaktır.

upgradeauth -o $ORG -e $ENV -u $USERNAME

Bu komut hakkında daha fazla bilgi için bkz. uç mikro kimlik doğrulama proxy'si ekleyebilirsiniz.

Tuşları döndürme

Aşağıdaki satırı ~/.edgemicro/org-env-config.yaml dosyanıza ekleyin, mikro ağ geçidini kullanmak üzere yapılandırdığınız kuruluşu ve ortamı belirtin:

jwk_public_keys: 'https://org-env.apigee.net/edgemicro-auth/jwkPublicKeys'

Anahtarları döndürmek için anahtar döndürme komutunu çalıştırın. (Bu komut hakkında daha fazla bilgi için Döndürülen anahtarlar.)

edgemicro rotatekey -o $ORG -e $ENV -u $USERNAME -k $KID_VALUE

Örneğin:

edgemicro rotatekey -o jdoe -e test -u jdoe@google.com -k 2
current nodejs version is v12.5.0
current edgemicro version is 3.1.0
password:
Checking if private key exists in the KVM...
Checking for certificate...
Found Certificate
Generating New key/cert pair...
Extract new public key
Key Rotation successfully completed!

-k parametresi bir Anahtar Kimliği (çocuk) belirtir. Bu kimlik, belirli bir anahtarı eşleştirmek için kullanılır. Edge Microgateway, anahtar döndürme sırasında bir anahtar grubu arasından seçim yapmak için bu değeri kullanır. Daha fazla için, bkz. Bölüm 4.5 JSON Web Anahtarı spesifikasyonu.

Tuş döndürüldükten sonra Edge, Edge Microgateway'e birden fazla anahtar döndürür. Not: Aşağıdaki örnekte, her anahtarın benzersiz bir "çocuk" (Anahtar Kimliği) değerini girin. Mikro ağ geçidi daha sonra bu anahtarları dahil edilir. Jeton doğrulaması başarısız olursa mikro ağ geçidi anahtar kümesinde daha eski bir anahtar olup olmadığına bakın ve bu anahtarı dener. Etiketin biçimi döndürülen anahtarlar ise JSON Web Anahtarı'dır (JWK). RFC 7517'de bu biçim hakkında bilgi edinebilirsiniz.

{
  "keys": [
    {
      "kty": "RSA",
      "n": "nSl7R_0wKLiWi6cO3n8aOJwYGBtinq723Jgg8i7KKWTSTYoszOjgGsJf_MX4JEW1YCScwpE5o4o8ccQN09iHVTlIhk8CNiMZNPipClmRVjaL_8IWvMQp1iN66qy4ldWXzXnHfivUZZogCkBNqCz7VSC5rw2Jf57pdViULVvVDGwTgf46sYveW_6h8CAGaD0KLd3vZffxIkoJubh0yMy0mQP3aDOeIGf_akeZeZ6GzF7ltbKGd954iNTiKmdm8IKhz6Y3gLpC9iwQ-kex_j0CnO_daHl1coYxUSCIdv4ziWIeM3dmjQ5_2dEvUDIGG6_Az9hTpNgPE5J1tvrOHAmunQ",
      "e": "AQAB",
      "kid": "2"
    },
    {
      "kty": "RSA",
      "n": "8BKwzx34BMUcHwTuQtmp8LFRCMxbkKg_zsWD6eOMIUTAsORexTGJsTy7z-4aH0wJ3fT-3luAAUPLBQwGcuHo0P1JnbtPrpuYjaJKSZOeIMOnlryJCspmv-1xG4qAqQ9XaZ9C97oecuj7MMoNwuaZno5MvsY-oi5B_gqED3vIHUjaWCErd4reONyFSWn047dvpE6mwRhZbcOTkAHT8ZyKkHISzopkFg8CD-Mij12unxA3ldcTV7yaviXgxd3eFSD1_Z4L7ZRsDUukCJkJ-8qY2-GWjewzoxl-mAW9D1tLK6qAdc89yFem3JHRW6L1le3YK37-bs6b2a_AqJKsKm5bWw",
      "e": "AQAB",
      "kid": "1"
    }
  ]
}

İndirilen proxy'leri filtreleme

Edge Mikro Ağ Geçidi, varsayılan olarak Edge kuruluşunuzdaki tüm proxy'leri indirir "edgemicro_" adlandırma önekiyle başlayan reklamlar için de kullanılır. Proxy indirmek için bu varsayılan ayarı değiştirebilirsiniz izin verir.

  1. Edge Micro yapılandırma dosyanızı açın: ~/.edgemicro/org-env-config.yaml
  2. Edge_config altına proxyPattern öğesini ekleyin. Örneğin, aşağıdaki kalıp Edgemicro_foo, Edgemicro_Fast ve Edgemicro_first gibi proxy'ler indirin.
    edge_config:proxyPattern: edgemicro_f*

API proxy'leri olmadan ürün belirtme

Apigee Edge'de API proxy'si içermeyen bir API ürünü oluşturabilirsiniz. Bu ürün yapılandırması, söz konusu ürünle ilişkilendirilmiş bir API anahtarının proxy ekleyebilirsiniz. Edge Microgateway, 2.5.4 sürümünden itibaren bu ürünü desteklemektedir. yapılandırma.

Hata ayıklama ve sorun giderme

Hata ayıklayıcıya bağlanma

Edge Microgateway'i node-inspector gibi bir hata ayıklayıcıyla çalıştırabilirsiniz. Bu, özellikle sorun giderme ve özel eklentilerde hata ayıklama.

  1. Edge Microgateway'i hata ayıklama modunda yeniden başlatın. Bunu yapmak için, DEBUG=* öğesini şuraya ekleyin: start komutunun başlangıcı:
    DEBUG=* edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET

    Hata ayıklama çıktısını bir dosyaya yönlendirmek için şu komutu kullanabilirsiniz:

    export DEBUG=* nohup edgemicro start \
    -o $ORG -e $ENV -k $KEY -s $SECRET 2>&1 | tee /tmp/file.log

  2. Hata ayıklayıcınızı başlatın ve hata ayıklama işlemi için bağlantı noktası numarasını dinleyecek şekilde ayarlayın.
  3. Artık Edge Mikro Ağ Geçidi kodunda gezinebilir, ayrılma noktaları ayarlayabilir, izleme ifadelerini vb.

Hata ayıklama moduyla ilgili standart Node.js işaretlerini belirtebilirsiniz. Örneğin, --nolazy, eşzamansız kodda hata ayıklama konusunda yardımcı olur.

Günlük dosyaları kontrol ediliyor

Sorun yaşıyorsanız yürütme ayrıntıları ve hata bilgileri için günlük dosyalarını incelediğinizden emin olun. ekleyebilirsiniz. Ayrıntılar için Günlük dosyalarını yönetme başlıklı makaleye bakın.

API anahtarı güvenliğini kullanma

API anahtarları, Edge'e istek gönderen istemcilerin kimliğini doğrulamak için basit bir mekanizma sağlar Mikro ağ geçidi. Tüketici Anahtarı (İstemci Kimliği olarak da adlandırılır) değerini kopyalayarak API anahtarı edinebilirsiniz. Edge Microgateway kimlik doğrulama proxy'sini içeren bir Apigee Edge ürününden indirin.

Anahtarları önbelleğe alma

API anahtarları, önbelleğe alınan hamiline ait jetonlarla değiştirilir. Önbelleğe almayı Edge'e gelen isteklerde Cache-Control: no-cache üstbilgisi Mikro ağ geçidi.

Bir API anahtarını kullanma

API anahtarını bir API isteğindeki sorgu parametresi olarak veya başlık içinde aktarabilirsiniz. Varsayılan olarak hem başlık hem de sorgu parametresi adı x-api-key şeklindedir.

Sorgu parametresi örneği:

curl http://localhost:8000/foobar?x-api-key=JG616Gjz7xs4t0dvpvVsGdI49G34xGsz

Başlık örneği:

curl http://localhost:8000/foobar -H "x-api-key:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"

API anahtarı adını yapılandırma

Varsayılan olarak x-api-key, hem API anahtarı başlığı hem de sorgu parametresi için kullanılan addır. Bu varsayılan ayarı, Yapılandırma değişiklikleri yapma başlıklı makalede açıklandığı şekilde yapılandırma dosyasında değiştirebilirsiniz. Örneğin, apiKey'e bir ad verin:

oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  api-key-header: apiKey

Bu örnekte, hem sorgu parametresi hem de başlık adı apiKey olarak değiştirilmiştir. İlgili içeriği oluşturmak için kullanılan x-api-key adı artık iki durumda da çalışmayacak. Şu kaynakları da inceleyin Yapılandırma değişiklikleri yapma.

Örneğin:

curl http://localhost:8000/foobar -H "apiKey:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"

Proxy istekleriyle API anahtarları kullanma hakkında daha fazla bilgi için bkz. Secure Edge mikro ağ geçidi.

Yukarı akış yanıt kodlarını etkinleştir

Varsayılan olarak, oauth eklentisi yalnızca aşağıdaki durumlarda 4xx hata durum kodları döndürür. yanıt 200 durumunda değil. Bu davranışı, daima en az hatasına bağlı olarak tam 4xx veya 5xx kodunu döndürür.

Bu özelliği etkinleştirmek için oauth.useUpstreamResponse: true ekleyin özelliğini Edge Mikro ağ geçidi yapılandırmanıza ekleyin. Örneğin:

oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  gracePeriod: 10
  useUpstreamResponse: true

OAuth2 jeton güvenliğini kullanma

Bu bölümde, OAuth2 erişim jetonlarının nasıl alınacağı ve yenileme jetonlarının nasıl alınacağı açıklanmaktadır. Erişim jetonları şunun için kullanılır: güvenli API çağrıları gönderir. Yenileme jetonları yeni erişim jetonları almak için kullanılır.

Erişim jetonu nasıl alınır?

Bu bölümde, erişim jetonu almak için edgemicro-auth proxy'sinin nasıl kullanılacağı açıklanmaktadır.

edgemicro token CLI komutunu kullanarak da bir erişim jetonu alabilirsiniz. KSA hakkında ayrıntılar için Jetonları yönetme bölümüne bakın.

API 1: Kimlik bilgilerini gövde parametreleri olarak gönderme

URL'deki kuruluş ve ortam adlarınızı değiştirin ve Apigee'deki bir geliştirici uygulamasından edinilen Tüketici Kimliği ve Tüketici Sırrı değerlerini değiştirin client_id ve client_secret gövde parametreleri için kenar:

curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" \
-d '{"grant_type": "client_credentials", "client_id": "your_client_id", \
"client_secret": "your_client_secret"}' -H "Content-Type: application/json"

API 2: Kimlik bilgilerini Temel Kimlik Doğrulama üstbilgisinde gönderme

İstemci kimlik bilgilerini Temel Kimlik Doğrulama üstbilgisi olarak ve grant_type parametresini form parametresi olarak kullanabilirsiniz. Bu komut formu ayrıca RFC 6749: OAuth 2.0 Yetkilendirme Çerçevesi.

http://<org>-<test>.apigee.net/edgemicro-auth/token -v -u your_client_id:your_client_secret \
-d 'grant_type=client_credentials' -H "Content-Type: application/x-www-form-urlencoded"

Örnek çıkış

API bir JSON yanıtı döndürür. token ile eşleme türü arasında fark yoktur. access_token mülk. İkisinden birini kullanabilirsiniz.
{
"token": "eyJraWQiOiIxIiwidHlwIjoi",
"access_token": "eyJraWQiOiIxIiwid",
"token_type": "bearer",
"expires_in": "108000"
}

Yenileme jetonu nasıl alınır?

Yenileme jetonu almak için/token edgemicro-auth proxy'si. Bu API çağrısını password ile yapmanız ZORUNLUDUR izin türü. Aşağıdaki adımlar bu süreçte size yol gösterir.

  1. /token API ile erişim ve yenileme jetonu alın. Lütfen izin türü password ise:
    curl -X POST \
      https://your_organization-your_environment.apigee.net/edgemicro-auth/token \
      -H 'Content-Type: application/json' \
      -d '{
       "client_id":"mpK6l1Bx9oE5zLdifoDbF931TDnDtLq",
       "client_secret":"bUdDcFgv3nXffnU",
       "grant_type":"password",
       "username":"mpK6lBx9RoE5LiffoDbpF931TDnDtLq",
       "password":"bUdD2FvnMsXffnU"
    }'

    API, bir erişim jetonu ve yenileme jetonu döndürür. Yanıt şuna benziyor: bu:

    {
        "token": "your-access-token",
        "access_token": "your-access-token",
        "token_type": "bearer",
        "expires_in": "108000",
        "refresh_token": "your-refresh-token",
        "refresh_token_expires_in": "431999",
        "refresh_token_issued_at": "1562087304302",
        "refresh_token_status": "approved"
    }
  2. Yeni bir erişim jetonu almak için artık aşağıdaki kodu çağırarak yenileme jetonunu kullanabilirsiniz: aynı API'nin /refresh uç noktası. Örneğin:
    curl -X POST \
      https://willwitman-test.apigee.net/edgemicro-auth/refresh \
      -H 'Content-Type: application/json' \
      -d '{
       "client_id":"mpK6l1Bx9RoE5zLifoDbpF931TDnDtLq",
       "client_secret":"bUdDc2Fv3nMXffnU",
       "grant_type":"refresh_token",
       "refresh_token":"your-refresh-token"
    }'

    API, yeni bir erişim jetonu döndürür. Yanıt şuna benzer:

    {
        "token": "your-new-access-token"
        }

Sonsuza kadar izleme

Forever, bir Google Cloud blogu olan işlemin durması veya hata olması durumunda bir Node.js uygulamasını otomatik olarak yeniden başlatır. Kenar Microgateway, ne kadarının kaç tane olduğunu kontrol etmek için yapılandırabileceğiniz bir forever.json dosyası içerir. Edge Microgateway'in hangi aralıklarla yeniden başlatılması gerektiğini kontrol edin. Bu dosya Forever'ı yöneten forever-monitor adlı sonsuz bir hizmet daha fazla bilgi edindiniz.

forever.json dosyasını Edge Microgateway kök yükleme klasöründe bulabilirsiniz dizin. Bkz. Edge Microgateway'in yüklü olduğu yerler. Yapılandırma seçenekleriyle ilgili ayrıntılar için şuraya bakın: forever-monitor belgeleri.

edgemicro forever komutu, öğenin konumunu belirtmenize olanak tanıyan işaretler içerir forever.json dosyasını (-f işareti) yükleyin ve sonsuza kadar izlemeyi başlatın/durdurun (-a işareti). Örneğin:

edgemicro forever -f ~/mydir/forever.json -a start

Daha fazla bilgi için CLI referansındaki Sürekli izleme bölümüne bakın.

Yapılandırma dosyası uç noktası belirtme

Birden fazla Edge Microgateway örneği çalıştırıyorsanız bunların yapılandırmalarını yönetmek isteyebilirsiniz tek bir yerden takip edebilirsiniz. Bunu, Edge Micro'nın izin verdiği bir HTTP uç noktası belirterek yapabilirsiniz: yapılandırma dosyasını indirin. Edge Micro'yı başlattığınızda bu uç noktayı belirtebilirsiniz: -u işaretini kullanın.

Örneğin:

edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key

Burada mgconfig uç noktası yapılandırma dosyanızın içeriğini döndürür. Bu dosya bu, varsayılan olarak ~/.edgemicro bölgesindedir ve adlandırma kuralına sahiptir: org-env-config.yaml.

TCP bağlantısı verilerinin arabelleğe alınmasını devre dışı bırakma

nodelay yapılandırma özelliğini kullanarak veri arabelleğe alma özelliğini şunun için devre dışı bırakabilirsiniz: Edge Microgateway tarafından kullanılan TCP bağlantıları.

Varsayılan olarak TCP bağlantıları, Nagle algoritmasının indirebileceği adımları uygulayın. nodelay, true olarak ayarlanıyor, bu davranışı devre dışı bırakır (veriler her seferinde verileri socket.write() çağrılır). Ayrıca bkz. Node.js dokümanlarına göz atabilirsiniz.

nodelay özelliğini etkinleştirmek için Edge Micro yapılandırma dosyasını şu şekilde düzenleyin:

edgemicro:
  nodelay: true
  port: 8000
  max_connections: 1000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Edge Mikro Ağ Geçidi'ni bağımsız modda çalıştırma

Chrome Web Mağazası'ndan, Apigee Edge bağımlılığı. Bağımsız mod adı verilen bu senaryo, Edge Microgateway'i çalıştırıp test etmenize olanak tanır İnternet bağlantısı olmadan.

Aşağıdaki özellikler bağlantı gerektirdiğinden bağımsız modda çalışmaz Apigee Edge'e:

  • OAuth ve API anahtarı
  • Kota
  • Analiz

Diğer yandan, özel eklentiler ve artış önleme Apigee Edge'e bağlanmanız gerekir. Ayrıca extauth adlı yeni eklenti sayesinde Bağımsız moddayken mikro ağ geçidine bir JWT ile API çağrılarını yetkilendirme.

Ağ geçidini yapılandırma ve başlatma

Edge Microgateway'i bağımsız modda çalıştırmak için:

  1. Şu ada sahip bir yapılandırma dosyası oluşturun: $HOME/.edgemicro/$ORG-$ENV-config.yaml

    Örneğin:

    vi $HOME/.edgemicro/foo-bar-config.yaml
  2. Aşağıdaki kodu dosyaya yapıştırın:
    edgemicro:
      port: 8000
      max_connections: 1000
      config_change_poll_interval: 600
      logging:
        level: error
        dir: /var/tmp
        stats_log_interval: 60
        rotate_interval: 24
      plugins:
        sequence:
          - extauth
          - spikearrest
    headers:
      x-forwarded-for: true
      x-forwarded-host: true
      x-request-id: true
      x-response-time: true
      via: true
    extauth:
      publickey_url: https://www.googleapis.com/oauth2/v1/certs
    spikearrest:
      timeUnit: second
      allow: 10
      buffersize: 0
  3. Aşağıdaki ortam değişkenini "1" değeriyle dışa aktarın:
    export EDGEMICRO_LOCAL=1
  4. Örnek oluşturmak için değer sağladığınız aşağıdaki start komutunu yürütün: yerel proxy:
    edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \
      -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH

    Burada:

    • $ORG, "kuruluş"tur. kullandığınız adı belirtmelisiniz.
    • $ENV "env"dir yapılandırma dosyasında kullandığınız ad dokunun.
    • $LOCAL_PROXY_NAME, oluşturulacak yerel proxy'nin adıdır. Tekliflerinizi otomatikleştirmek ve optimize etmek için istediğiniz adı ekleyin.
    • $LOCAL_PROXY_VERSION proxy'nin sürüm numarasıdır.
    • $TARGET_URL, proxy hedefinin URL'sidir. (Hedef, bir hizmetten ibaret değildir.)
    • $BASE_PATH, proxy'nin temel yoludur. Bu değer yönlendirmeyle başlamalıdır eğik çizgi. Kök temel yolu için yalnızca düz eğik çizgi belirtin; örneğin, "/".

    Örneğin:

    edgemicro start -o local -e test -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
  5. Yapılandırmayı test edin.
    curl http://localhost:8000/echo  { "error" : "missing_authorization" }

    extauth eklentisi foo-bar-config.yaml dosyasında bulunduğu için "missing_Authorization" değerini alma hatası. Bu eklenti, Yetkilendirme bölümünde mevcut olması gereken bir JWT'yi doğrular. üst bilgisidir. Sonraki bölümde API çağrılarına izin verecek bir JWT edineceksiniz harika bir seçenektir.

Örnek: Yetkilendirme jetonu alma

Aşağıdaki örnekte, Apigee Edge'de (edgemicro-auth/jwkPublicKeys) Edge Microgateway JWT uç noktasından nasıl JWT alınacağı gösterilmektedir. Bu uç nokta, Edge Microgateway için standart kurulum ve yapılandırma gerçekleştirdiğinizde dağıtılır. JWT'yi Apigee uç noktasından almak için öncelikle standart Edge Microgateway kurulumunu yapmanız ve İnternete bağlı olması gerekir. Apigee uç noktası burada örnek amaçlarla kullanılır. ve zorunlu değildir. İsterseniz başka bir JWT jetonu uç noktası kullanabilirsiniz. Bunu yaparsanız, JWT'yi aşağıdakileri kullanarak edinmeniz gerekir: söz konusu uç nokta için sağlanan API'dir.

Aşağıdaki adımlarda, edgemicro-auth/jwkPublicKeys uç noktasını kullanarak nasıl jeton alacağınız açıklanmaktadır:.

  1. Bunun için standart bir standart edgemicro-auth proxy'sini dağıtmak için Edge Mikro Ağ Geçidi'nin kurulumu ve yapılandırılması kuruluşunuza/ortamınıza bağlayacaksınız. Bu adımı daha önce tamamladıysanız tekrar etmeniz gerekmez.
  2. Edge Microgateway'i Apigee Cloud'a dağıttıysanız bu uç noktadan bir JWT alabilmek için internete bağlı olmanız gerekir.
  3. Edge Mikro Ağ Geçidi'ni durdurun:
    edgemicro stop
  4. Daha önce oluşturduğunuz yapılandırma dosyasında ($HOME/.edgemicro/org-env-config.yaml), extauth:publickey_url doğrult özelliğini Apigee Edge kuruluşunuzdaki/ortamınızdaki edgemicro-auth/jwkPublicKeys uç noktasıyla ilişkilendirebilirsiniz. Örneğin:
    extauth:
      publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
  5. Yapılandırma dosyası adında kullandığınız kuruluş/env adlarını kullanarak Edge Microgateway'i daha önce yaptığınız gibi yeniden başlatın. Örneğin:
    edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
  6. Yetkilendirme uç noktasından bir JWT jetonu alın. edgemicro-auth/jwkPublicKeys kullandığınız için önerildi şu CLI komutunu kullanabilirsiniz:

edgemicro token komutunu kullanarak Edge Mikro Ağ Geçidi için bir JWT oluşturabilirsiniz veya API'dir. Örneğin:

edgemicro token get -o your_org -e your_env \
  -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy

Burada:

  • your_org, daha önce kullandığınız Apigee kuruluşunuzun adıdır Edge Mikro Ağ Geçidi yapılandırıldı.
  • your_env, kuruluşta bulunan bir ortamdır.
  • i seçeneği, ürüne sahip bir geliştirici uygulamasının Tüketici Anahtarı'nı belirtir ve edgemicro-auth proxy'sini içerir.
  • s seçeneği, edgemicro-auth proxy'sini içeren bir ürün.

Bu komut Apigee Edge'in daha sonra API'yi doğrulamak için kullanılabilecek bir JWT oluşturmasını ister çağrısının en iyi yolu.

Ayrıca bkz. Jeton oluşturma.

Bağımsız yapılandırmayı test etme

Yapılandırmayı test etmek için, Yetkilendirme başlığına aşağıdaki jeton eklenen jetonla API'yi çağırın:

curl http://localhost:8000/echo -H "Authorization: Bearer your_token

Örnek:

curl http://localhost:8000/echo -H "Authorization: Bearer eyJraWQiOiIxIiwidHlwIjo...iryF3kwcDWNv7OQ"

Örnek çıkış:

{
   "headers":{
      "user-agent":"curl/7.54.0",
      "accept":"*/*",
      "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP",
      "client_received_start_timestamp":"1535134472699",
      "x-authorization-claims":"eyJhdDbiO...M1OTE5MTA1NDkifQ==",
      "target_sent_start_timestamp":"1535134472702",
      "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896",
      "x-forwarded-proto":"http",
      "x-forwarded-host":"localhost:8000",
      "host":"mocktarget.apigee.net",
      "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513",
      "via":"1.1 localhost, 1.1 google",
      "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212",
      "connection":"Keep-Alive"
   },
   "method":"GET",
   "url":"/",
   "body":""
}

Yerel proxy modunu kullanma

Yerel proxy modunda, Edge Mikro Ağ Geçidi mikro ağ geçidine duyarlı proxy kullanıma sunulması planlanıyor. Bunun yerine bir "yerel proxy" yapılandırırsınız. sağlayarak bir yerel proxy adını, temel yolunu ve hedef URL'sini mikro ağ geçidini başlatır. Mikro ağ geçidine yapılan API çağrıları, daha sonra hedefe gönderilir Yerel proxy'nin URL'si. Diğer tüm açılardan yerel proxy modu, Edge Microgateway, normal modunda. Kimlik doğrulama, saklama ve kota yaptırımları, özel eklentiler vb.

Kullanım alanı ve örnek

Yerel proxy modu, Edge Mikro Ağ Geçidi ile yalnızca tek bir proxy'yi ilişkilendirmeniz gerektiğinde yararlı olur kullanır. Örneğin, Edge Microgateway'i Kubernetes'e yardımcı dosya proxy'si olarak ekleyebilirsiniz. Mikro ağ geçidi ve bir hizmet tek bir kapsülde çalışır ve mikro ağ geçidinin trafiği yönettiği ve tamamlayıcı hizmetinden geliyor. Aşağıdaki şekilde, Edge'in Mikro ağ geçidi, Kubernetes kümesinde yardımcı dosya proxy'si görevi görür. Her mikro ağ geçidi örneği yalnızca tek bir uç noktaya gönderir:

Yardımcı dosya olarak Edgemicro

Bu mimari tarzının bir avantajı, Edge Microgateway'in API'leri sağlamasıdır. bir örnek yönetim sistemi kullanıyorsanız (örneğin, Kubernetes kümesi.

Yerel proxy modunu yapılandırma

Edge Mikro Ağ Geçidi'ni yerel proxy modunda çalışacak şekilde yapılandırmak için şu adımları uygulayın:

  1. Yerel yapılandırma ortamınızı tam olarak ayarlamak için edgemicro init komutunu çalıştırın olduğu gibi çalışır. Şu kaynakları da inceleyin Edge Microgateway'i yapılandırın.
  2. edgemicro configure uygulamasını normal Edge Microgateway kurulumunda olduğu gibi çalıştırın gerekir. Örneğin:
    edgemicro configure -o your_org -e your_env -u your_apigee_username

    Bu komut, edgemicro-auth politikasını Edge'e dağıtır ve bir anahtar döndürür ve mikro ağ geçidini başlatmak için ihtiyacınız olan gizli bilgileri içerir. Yardıma ihtiyacınız olursa Edge Microgateway'i yapılandırın.

  3. Apigee Edge'de aşağıdaki zorunlu yapılandırmayı kullanarak bir API ürünü oluşturun (diğer tüm yapılandırmaları istediğiniz gibi yönetebilirsiniz):
  4. Apigee Edge'de bir geliştirici oluşturun ya da aşağıdaki koşullarda mevcut bir geliştiriciyi kullanın: dile getirin. Yardım için Uç yönetim kullanıcı arayüzünü kullanarak geliştirici ekleme konusuna bakın.

  5. Apigee Edge'de bir geliştirici uygulaması oluşturun. Oluşturduğunuz API ürününü eklemeniz gerekir oluşturmamıza yardımcı oluyor. Yardım için Edge'ye uygulama kaydetme yönetim arayüzünü ziyaret edin.
  6. Edge Microgateway'in yüklü olduğu makinede aşağıdakileri dışa aktarın: ortam değişkeninin değerini "1" olarak değiştirin.
    export EDGEMICRO_LOCAL_PROXY=1
  7. Aşağıdaki start komutunu yürütün:
    edgemicro start -o your_org -e your_environment -k your_key -s your_secret \
        -a local_proxy_name -v local_proxy_version -t target_url -b base_path

    Burada:

    • your_org, Apigee kuruluşunuzdur.
    • your_environment, kuruluşunuzda yer alan bir ortamdır.
    • your_key, çalıştırdığınızda döndürülen anahtardır edgemicro configure.
    • your_secret, koştuğunuzda döndürülen gizli bilgidir edgemicro configure.
    • local_proxy_name, oluşturulacak yerel proxy'nin adıdır.
    • local_proxy_version proxy'nin sürüm numarasıdır.
    • target_url, proxy hedefinin (proxy'nin yapacağı hizmet) URL'dir çağrısı) gerekir.
    • base_path, proxy'nin temel yoludur. Bu değer yönlendirmeyle başlamalıdır eğik çizgi. Kök temel yolu için yalnızca düz eğik çizgi belirtin; örneğin, "/".

    Örneğin:

    edgemicro start -o your_org -e test -k 7eb6aae644cbc09035a...d2eae46a6c095f \
      -s e16e7b1f5d5e24df...ec29d409a2df853163a -a proxy1 -v 1 \
      -t http://mocktarget.apigee.net -b /echo

Yapılandırmayı test etme

Proxy uç noktasını çağırarak yerel proxy yapılandırmasını test edebilirsiniz. Örneğin, /echo temel yolunu belirttiyseniz proxy'yi şu şekilde çağırabilirsiniz:

curl  http://localhost:8000/echo
{
  "error" : "missing_authorization",
  "error_description" : "Missing Authorization header"
}

Geçerli bir API anahtarı sağlamadığınız için bu ilk API çağrısı bir hata oluşturdu. Anahtarı uygulamadaki talimatları uygulayın. Uygulamayı Edge kullanıcı arayüzünde açın, kopyalayın ve bu anahtarı aşağıdaki şekilde kullanın:

curl  http://localhost:8000/echo -H 'x-api-key:your_api_key'

Örneğin:

curl  http://localhost:8000/echo -H "x-api-key:DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP"

Örnek çıkış:

{
  "headers":{
    "user-agent":"curl/7.54.0",
    "accept":"*/*",
    "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP",
    "client_received_start_timestamp":"1535134472699",
    "x-authorization-claims":"eyJhdWQiOi...TQ0YmUtOWNlOS05YzM1OTE5MTA1NDkifQ==",
    "target_sent_start_timestamp":"1535134472702",
    "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896",
    "x-forwarded-proto":"http",
    "x-forwarded-host":"localhost:8000",
    "host":"mocktarget.apigee.net",
    "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513",
    "via":"1.1 localhost, 1.1 google",
    "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212",
    "connection":"Keep-Alive"
  },
  "method":"GET",
  "url":"/",
  "body":""
}

Senkronize ediciyi kullanma

Bu bölümde, isteğe bağlı bir özellik olan senkronize edicinin nasıl kullanılacağı Böylece, Edge Microgteway'in kullanarak yapılandırma verilerini Apigee Edge'den alıp yerel bir Redis veritabanına yazmalısınız. Entegre bir senkronize edici örneği çalışıyorsa, farklı düğümlerde çalışan diğer Edge Microgateway örnekleri bu veritabanından yapılandırmasını doğrudan alabilir.

Senkronizasyon aracı özelliği şu anda Redis 5.0.x ile çalışmak üzere desteklenmektedir.

Senkronize edici nedir?

Senkronize edici, Edge Microgateway için bir dayanıklılık düzeyi sağlar. Projenin vizyonu ve Edge Microgateway'in her örneğinin aynı yapılandırmayı kullandığını ve internet kesintisi olması halinde Edge Mikro Ağ Geçidi örnekleri başlatılıp çalışabilir. gerekir.

Varsayılan olarak, Edge Microgateway örneklerinin aşağıdakileri yapmak için Apigee Edge ile iletişim kurabilmesi gerekir: API proxy'si ve API ürün yapılandırmaları gibi yapılandırma verilerini alıp yenilemesi. Edge ile internet bağlantısı kesilirse mikro ağ geçidi örnekleri çalışmaya devam edebilir. işlevini çağırın. Ancak yeni mikro ağ geçidi örnekleri net bir bağlantı olmadan başlatılamaz. Dahası, bazı durumlarda internetin bir veya daha fazla mikro ağ geçidi örneğinin yapılandırmayla çalışmasına neden olan kesinti diğer örneklerle senkronize olmayan bilgiler içerir.

Edge Microgateway senkronize edici, Edge Microgateway için alternatif bir mekanizma sağlar API proxy trafiğini başlatmak ve işlemek için gereken yapılandırma verilerini almak üzere örnekleri. Senkronize edici, Edge Mikro Ağ Geçidi'nin tamamının farklı düğümlerde çalışan örneklerin düzgün şekilde başlatılması ve Edge Microgateway ile Apigee Edge arasındaki internet bağlantısı kesintiye uğradı.

Senkronize edici, Edge Microgateway'in özel olarak yapılandırılmış bir örneğidir. Tek amacı Apigee Edge'i yoklamak (zamanlama yapılandırılabilir), yapılandırma verilerini almak ve bunu yerel bir Redis veritabanına yazmalısınız. Senkronize edici örneğinin kendisi API proxy'sini işleyemez yardımcı olur. Farklı düğümlerde çalışan diğer Edge Microgateway örnekleri Yapılandırma verilerini Apigee yerine Redis veritabanından alacak şekilde yapılandırılmalıdır. Kenar. Tüm mikro ağ geçidi örnekleri, yapılandırma verilerini yerel ağdan API isteklerini başlatabilir ve işleyebilirler. Bu durumda, söz konusu olabilir.

Senkronize edici örneğini yapılandırma

Aşağıdaki yapılandırmayı şunun için org-env/config.yaml dosyasına ekleyin: senkronize edici olarak kullanmak istediğiniz Edge Microgateway yüklemesini yükleyin:

edgemicro:
  redisHost: host_IP
  redisPort: host_port
  redisDb: database_index
  redisPassword: password
edge_config:
  synchronizerMode: 1
  redisBasedConfigCache: true

Örneğin:

edgemicro:
  redisHost: 192.168.4.77
  redisPort: 6379
  redisDb: 0
  redisPassword: codemaster
edge_config:
  synchronizerMode: 1
  redisBasedConfigCache: true
Option Açıklama
redisHost Redis örneğinizin çalıştığı ana makine. Varsayılan: 127.0.0.1
redisPort Redis örneğinin bağlantı noktası. Varsayılan: 6379
redisDb Kullanılacak Redis Veritabanı. Varsayılan: 0
redisPassword Veritabanı şifreniz.

Son olarak, yapılandırma dosyasını kaydedin ve Edge Microgateway örneğini başlatın. Başlatılacak Apigee Edge'i yoklama ve indirilmiş yapılandırma verilerini Redis veritabanında saklama.

Normal Edge Mikro Ağ Geçidi örneklerini yapılandırma

Senkronize edici çalışırken ek Edge Mikro Ağ Geçidi düğümlerini yapılandırabilirsiniz. API proxy trafiğini işleyen normal mikro ağ geçidi örneklerini çalıştırın. Ancak, bu örneklerin yapılandırma verilerini Redis'ten almak yerine Apigee Edge.

Ek Edge Mikro Ağ Geçidi düğümlerinin her birine org-env/config.yaml dosyası yükleyin. synchronizerMode özelliği 0 olarak ayarlandı. Bu özellik, örneği normal bir şekilde çalışacak şekilde ayarlar API proxy trafiğini işleyen Edge Microgateway örneği ve örnek yapılandırma verilerini Redis veritabanından kaldırmalıdır.

edgemicro:
  redisHost: host_IP
  redisPort: host_port
  redisDb: database_index
  redisPassword: password
edge_config:
  synchronizerMode: 0
  redisBasedConfigCache: true

Örneğin:

edgemicro:
  redisHost: 192.168.4.77
  redisPort: 6379
  redisDb: 0
  redisPassword: codemaster
edge_config:
  synchronizerMode: 0
  redisBasedConfigCache: true

Yapılandırma özellikleri

Senkronize edicinin kullanımını desteklemek için aşağıdaki yapılandırma özellikleri eklendi:

Özellik Değerler Açıklama
edge_config.synchronizerMode 0 veya 1

0 (varsayılan) ise Edge Mikro Ağ Geçidi standart modunda çalışır.

1 ise senkronize edici olarak çalışmak için Edge Microgateway örneğini başlatın. Burada bu durumda örnek, yapılandırma verilerini Apigee Edge'den çeker ve . Bu örnek, API proxy isteklerini işleyemez; onun tek amacı yapılandırma verileri için Apigee Edge'i sorgulamak ve yerel Ardından, veritabanından okuma yapmak için diğer mikro ağ geçidi örneklerini yapılandırmanız gerekir.

edge_config.redisBasedConfigCache doğru veya yanlış True (doğru) ise Edge Microgateway örneği, yapılandırma verilerini Redis veritabanını kullanabilirsiniz. Redis veritabanı aynı olmalıdır senkronize edicinin veri yazmak üzere yapılandırıldığı anlamına gelir. Redis veritabanı kullanılamıyorsa veya Veritabanı boşsa mikro ağ geçidi mevcut bir cache-config.yaml dosyası oluşturun.

Yanlış değerine ayarlanırsa (varsayılan) Edge Microgateway örneği, yapılandırma verilerini şuradan alır: Apigee Edge'de her zamanki gibi.

edgemicro.config_change_poll_interval Zaman aralığı (saniye cinsinden) Senkronize edicinin, Apigee Edge'den veri çekmesi için yoklama aralığını belirtir.