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

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

Edge Microgateway v. 3.3.x

Bu konuda, Edge Mikro Ağ Geçidi'nin nasıl yönetileceği ve yapılandırılacağı ele alınmaktadır.

İnternet bağlantınız varsa Edge Mikro Ağ Geçidi'ni yükseltme

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

Apigee, üretim ortamınızı yükseltmeden önce mevcut yapılandırmanızı yeni sürümle test etmenizi önerir.

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

    Edge Microgateway'in belirli bir sürümünü yüklemek için yükleme komutunda sürüm numarasını belirtmeniz gerekir. Örneğin, 3.2.3 sürümüne yüklemek için aşağıdaki komutu kullanın:

    npm install edgemicro@3.2.3 -g
  2. Sürüm numarasını kontrol edin. Örneğin, 3.2.3 sürümünü yüklediyseniz:
    edgemicro --version
    current nodejs version is v12.5.0
    current edgemicro version is 3.2.3
        
  3. Son olarak, edgemicro-auth proxy'sinin 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ştirmek için bilmeniz gerekenler açıklanmaktadır.

Varsayılan sistem yapılandırma dosyası

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 ön ek dizinidir. Bu dizini bulamıyorsanız Edge Microgateway nerede yüklü? bölümüne bakın.

Sistem yapılandırma dosyasını değiştirirseniz Edge Microgateway'i yeniden başlatmanız, yeniden yapılandırmanız ve yeniden başlatmanız gerekir:

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 uygulamasını çalıştırdığınızda, default.yaml adlı sistem yapılandırma dosyası (yukarıda açıklanmıştır) ~/.edgemicro dizinine yerleştirilir.

~/.edgemicro içindeki yapılandırma dosyasını değiştirirseniz Edge Microgateway'i yeniden yapılandırmanız ve yeniden başlatmanız gerekir:

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

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

edgemicro configure [params] eklentisini çalıştırdığınızda, ~/.edgemicro konumunda bir dinamik yapılandırma dosyası oluşturulur. Dosya şu kalıba göre adlandırılır: org-env-config.yaml. Burada org ve env, Apigee Edge kuruluş ve ortam adlarınızdır. Yapılandırma değişiklikleri yapmak için bu dosyayı kullanabilir ve ardından kesinti olmadan yeniden yükleyebilirsiniz. Örneğin, bir eklenti ekler ve yapılandırırsanız aşağıda açıklandığı gibi, herhangi bir kapalı kalma süresi olmadan 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şunuzun adıdır (kuruluş yöneticisi olmanız gerekir).
    • $ENV, kuruluşunuzdaki bir ortamdır (ör. "test" veya "prod").
    • $KEY, daha önce yapılandır komutu tarafından döndürülen anahtardır.
    • $SECRET, daha önce yapılandır komutu tarafından döndürülen anahtardır.

    Örneğin:

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

Edge Mikro Ağ Geçidi durdurulmuşsa:

  1. Edge Mikro Ağ Geçidi'ni yeniden başlatın:
    edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET

    Burada:

    • $ORG, Edge kuruluşunuzun adıdır (kuruluş yöneticisi olmanız gerekir).
    • $ENV, kuruluşunuzdaki bir ortamdır (ör. "test" veya "prod").
    • $KEY, daha önce yapılandır komutu tarafından döndürülen anahtardır.
    • $SECRET, daha önce yapılandır 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ıyla ilgili ayrıntılar için Edge Microgateway yapılandırma referansı sayfasına 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 ve ortamınız için değer gerektiren komut satırı arayüzü komutları ve Edge Microgateway'i başlatmak için gereken anahtar ve gizli anahtar şu ortam değişkenlerinde depolanabilir:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

Bu değişkenleri ayarlamak isteğe bağlıdır. Bunları ayarlarsanız, Edge Mikro Ağ Geçidi'ni yapılandırmak ve başlatmak için Komut Satırı Arayüzü'nü (CLI) kullanırken değerlerini belirtmeniz gerekmez.

Edge Mikro Ağ Geçidi sunucusunda SSL'yi yapılandırma

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

Video Açıklama
Kuzeye giden 1 yönlü TLS'yi yapılandırma Apigee Edge Microgateway'de TLS'yi yapılandırma hakkında bilgi edinin. Bu videoda TLS'ye ve TLS'nin önemine genel bakış, Edge Microgateway'de TLS tanıtılmış ve Northbound Tek Yön TLS'nin nasıl yapılandırılacağı gösterilmiştir.
Kuzeye giden 2 yönlü TLS'yi yapılandırma Bu, Apigee Edge Mikro Ağ Geçidi'nde TLS'yi yapılandırmayla ilgili ikinci videodur. Bu videoda kuzeye doğru 2 yönlü TLS'nin nasıl yapılandırılacağı açıklanmaktadır.
1 yönlü 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 yönlü ve 2 yönlü TLS'nin nasıl yapılandırılacağı açıklanmaktadır.

Mikro ağ geçidi sunucusunu SSL kullanacak şekilde yapılandırabilirsiniz. Örneğin, SSL yapılandırılmış durumdayken API'leri "https" protokolüyle Edge Microgateway üzerinden şunun gibi çağırabilirsiniz:

https://localhost:8000/myapi

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

  1. openssl yardımcı programını veya tercih ettiğiniz yöntemi kullanarak bir SSL sertifikası ve anahtarı oluşturun ya da alın.
  2. Edge Microgateway yapılandırma dosyasına edgemicro:ssl özelliğini ekleyin. Seçeneklerin tam listesi için 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 Mikro Ağ Geçidi'ni yeniden başlatın. Düzenlediğiniz yapılandırma dosyasına (varsayılan dosya veya çalışma zamanı yapılandırma dosyası) bağlı olarak Yapılandırma değişiklikleri yapma bölümünde açıklanan adımları uygulayın.

Yapılandırma dosyasının SSL yapılandırılmış haldeki edgemicro bölümü örneğini aşağıda görebilirsiniz:

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 İstemcinin özel anahtarını, sertifikasını ve CA sertifikalarını PFX biçiminde içeren pfx dosyasının yolu.
passphrase Özel anahtar veya PFX parolasını içeren bir dize.
ca PEM biçimindeki güvenilir sertifikaların listesini içeren bir dosyanın yolu.
ciphers Kullanılacak şifreleri açıklayan, ":" ile ayrılmış bir dize.
rejectUnauthorized True (doğru) değerine ayarlanırsa sunucu sertifikası, sağlanan CA listesine göre doğrulanır. Doğrulama başarısız olursa bir hata döndürülür.
secureProtocol Kullanılacak SSL yöntemi. Örneğin, SSLv3_method [SSL'yi sürüm 3'e zorlamak için].
servername SNI (Sunucu Adı Göstergesi) TLS uzantısının sunucu adı.
requestCert 2 yönlü SSL için doğru; 1 yönlü SSL için false (yanlış)

İstemci SSL/TLS seçeneklerini kullanma

Hedef uç noktalarına bağlanırken Edge Microgateway'i TLS veya SSL istemcisi olacak şekilde yapılandırabilirsiniz. Mikro ağ geçidi yapılandırma dosyasında, SSL/TLS seçeneklerini ayarlamak için hedef öğeyi kullanın. Birden çok belirli hedef belirtebileceğinizi unutmayın. Aşağıda birden çok hedefli bir örnek verilmiştir.

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 bir TLS örneği verilmiştir:

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

TLS/SSL ayarlarını birden fazla belirli hedefe uygulamak istediğinizde, yapılandırmadaki ilk ana makineyi evrensel istekleri etkinleştiren "boş" olarak belirtmeniz ve ardından belirli ana makineleri istediğiniz sırada belirtmeniz gerekir. Bu örnekte, ayarlar birden fazla belirli ana makineye uygulanmıştır:

targets:
 - host:   ## Note that this value must be "empty"
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true
 - host: 'myserver1.example.com'
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       rejectUnauthorized: true
 - host: 'myserver2.example.com'
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       rejectUnauthorized: true

Desteklenen tüm istemci seçeneklerinin listesini aşağıda bulabilirsiniz:

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

Uç mikro 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 kullanır. Bu proxy, edgemicro configure uygulamasını ilk kez çalıştırdığınızda dağıtılır. Bu proxy'nin varsayılan yapılandırmasını değiştirerek JSON Web Token'a (JWT) özel talepler desteği ekleyebilir, jeton geçerlilik süresini yapılandırabilir ve yenileme jetonları oluşturabilirsiniz. Ayrıntılar için GitHub'daki edgemicro-auth sayfasını inceleyin.

Özel bir kimlik doğrulama hizmeti kullanma

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

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

Kimlik doğrulamayı işlemek için kendi özel hizmetinizi kullanmak istiyorsanız yapılandırma dosyasındaki authUri değerini hizmetinize işaret edecek şekilde değiştirin. Örneğin, kimliği doğrulamak için LDAP kullanan bir hizmetiniz olabilir.

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 için yararlı bilgiler sağlar.

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

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

Varsayılan günlük dosyası dizini nasıl değiştirilir?

Günlük dosyalarının depolandığı dizin, Edge Microgateway yapılandırma dosyasında belirtilir. Yapılandırma değişiklikleri yapma bölümüne de göz atın.

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 bilgileri günlük dosyası yerine standart çıkışa gönderilecek şekilde yapılandırabilirsiniz. to_console işaretini aşağıdaki şekilde true (doğru) değerine ayarlayın:

edgemicro:
  logging:
    to_console: true

Bu ayarla, günlükler standart çıkışa gönderilir. Şu anda hem stdout'a hem de bir günlük dosyasına günlük gönderemezsiniz.

Günlük kaydı düzeyini ayarlama

edgemicro yapılandırmasında kullanılacak günlük düzeyini belirtirsiniz. Günlük düzeylerinin ve açıklamalarının tam listesi için edgemicro özellikleri bölümünü inceleyin.

Örneğin, aşağıdaki yapılandırmada günlük kaydı düzeyi debug olarak ayarlanır:

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

Günlük aralıklarını değiştirme

Bu aralıkları Edge Microgateway yapılandırma dosyasında yapılandırabilirsiniz. Ayrıca, Yapılandırma değişiklikleri yapma konusuna da bakın.

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

  • stats_log_interval: (varsayılan: 60) İstatistik kaydının API günlük dosyasına yazıldığı aralık (saniye cinsinden).
  • rotate_interval: (varsayılan: 24) Günlük dosyalarının döndürüldüğü saat cinsinden aralık. Ö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

Katı günlük dosyası izinlerini gevşetme

Varsayılan olarak Edge Microgateway, dosya izni düzeyi 0600 olarak ayarlanmış uygulama günlük dosyasını (api-log.log) oluşturur. Bu izin düzeyi, harici uygulamaların veya kullanıcıların günlük dosyasını okumasına izin vermez. Bu katı izin düzeyini gevşetmek için logging:disableStrictLogFile değerini true olarak ayarlayın. Bu özellik true olduğunda günlük dosyası, dosya izni 0755 olarak ayarlanmış şekilde oluşturulur. false ise veya özellik sağlanmamışsa izin varsayılan olarak 0600 olur.

3.2.3 sürümünde eklendi.

Örneğin:

edgemicro:
 logging:
   disableStrictLogFile: true

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

Günlük dosyası verileri zamanla biriktikçe Apigee, aşağıdaki uygulamalardan yararlanmanızı önerir:

  • Günlük dosyaları oldukça büyüyebileceğinden, günlük dosyası dizininde yeterli alan bulunduğundan emin olun. Aşağıdaki Günlük dosyalarının depolandığı ve Varsayılan günlük dosyası dizinini değiştirme bölümlerine bakın.
  • Haftada en az bir kez günlük dosyalarını silin veya ayrı bir arşiv dizinine taşıyın.
  • Politikanız günlükleri silmekse eski günlükleri kaldırmak (temizlemek) için edgemicro log -c CLI komutunu kullanabilirsiniz.

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

Her bir Edge Microgateway örneği, .log uzantısına sahip bir günlük dosyası oluşturur. Günlük dosyaları için adlandırma kuralı aşağıdaki gibidir:

edgemicro-HOST_NAME-INSTANCE_ID-api.log

Örneğin:

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log

Günlük dosyası içeriği 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 Web Token'ın (JWT) JSON'sini atlar. Bu nesnelerin çıktısını konsola almak istiyorsanız Edge Microgateway'i başlattığınızda komut satırı işaretini DEBUG=* ayarlayın. Örneğin:

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

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

"api" günlük dosyası, Edge Microgateway üzerinden istek ve yanıt akışı hakkında ayrıntılı bilgiler içerir. "api" günlük dosyaları şöyle adlandırılır:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Edge Mikro Ağ Geçidi'ne yapılan her istek için "api" günlük dosyasında dört etkinlik yakalanır:

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

Bu ayrı girişlerin her biri, günlük dosyalarını daha kompakt hale getirmeye yardımcı olması için kısaltma olarak gösterilir. Aşağıda, bu dört etkinliğin her birini temsil eden dört örnek giriş verilmiştir. Günlük dosyasında aşağıdaki gibi görünürler (satır numaraları yalnızca dokümanda referans olarak verilmiştir, günlük dosyasında görünmez).

(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 - Günlük kaydı düzeyi. Bu değer, işlemin bağlamına ve edgemicro yapılandırmasında ayarlanan günlük kaydı düzeyine bağlıdır. Günlük kaydı düzeyini ayarlama başlıklı makaleyi inceleyin. İstatistik kayıtları için seviye stats olarak ayarlanır. İstatistik kayıtları, stats_log_interval yapılandırmasıyla ayarlanan düzenli aralıklarla raporlanır. Ayrıca Günlük aralıklarını değiştirme bölümüne de göz atın.
  • req - Etkinliği tanımlar. Bu durumda istemciden istekte bulunun.
  • m - İstekte kullanılan HTTP fiili.
  • u - URL'nin temel yolu izleyen bölümü.
  • h - Edge Microgateway'in dinlediği ana makine ve bağlantı noktası numarası.
  • r: İstemci isteğinin kaynağı olan uzak ana makine ve bağlantı noktası.
  • i: İstek kimliği. Dört etkinlik girişinin tümü bu kimliği paylaşır. Her isteğe benzersiz bir istek kimliği atanır. Günlük kayıtlarının istek kimliğine göre ilişkilendirilmesi, hedefin gecikmesi hakkında değerli bilgiler sağlayabilir.
  • d - İsteğin Edge Microgateway tarafından alınmasından bu yana geçen milisaniye cinsinden süre. Yukarıdaki örnekte, hedefin istek 0 için verdiği yanıt 7 milisaniye sonra (3. satır) alındı ve yanıt 4 milisaniye sonra da istemciye gönderildi (satır 4). Diğer bir deyişle, toplam istek gecikmesi 11 milisaniyeydi. Bunun 7 milisaniyesi hedef tarafından alındı ve Edge Microgateway tarafından 4 milisaniye alındı.

2. Hedefe yapılan giden istek örneği:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651 - Unix tarih damgası
  • info - Günlük kaydı düzeyi. Bu değer, işlemin bağlamına ve edgemicro yapılandırmasında ayarlanan günlük kaydı düzeyine bağlıdır. Günlük kaydı düzeyini ayarlama başlıklı makaleyi inceleyin. İstatistik kayıtları için seviye stats olarak ayarlanır. İstatistik kayıtları, stats_log_interval yapılandırmasıyla ayarlanan düzenli aralıklarla raporlanır. Ayrıca Günlük aralıklarını değiştirme bölümüne de göz atın.
  • treq - Etkinliği tanımlar. Bu durumda, isteği hedefleyin.
  • 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şinin tümü bu kimliği paylaşır.

3. Hedeften gelen yanıt örneği

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

1436403888651 - Unix tarih damgası

  • info - Günlük kaydı düzeyi. Bu değer, işlemin bağlamına ve edgemicro yapılandırmasında ayarlanan günlük kaydı düzeyine bağlıdır. Günlük kaydı düzeyini ayarlama başlıklı makaleyi inceleyin. İstatistik kayıtları için seviye stats olarak ayarlanır. İstatistik kayıtları, stats_log_interval yapılandırmasıyla ayarlanan düzenli aralıklarla raporlanır. Ayrıca Günlük aralıklarını değiştirme bölümüne de göz atın.
  • tres: Etkinliği tanımlar. Bu durumda, hedef yanıt.
  • s: HTTP yanıt durumu.
  • d - Milisaniye cinsinden süre. Hedef tarafından API çağrısı için harcanan süredir.
  • i: Günlük girişinin kimliği. Dört etkinlik girişinin tümü bu kimliği paylaşır.

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

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

1436403888651 - Unix tarih damgası

  • info - Günlük kaydı düzeyi. Bu değer, işlemin bağlamına ve edgemicro yapılandırmasında ayarlanan günlük kaydı düzeyine bağlıdır. Günlük kaydı düzeyini ayarlama başlıklı makaleyi inceleyin. İstatistik kayıtları için seviye stats olarak ayarlanır. İstatistik kayıtları, stats_log_interval yapılandırmasıyla ayarlanan düzenli aralıklarla raporlanır. Ayrıca Günlük aralıklarını değiştirme bölümüne de göz atın.
  • res - Etkinliği tanımlar. Bu durumda istemciye yanıt verilir.
  • s: HTTP yanıt durumu.
  • d - Milisaniye cinsinden süre. Bu, hedef API'nin ve Edge Microgateway'in harcadığı süre de dahil olmak üzere API çağrısı için harcanan toplam süreyi ifade eder.
  • i: Günlük girişinin kimliği. Dört etkinlik girişinin tümü bu kimliği paylaşır.

Günlük dosyası programı

Günlük dosyaları, rotate_interval yapılandırma özelliği tarafından belirtilen aralıklarla döndürülür. Rotasyon aralığı sona erene kadar girişler aynı günlük dosyasına eklenmeye devam eder. Ancak, Edge Mikro Ağ Geçidi her yeniden başlatıldığında yeni bir UID alır ve bu UID ile yeni bir günlük dosyası grubu oluşturur. İyi günlük dosyası bakım uygulamaları bölümüne de göz atın.

Hata mesajları

Bazı günlük girişleri hata mesajları içerir. Hataların nerede ve neden oluştuğunu belirlemenize yardımcı olması için Edge Microgateway hata referansı bölümüne bakın.

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

Yapılandırma dosyasının konumu

Bu bölümde açıklanan yapılandırma özellikleri, Edge Microgateway yapılandırma dosyasında bulunur. Yapılandırma değişiklikleri yapma bölümüne de göz atın.

Edge_config özellikleri

Bu ayarlar, Edge Microgateway örneği ile Apigee Edge arasındaki etkileşimi yapılandırmak için kullanılır.

  • bootstrap: (varsayılan: yok) Apigee Edge'de çalışan Edge Microgateway'e özgü bir hizmeti işaret eden URL. Edge Microgateway, Apigee Edge ile iletişim kurmak için bu hizmeti kullanır. Bu URL, herkese açık/özel anahtar çiftini oluşturma komutunu yürüttüğünde döndürülür: edgemicro genkeys. Ayrıntılar için Edge Microgateway'i kurma ve yapılandırma konusuna bakın.
  • jwt_public_key: (varsayılan: none) Apigee Edge'de dağıtılan Edge Microgateway proxy'sine işaret eden bir URL. Bu proxy, istemcilere imzalı erişim jetonları vermek için kimlik doğrulama uç noktası görevi görür. Bu URL, proxy'yi dağıtma komutunu yürütürken döndürülür: edgemicro yapılandırır. Ayrıntılar için Edge Microgateway'i kurma ve yapılandırma konusuna bakın.
  • quotaUri: Kotaları kuruluşunuza dağıtılan edgemicro-auth proxy'si üzerinden yönetmek istiyorsanız bu yapılandırma özelliğini ayarlayın. 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.

  • port: (varsayılan: 8000) Edge Microgateway işleminin dinlediği bağlantı noktası numarası.
  • max_connections: (varsayılan: -1) Edge Mikro Ağ Geçidi'nin alabileceği maksimum eş zamanlı gelen bağlantı sayısını belirtir. Bu sayı aşılırsa aşağıdaki durum döndürülür:

    res.statusCode = 429; // Too many requests
  • max_connections_hard: (varsayılan: -1) Edge Microgateway'in bağlantıyı kapatmadan önce alabileceği maksimum eş zamanlı istek sayısı. Bu ayar, hizmet reddi saldırılarını engellemek için tasarlanmıştır. Genellikle bu değeri max_connects değerinden büyük bir sayıya ayarlayın.
  • günlük kaydı:
    • level: (varsayılan: hata)
      • info - (Önerilen) Bir Edge Microgateway örneği üzerinden geçen tüm istek ve yanıtları günlüğe kaydeder.
      • warn: Yalnızca uyarı mesajlarını günlüğe kaydeder.
      • error - Yalnızca hata iletilerini günlüğe kaydeder.
      • debug: Bilgi, uyarı ve hata mesajlarıyla birlikte hata ayıklama mesajlarını günlüğe kaydeder.
      • trace: Bilgi, uyarı ve hata mesajlarıyla birlikte hatalara ilişkin izleme bilgilerini günlüğe kaydeder.
      • none (hiçbiri) - Günlük dosyası oluşturmayın.
    • dir: (varsayılan: /var/tmp) Günlük dosyalarının depolandığı dizin.
    • stats_log_interval: (varsayılan: 60) İstatistik kaydının API günlük dosyasına yazıldığı aralık (saniye cinsinden).
    • rotate_interval: (varsayılan: 24) Günlük dosyalarının döndürüldüğü saat cinsinden aralık.
  • eklentiler: Eklentiler, Edge Mikro Ağ Geçidi'ne işlev ekler. Eklenti geliştirmeyle ilgili ayrıntılı bilgi için Özel eklentiler geliştirme sayfasına bakın.
  • dir: ./gateway dizininden ./plugins dizinine giden göreli bir yol veya mutlak bir yol.
  • sequence: Edge Microgateway örneğinize eklenecek eklenti modüllerinin listesi. Modüller burada belirtildikleri sırayla yürütülür.
  • debug: Edge Mikro Ağ Geçidi işlemine uzaktan hata ayıklama ekler.
    • bağlantı noktası: Dinlenecek bağlantı noktası numarası. Örneğin, IDE hata ayıklayıcınızı bu bağlantı noktasını dinleyecek şekilde ayarlayın.
    • args: Hata ayıklama işlemine yönelik bağımsız değişkenler. Ö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. Yoklama, Edge'de yapılan tüm değişiklikleri (ürünler, mikro ağ geçidini fark eden proxy'ler vb.) ve yerel yapılandırma dosyasında yapılan değişiklikleri alır.
  • disable_config_poll_interval: (varsayılan: false) Otomatik değişiklik yoklamayı devre dışı bırakmak için true değerine ayarlayın.
  • request_timeout: Hedef istekler için bir zaman aşımı ayarlar. Zaman aşımı saniye cinsinden ayarlanır. Bir zaman aşımı oluşursa Edge Mikro Ağ Geçidi 504 durum koduyla yanıt verir. (v2.4.x eklendi)
  • keep_alive_timeout: Bu özellik, Edge Microgateway zaman aşımını (milisaniye cinsinden) ayarlamanızı sağlar. (Varsayılan: 5 saniye) (Sürüm 3.0.6 eklendi)
  • headers_timeout: Bu özellik, HTTP ayrıştırıcının tam HTTP üst bilgilerini almak için bekleyeceği süreyi (milisaniye cinsinden) sınırlar.

    Örneğin:

    edgemicro:
      keep_alive_timeout: 6000
      headers_timeout: 12000

    Parametre, dahili olarak isteklerde Node.js Server.headersTimeout özelliğini ayarlar. (Varsayılan: edgemicro.keep_alive_timeout ile ayarlanan süreden 5 saniye fazla. Bu varsayılan ayar, yük dengeleyicilerin veya proxy'lerin bağlantıyı yanlışlıkla kesmesini önler.) (Sürüm 3.1.1 eklendi)

  • noRuleMatchAction: (Dize) accesscontrol eklentisinde belirtilen eşleşme kuralı çözümlenmemişse (eşleşmemiyorsa) yapılacak işlem (erişime izin verme veya erişimi reddetme). Geçerli değerler: ALLOW veya DENY Varsayılan: ALLOW (Eklenme: v3.1.7)
  • enableAnalytics: (varsayılan: true) Analiz eklentisinin yüklenmesini önlemek için özelliği false olarak ayarlayın. Bu durumda Apigee Edge Analytics'e çağrı yapılmaz. true değerine ayarlanırsa veya bu özellik sağlanmazsa Analytics eklentisi her zamanki gibi çalışır. Ayrıntılar için edgemicro özelliklerine bakın. (Sürüm 3.1.8 eklendi).

    Örnek:

    edgemicro
      enableAnalytics=false|true
  • on_target_response_abort: Bu özellik, istemci (Edge Microgateway) ile hedef sunucu arasındaki bağlantı erken kapanırsa Edge Microgateway'in nasıl davranacağını kontrol etmenizi sağlar.
    Değer Açıklama
    Varsayılan on_target_response_abort belirtilmezse varsayılan davranış, hata göstermeden yanıtı kesmektir. Günlük dosyalarında, targetResponse aborted ve 502 yanıt kodu içeren bir uyarı mesajı gösterilir.
    appendErrorToClientResponseBody TargetResponseAborted özel hatası, istemciye döndürülür. Günlük dosyalarında, targetResponse aborted ve 502 yanıt kodu içeren bir uyarı mesajı gösterilir. Ayrıca TargetResponseAborted hatası, Target response ended prematurely. mesajıyla birlikte günlüğe kaydedilir.
    abortClientRequest Edge Microgateway isteği iptal eder ve günlük dosyalarına bir uyarı yazılır: TargetResponseAborted ve 502 istek durum kodu.

Örnek:

edgemicro:
 on_target_response_abort: appendErrorToClientResponseBody | abortClientRequest

başlık özellikleri

Bu ayarlar belirli HTTP üstbilgilerinin nasıl ele alınacağını yapılandırır.

  • x-forwarded-for: (varsayılan: true) x-forwarded-for üstbilgilerinin hedefe iletilmesini önlemek için false olarak ayarlayın. İstekte x-forwarded-for başlığı varsa değerinin Edge Analytics'teki istemci IP'si olarak ayarlanacağını unutmayın.
  • x-forwarded-host: (varsayılan: true) x-forwarded-host başlıklarının hedefe aktarılmasını önlemek için false olarak ayarlayın.
  • x-request-id: (varsayılan: true) x-request-id üstbilgilerinin hedefe iletilmesini önlemek için false olarak ayarlayın.
  • x-Response-time: (varsayılan: true) x-Response-time başlıklarının hedefe aktarılmasını önlemek için false olarak ayarlayın.
  • via: (varsayılan: true) Üstbilgiler aracılığıyla hedefe iletilmesini önlemek için false olarak ayarlayın.

oauth özellikleri

Bu ayarlar, istemci kimlik doğrulamasının Edge Mikro Ağ Geçidi tarafından nasıl zorunlu kılınacağını yapılandırır.

  • allowNoAuthorization: (varsayılan: false) Doğru değerine ayarlanırsa API çağrılarının herhangi bir Yetkilendirme başlığı olmadan Edge Mikro Ağ Geçidi'nden geçmesine izin verilir. Yetkilendirme üst bilgisini zorunlu kılmak için bunu false (yanlış) değerine ayarlayın (varsayılan).
  • allowInvalidAuthorization: (varsayılan: false) Doğru değerine ayarlanırsa Yetkilendirme başlığında iletilen jetonun geçersiz olması veya süresinin dolması halinde API çağrılarının geçmesine izin verilir. Geçerli jetonları zorunlu kılmak için (varsayılan) bu değeri false olarak ayarlayın.
  • authorization-header: (varsayılan: Yetkilendirme: Bearer) Erişim jetonunu Edge Mikro Ağ Geçidi'ne göndermek için kullanılan başlık. Hedefin başka bir amaçla Yetkilendirme başlığını kullanması gerektiği durumlarda varsayılan değeri değiştirmek isteyebilirsiniz.
  • api-key-header: (varsayılan: x-api-key) Edge Mikro Ağ Geçidi'ne bir API anahtarı iletmek için kullanılan üstbilgi veya sorgu parametresinin adı. API anahtarı kullanma bölümüne de göz atın.
  • keep-authorization-header: (default: false) Doğru değerine ayarlanırsa istekte gönderilen Yetkilendirme başlığı hedefe aktarılır (korunur).
  • allowOAuthOnly -- Doğru değerine ayarlanırsa her API'nin, Taşıyıcı Erişim Jetonu içeren bir Yetkilendirme başlığı taşıması gerekir. Yalnızca OAuth güvenlik modeline izin vermenize olanak tanır (geriye dönük uyumluluğu korurken). (2.4.x eklendi)
  • allowAPIKeyOnly -- Doğru değerine ayarlanırsa her API, API Anahtarına sahip bir x-api-key başlığı (veya özel bir konum) taşır.Yalnızca API anahtarı güvenlik modeline izin vermenize olanak tanır (geriye dönük uyumluluğu korurken). (2.4.x sürümü eklendi)
  • gracePeriod - Bu parametre, sistem saatiniz ile JWT yetkilendirme jetonunda belirtilen Öncesi (nbf) veya Yayınlanma zamanı (iat) zamanları arasındaki küçük tutarsızlıkların neden olduğu hataları önlemeye yardımcı olur. Bu tür tutarsızlıklara izin vermek için bu parametreyi saniye sayısına ayarlayın. (Ek 2.5.7)

Eklentiye özgü özellikler

Her bir eklentinin yapılandırılabilir özellikleriyle ilgili ayrıntılar için Eklentileri kullanma konusuna bakın.

Proxy'leri filtreleme

Bir Edge Microgateway örneğinin hangi mikro ağ geçidi duyarlı proxy'leri işleyeceğini filtreleyebilirsiniz. Edge Mikro Ağ Geçidi başladığında, ilişkili olduğu kuruluştaki mikro ağ geçidi duyarlı tüm proxy'leri indirir. Mikro ağ geçidinin hangi proxy'leri işleyeceğini sınırlamak için aşağıdaki yapılandırmayı kullanın. Örneğin, bu yapılandırma, mikro ağ geçidinin işleyeceği proxy'leri üç taneyle sınırlandırır: edgemicro_proxy-1, edgemicro_proxy-2 ve edgemicro_proxy-3:

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

Ürünleri ada göre filtreleme

Edge Microgateway'in indirdiği ve işlediği API ürünlerinin sayısını sınırlandırmak için aşağıdaki yapılandırmayı kullanın. İndirilen ürünleri filtrelemek için Edge Microgateway *.config.yaml dosyasında listelenen /products API'ye productnamefilter sorgu parametresini ekleyin. Ö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 parametresinin değerinin normal ifade biçiminde belirtilmesi ve URL kodlamalı olması gerektiğini unutmayın. Örneğin ^[Ee]dgemicro.*$ normal ifadesi, "edgemicro-test-1" , "edgemicro_demo" ve "Edgemicro_New_Demo" gibi adları yakalar. Sorgu parametresinde kullanıma uygun olan URL kodlamalı değer şudur: %5E%5BEe%5Ddgemicro.%2A%24.

Aşağıdaki hata ayıklama çıkışı, yalnızca filtrelenmiş ürünlerin indirildiğini gösterir:

...
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":[

         ]
      }
   ]
}

Ürünleri özel özelliklere göre filtreleme

Ürünleri özel özelliklere göre filtrelemek için:

  1. Edge kullanıcı arayüzünde, Edge Mikro Ağ Geçidi'ni yapılandırdığınız kuruluşta/ortamda edgemicro_auth proxy'sini seçin.
  2. "Geliştirme" dokunuşunda, düzenleyicide JavaScript politikasını açın.
  3. Özellik adlarının virgülle ayrılmış listesini içeren products.filter.attributes anahtarını içeren özel bir özellik ekleyin. Yalnızca özel özellik adlarından herhangi birini içeren ürünler Edge Mikro Ağ Geçidi'ne döndürülür.
  4. İsteğe bağlı olarak products.filter.env.enable özel özelliğini false olarak ayarlayarak ürünün mevcut ortam için etkinleştirilip etkinleştirilmediğini görmek üzere kontrolü devre dışı bırakabilirsiniz. (Varsayılan, true'dur.)
  5. (Yalnızca Private Cloud) Private Cloud için Edge kullanıyorsanız CPS dışı ortamlara yönelik ürünleri çekmek için org.noncps özelliğini true olarak ayarlayın.
  6. Örneğin:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <JavaCallout async="false" continueOnError="false" enabled="true" name="JavaCallout">
        <DisplayName>JavaCallout</DisplayName>
        <FaultRules/>
        <Properties>
            <Property name="products.filter.attributes">attrib.one, attrib.two</Property>
            <Property name="products.filter.env.enable">false</Property>
            <Property name="org.noncps">true</Property>
        </Properties>
        <ClassName>io.apigee.microgateway.javacallout.Callout</ClassName>
        <ResourceURL>java://micro-gateway-products-javacallout-2.0.0.jar</ResourceURL>
    </JavaCallout>
    

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

Edge Microgateway'in Apigee'ye analiz verisi gönderme sıklığını kontrol etmek için şu yapılandırma parametrelerini kullanın:

  • bufferSize (İsteğe bağlı): En eski kayıtları bırakmaya başlamadan önce arabelleğin tutabileceği maksimum analiz kaydı sayısı. Varsayılan: 10.000
  • batchSize (İsteğe bağlı): Apigee'ye gönderilen analiz kaydı grubunun maksimum boyutu. Varsayılan: 500
  • flushInterval (İsteğe bağlı): Apigee'ye gönderilen analiz kaydı grubunun her bir boşaltma işlemi arasındaki milisaniye sayısı. 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 analizinde gösterilmesini engeller. İstek URI'sını ve/veya istek yolunu maskelemek için mikro ağ geçidi yapılandırmasına aşağıdakileri ekleyin. URI'nın, isteğin ana makine adı 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ıracak şekilde yapılandırarak Edge Analytics kontrol panellerinde ayrı bir proxy olarak görünmesini sağlayabilirsiniz. Örneğin, kontrol panelindeki bir durum denetimi API'sini gerçek API proxy çağrılarıyla karıştırmamak için ayırabilirsiniz. Analytics kontrol panelinde, ayrılmış proxy'ler şu adlandırma kalıbını izler:

edgemicro_proxyname-health

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

Analytics kontrol panelindeki göreli ve mutlak yolları, ayrı proxy'ler olarak ayırmak için bu parametreleri kullanın:

  • relativePath (İsteğe bağlı): Analytics kontrol panelinde ayrılacak göreli bir yolu belirtir. Örneğin, /healthcheck belirtirseniz /healthcheck yolunu içeren tüm API çağrıları, kontrol panelinde edgemicro_proxyname-health olarak gösterilir. Bu işaretin proxy Basepath'i yoksaydığını unutmayın. Basepath dahil olmak üzere tam yola göre ayırma yapmak için proxyPath işaretini kullanın.
  • proxyPath (İsteğe bağlı): Analiz kontrol panelinde ayırmak için proxy temel yolu dahil olmak üzere tam bir API proxy yolunu belirtir. Örneğin, /mocktarget proxy temel yolu olmak üzere /mocktarget/healthcheck belirtirseniz /mocktarget/healthcheck yoluna sahip tüm API çağrıları kontrol panelinde edgemicro_proxyname-health olarak gösterilir.

Örneğin, aşağıdaki yapılandırmada /healthcheck içeren tüm API yolları analiz eklentisi tarafından ayrılacaktır. Yani /foo/healthcheck ve /foo/bar/healthcheck, analiz kontrol panelinde edgemicro_proxyname-health adlı 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 analiz kontrol panelinde edgemicro_proxyname-health adlı ayrı bir proxy olarak ayrılacaktır.

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 bir şirket güvenlik duvarının arkasında kurma

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 kullanmak için aşağıdakileri yapın:

  1. HTTP_PROXY, HTTPS_PROXY ve NO_PROXY ortam değişkenlerini ayarlayın. Bu değişkenler, Apigee Edge ile iletişimde kullanmak istediğiniz veya Apigee Edge ile iletişimi desteklememesi gereken her bir HTTP proxy'nin ana makinelerini kontrol eder. Örneğin:
    export HTTP_PROXY='http://localhost:3786'
    export HTTPS_PROXY='https://localhost:3786'
    export NO_PROXY='localhost,localhost:8080'

    NO_PROXY değerinin, Edge Microgateway'in proxy yapmaması gereken alan adlarının virgülle ayrılmış listesi olabileceğini unutmayın.

    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 Mikro Ağ Geçidi'ni yeniden başlatın.

Hedef iletişim için HTTP proxy kullanma

3.1.2 sürümünde eklendi.

Edge Mikro Ağ Geçidi ile arka uç hedefleri arasında iletişim kurmak için HTTP proxy kullanmak üzere aşağıdakileri yapın:

  1. microgateway 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ı) Edge Microgateway, doğru olduğunda tek bir TCP bağlantısı üzerinden HTTP isteklerine tünel vermek için HTTP CONNECT yöntemini kullanır. (Aşağıda belirtildiği gibi, proxy'yi yapılandırmak için ortam değişkenlerinin TLS etkinleştirilmiş olduğu durumlarda da aynı durum söz konusudur.) Varsayılan: false
    • url: HTTP proxy URL'si.
    • bypass: (İsteğe bağlı) HTTP proxy'yi atlaması gereken bir veya daha fazla virgülle ayrılmış hedef ana makine URL'sini belirtir. Bu özellik ayarlanmazsa hangi hedef URL'lerin atlanacağını belirtmek için NO_PROXY ortam değişkenini kullanın.
    • enabled: 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 ve HTTPS_PROXY HTTP proxy ortamı değişkenlerinde belirtilen proxy'leri Apigee Edge ile iletişim için HTTP proxy kullanma bölümünde açıklandığı gibi kullanın.

    Örneğin:

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

  2. Edge Mikro Ağ Geçidi'ni yeniden başlatın.

Mikro ağ geçidi duyarlı proxy'lerde joker karakterler kullanma

edgemicro_* (Mikro ağ geçidine duyarlı) proxy'nin temel yolunda bir veya daha fazla "*" joker karakteri kullanabilirsiniz. Örneğin, temel bir /team/*/members yolu, yeni ekipleri desteklemek için yeni API proxy'leri oluşturmanıza gerek kalmadan istemcilerin https://[host]/team/blue/members ve https://[host]/team/green/members adreslerini çağırmasına olanak tanır. /**/ özelliğinin desteklenmediğini unutmayın.

Önemli: Apigee, temel yolun ilk öğesi olarak "*" joker karakterini kullanmayı DESTEKLEMEZ. Örneğin şu DESTEKLENMEZ: /*/ araması.

JWT anahtarlarını döndürme

JWT'yi ilk oluşturmanızın ardından bir süre sonra, Edge şifreli KVM'de depolanan herkese açık/özel anahtar çiftini değiştirmeniz gerekebilir. Bu yeni anahtar çifti oluşturma sürecine anahtar rotasyonu adı verilir.

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

JSON Web Token (JWT), RFC7519 başlıklı makalede açıklanan bir jeton standardıdır. JWT, JWT'nin alıcısı tarafından güvenilir şekilde doğrulanabilen hak taleplerini imzalamanın bir yolunu sunar.

CLI kullanarak bir JWT oluşturabilir ve bu JWT'yi, API anahtarı yerine API çağrılarının Yetkilendirme başlığında kullanabilirsiniz. Örneğin:

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

KSA ile JWT oluşturma hakkında bilgi edinmek için Jeton oluşturma bölümüne bakın.

Anahtar rotasyonu nedir?

JWT'yi ilk oluşturmanızın ardından bir süre sonra, Edge şifreli KVM'de depolanan herkese açık/özel anahtar çiftini değiştirmeniz gerekebilir. Bu yeni anahtar çifti oluşturma sürecine anahtar rotasyonu adı verilir. Anahtarları döndürdüğünüzde yeni bir özel/ortak anahtar çifti oluşturulur ve Apigee Edge kuruluşunuzdaki/ortamınızdaki "microgateway" KVM'sinde yeni bir özel/ortak anahtar çifti oluşturulur ve depolanır. Ayrıca, eski ortak anahtar, orijinal anahtar kimliği değeriyle birlikte korunur.

Edge, JWT oluşturmak için şifrelenmiş KVM'de depolanan bilgileri kullanır. Edge Mikro Ağ Geçidi'ni ilk kez kurarken (yapılandırılmış) microgateway adlı bir KVM oluşturuldu ve anahtarlarla doldurulur. KVM'deki anahtarlar bir JWT'yi imzalamak ve şifrelemek için kullanılır.

KVM anahtarları şunları içerir:

  • private_key: JWT'leri imzalamak için kullanılan en son (en son oluşturulan) RSA özel anahtarı.

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

  • private_key_kid - En son (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, private_key1 değeriyle ilişkilendirilir ve anahtar rotasyonunu desteklemek için kullanılır. Bu değer, özel anahtar alt öğesiyle aynıdır.

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

Anahtar rotasyonu gerçekleştirdiğinizde, mevcut anahtar değerleri haritada değiştirilir ve eski ortak anahtarları korumak için yeni anahtarlar eklenir. Örneğin:

  • public_key2_kid - Eski ortak anahtar kimliği. Bu anahtar, private_key2 değeriyle ilişkilendirilir ve anahtar rotasyonunu desteklemek için kullanılır.

  • public_key2 - Eski ortak anahtar.

Doğrulamaya sunulan JWT'ler yeni ortak anahtar kullanılarak doğrulanır. Doğrulama başarısız olursa JWT'nin süresi dolana kadar (jeton_expiry* aralığından sonra, varsayılan olarak 30 dakika) eski ortak anahtar kullanılır. Bu sayede, API trafiğini hemen kesintiye uğratmadan anahtarları "döndürebilirsiniz".

Anahtar rotasyonu nasıl yapılır?

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

  1. KVM'yi yükseltmek için edgemicro upgradekvm komutunu kullanın. Bu komutu çalıştırmayla ilgili ayrıntılar için KVM'yi yükseltme bölümüne bakın. Bu adımı yalnızca bir kez yapmanız yeterlidir.
  2. edgemicro-oauth proxy'sini yeni sürüme geçirmek için edgemicro upgradeauth komutunu kullanın. Bu komutu çalıştırmayla ilgili ayrıntılar için Uç mikro kimlik doğrulama proxy'sini yükseltme bölümüne bakın. Bu adımı yalnızca bir kez yapmanız yeterlidir.
  3. Aşağıdaki satırı ~/.edgemicro/org-env-config.yaml dosyanıza ekleyin. Burada, mikro ağ geçidini kullanacak şekilde yapılandırdığınız kuruluşu ve ortamı belirtmeniz gerekir:
    jwk_public_keys: 'https://$ORG-$ENV.apigee.net/edgemicro-auth/jwkPublicKeys'
  4. Anahtarları döndürmek için tuş döndürme komutunu çalıştırın. Bu komutla ilgili ayrıntılar için Döndürme anahtarları bölümüne bakın.

    edgemicro rotatekey -o $ORG -e $ENV -k $KEY -s $SECRET

    Örneğin:

    edgemicro rotatekey -o docs -e test \
    -k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \
    -s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
    

Anahtar döndürme işleminden sonra Edge, Edge Mikro Ağ Geçidi'ne birden fazla anahtar döndürür. Aşağıdaki örnekte her anahtarın benzersiz bir "kid" (Anahtar kimliği) değerine sahip olduğunu unutmayın. Daha sonra mikro ağ geçidi, yetkilendirme jetonlarını doğrulamak için bu anahtarları kullanır. Jeton doğrulaması başarısız olursa mikro ağ geçidi, anahtar kümesinde daha eski bir anahtar olup olmadığını kontrol eder ve bu anahtarı dener. Döndürülen anahtarların biçimi JSON Web Key (JWK) şeklindedir. Bu biçim hakkında daha fazla bilgiyi RFC 7517'de bulabilirsiniz.

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

"Daha önce değil" gecikmesini yapılandırma

3.1.5 ve önceki sürümlerde rotatekey komutu tarafından oluşturulan yeni özel anahtar hemen geçerli oldu ve oluşturulan yeni jetonlar yeni özel anahtarla imzalandı. Bununla birlikte, yeni ortak anahtar, Edge Mikro Ağ Geçidi örneklerine yalnızca mikro ağ geçidi yapılandırması yenilendiğinde yalnızca 10 dakikada bir (varsayılan olarak) sunulmaktadır. Jeton imzalama işlemi ile mikro ağ geçidi örnek yenilemesi arasındaki bu gecikme nedeniyle, en son anahtarla imzalanan jetonlar, tüm örnekler ortak en son anahtarı alana kadar reddedilir.

Birden fazla mikro ağ geçidi örneğinin mevcut olduğu durumlarda, jeton doğrulaması bir örnekten geçip tüm örnekler yenilenene kadar başka bir örnekte başarısız olduğundan, ortak anahtar gecikmesi bazen durum 403 içeren aralıklı çalışma zamanı hatalarına neden oluyordu.

3.1.6 sürümünden itibaren, rotatekey komutuna eklenen yeni bir işaret, yeni özel anahtarın etkili olması için bir gecikme belirtmenizi sağlar. Bu sayede, tüm mikro ağ geçidi örneklerinin yenilenmesi ve yeni ortak anahtarı alması için zaman sağlanır. Yeni bayrak, "daha önce değil" anlamına gelen --nbf işaretidir. Bu işaret, bir tam sayı değeri (dakika cinsinden gecikme sayısı) alır.

Aşağıdaki örnekte, gecikme 15 dakikaya ayarlanmıştır:

edgemicro rotatekey -o docs -e test \
-k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \
-s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47 \
--nbf 15

Gecikmeyi varsayılan olarak 10 dakika olan config_change_poll_internal yapılandırma ayarından daha fazla olacak şekilde ayarlamak iyi bir uygulamadır. edgemicro özellikleri konusunu da inceleyin.

İndirilen proxy'leri filtreleme

Edge Mikro Ağ Geçidi varsayılan olarak, Edge kuruluşunuzda "edgemicro_" adlandırma önekiyle başlayan tüm proxy'leri indirir. Bu varsayılan değeri değiştirerek, adı bir kalıpla eşleşen proxy'leri indirebilirsiniz.

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

API proxy'leri olmadan ürünleri 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, kuruluşunuzda dağıtılan herhangi bir proxy ile çalışmasına olanak tanır. Edge Microgateway, 2.5.4 sürümünden itibaren bu ürün yapılandırmasını destekler.

Hata ayıklama ve sorun giderme

Hata ayıklayıcıya bağlanma

Edge Microgateway'i düğüm inceleyici gibi bir hata ayıklayıcıyla çalıştırabilirsiniz. Bu işlem, özel eklentilerle ilgili sorunları gidermek ve hata ayıklamak için yararlıdır.

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

    Hata ayıklama çıkışı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 Microgateway kodu üzerinde adım adım çalışabilir, kesme noktaları ayarlayabilir, ifadeler izleyebilir ve daha pek çok işlem yapabilirsiniz.

Hata ayıklama moduyla ilgili standart Node.js işaretlerini belirtebilirsiniz. Örneğin --nolazy, eşzamansız kodda hata ayıklamaya 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. Ayrıntılar için Günlük dosyalarını yönetme sayfasına bakın.

API anahtarı güvenliğini kullanma

API anahtarları, Edge Microgateway'e istekte bulunan istemcilerin kimliğini doğrulamak için basit bir mekanizma sağlar. Edge Microgateway kimlik doğrulama proxy'sini içeren bir Apigee Edge ürününden Tüketici Anahtarı (İstemci Kimliği olarak da adlandırılır) değerini kopyalayarak API anahtarı alabilirsiniz.

Anahtarların önbelleğe alınması

API anahtarları, önbelleğe alınan hamiline ait jetonlarla değiştirilir. Edge Mikro Ağ Geçidi'ne gelen isteklerde Cache-Control: no-cache üst bilgisini ayarlayarak önbelleğe almayı devre dışı bırakabilirsiniz.

Bir API anahtarını kullanma

Bir API isteğindeki API anahtarını sorgu parametresi veya başlık olarak aktarabilirsiniz. Varsayılan olarak üst bilgi ve 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, API anahtarı başlığı ve sorgu parametresi için kullanılan addır. Bu varsayılan ayarı, Yapılandırma değişiklikleri yapma bölümünde açıklandığı şekilde yapılandırma dosyasında değiştirebilirsiniz. Örneğin, adı apiKey olarak değiştirmek için:

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. x-api-key adı her iki durumda da artık çalışmayacak. Yapılandırma değişiklikleri yapma bölümüne de göz atın.

Örneğin:

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

Proxy istekleriyle API anahtarları kullanma hakkında daha fazla bilgi için Secure Edge Mikro Ağ Geçidi sayfasına bakın.

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

Yanıt 200 durumu değilse oauth eklentisi varsayılan olarak yalnızca 4xx hata durum kodlarını döndürür. Bu davranışı, hataya bağlı olarak her zaman tam 4xx veya 5xx kodunu döndürecek şekilde değiştirebilirsiniz.

Bu özelliği etkinleştirmek için Edge Mikro Ağ Geçidi yapılandırmanıza oauth.useUpstreamResponse: true özelliğini 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ı, mikro ağ geçidi üzerinden güvenli API çağrıları yapmak için kullanılır. Yenileme jetonları, yeni erişim jetonları almak için kullanılır.

Erişim jetonu alma

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 erişim jetonu alabilirsiniz. KSA ile ilgili ayrıntılı bilgi için Jetonları yönetme bölümünü inceleyin.

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

URL'de kuruluş ve ortam adlarınızı değiştirin ve Apigee Edge'deki bir geliştirici uygulamasından alınan Tüketici Kimliği ve Tüketici Sırrı değerlerini client_id ve client_secret gövde parametreleriyle değiştirin:

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 Basic Auth üstbilgisinde gönderme

İstemci kimlik bilgilerini Temel Kimlik Doğrulama başlığı olarak, grant_type değerini ise form parametresi olarak gönderin. Bu komut formu, RFC 6749: OAuth 2.0 Yetkilendirme Çerçevesi makalesinde de ele alınmıştır.

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 access_token özellikleri arasında fark olmadığını unutmayın. Bu iki seçenekten birini kullanabilirsiniz. expires_in değerinin saniye cinsinden belirtilen bir tam sayı değeri olduğunu unutmayın.
{
"token": "eyJraWQiOiIxIiwidHlwIjoi",
"access_token": "eyJraWQiOiIxIiwid",
"token_type": "bearer",
"expires_in": 1799
}

Yenileme jetonu nasıl alınır?

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

  1. /token API ile erişim elde edin ve jetonu yenileyin. İzin türünün password olduğunu unutmayın:
    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 buna benzer. expires_in değerinin tam sayı olduğunu ve saniye cinsinden belirtildiğini unutmayın.

    {
        "token": "your-access-token",
        "access_token": "your-access-token",
        "token_type": "bearer",
        "expires_in": 108,
        "refresh_token": "your-refresh-token",
        "refresh_token_expires_in": 431,
        "refresh_token_issued_at": "1562087304302",
        "refresh_token_status": "approved"
    }
  2. Artık aynı API'nin /refresh uç noktasını çağırarak yeni bir erişim jetonu almak için yenileme jetonunu kullanabilirsiniz. Ö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"
        }

Süresiz izleme

Forever, işlemin kesintiye uğraması veya hata oluşması durumunda Node.js uygulamasını otomatik olarak yeniden başlatan bir Node.js aracıdır. Edge Microgateway'de, Edge Microgateway'in kaç kez ve hangi aralıklarla yeniden başlatılması gerektiğini kontrol etmek için yapılandırabileceğiniz bir forever.json dosyası bulunur. Bu dosya, forever-monitor adı verilen ve Forever programatik olarak yönetilen Forever hizmetini yapılandırır.

forever.json dosyasını Edge Microgateway kök yükleme dizininde bulabilirsiniz. Edge Microgateway nerede kurulu? bölümüne bakın. Yapılandırma seçenekleriyle ilgili ayrıntılar için forever-monitor belgelerine bakın.

edgemicro forever komutu, forever.json dosyasının konumunu (-f işareti) belirtmenizi ve Sonsuza kadar izleme sürecini (-a işareti) başlatmanızı/durdurmanızı sağlayan işaretler içerir. Örneğin:

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

Daha fazla bilgi için KSA referansındaki Sonsuza kadar 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 bu örneklerin yapılandırmalarını tek bir konumdan yönetmek isteyebilirsiniz. Bunu, Edge Micro'nun yapılandırma dosyasını indirebileceği bir HTTP uç noktası belirterek yapabilirsiniz. Bu uç noktayı, -u işaretini kullanarak Edge Micro'yu başlattığınızda belirtebilirsiniz.

Ö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, varsayılan olarak ~/.edgemicro bölgesinde bulunan ve adlandırma kuralına sahip olan dosyadır: org-env-config.yaml.

TCP bağlantısı verilerini arabelleğe almayı devre dışı bırakma

Edge Microgateway tarafından kullanılan TCP bağlantıları için veri arabelleğe almayı devre dışı bırakmak için nodelay yapılandırma özelliğini kullanabilirsiniz.

Varsayılan olarak TCP bağlantıları, verileri göndermeden önce arabelleğe almak için Nagle algoritmasını kullanır. nodelay değerinin true olarak ayarlanması, bu davranışı devre dışı bırakır (socket.write() her çağrıldığında veriler hemen verileri tetikler). Daha ayrıntılı bilgi için Node.js belgelerini de inceleyin.

nodelay hizmetini 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

Edge Microgateway'i herhangi bir Apigee Edge bağımlılığından tamamen bağlantısı kesilmiş halde çalıştırabilirsiniz. Bağımsız mod olarak adlandırılan bu senaryo, Edge Microgateway'i internet bağlantısı olmadan çalıştırmanıza ve test etmenize olanak tanır.

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

  • OAuth ve API anahtarı
  • Kota
  • Analizler

Diğer yandan, özel eklentiler ve artış durdurma değeri Apigee Edge ile bağlantı gerektirmedikleri için normal şekilde çalışır. Ayrıca, extauth adlı yeni eklenti, bağımsız moddayken bir JWT ile mikro ağ geçidine yapılan API çağrılarını yetkilendirmenize olanak tanır.

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

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

  1. Şu şekilde 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. Şu ortam değişkenini "1" değeriyle dışa aktarın:
    export EDGEMICRO_LOCAL=1
  4. Yerel proxy'yi örneklendirmek için değerler sağladığınız aşağıdaki start komutunu yürütün:
    edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \
      -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH

    Burada:

    • $ORG, yapılandırma dosyası adında kullandığınız "kuruluş" adıdır.
    • $ENV, yapılandırma dosyası adında kullandığınız "env" adıdır.
    • $LOCAL_PROXY_NAME, oluşturulacak yerel proxy'nin adıdır. İstediğiniz adı kullanabilirsiniz.
    • $LOCAL_PROXY_VERSION, proxy'nin sürüm numarasıdır.
    • $TARGET_URL, proxy hedefinin URL'sidir. (Hedef, proxy'nin çağırdığı hizmettir.)
    • $BASE_PATH, proxy'nin temel yoludur. Bu değer eğik çizgiyle başlamalıdır. Kök taban yolu için yalnızca öne eğik çizgi belirtin (ör. "/").

    Ö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ğundan "missing_authorization" hatası alırsınız. Bu eklenti, API çağrısının Yetkilendirme başlığında olması gereken bir JWT'yi doğrular. Sonraki bölümde API çağrılarının hatasız olarak yapılmasını sağlayacak bir JWT alacaksınız.

Örnek: Yetkilendirme jetonu alma

Aşağıdaki örnekte, Apigee Edge'deki (edgemicro-auth/jwkPublicKeys) Edge Microgateway JWT uç noktasından nasıl JWT alabileceğiniz gösterilmektedir. Bu uç nokta, Edge Mikro Ağ Geçidi'nin standart kurulumunu ve yapılandırmasını gerçekleştirdiğinizde dağıtılır. JWT'yi Apigee uç noktasından almak için önce standart Edge Microgateway kurulumunu yapmanız ve internete bağlı olmanız gerekir. Apigee uç noktası burada yalnızca örnek amacıyla kullanılır, zorunlu değildir. İsterseniz başka bir JWT jetonu uç noktası kullanabilirsiniz. Bu uç nokta için sağlanan API'yi kullanarak JWT'yi edinmeniz gerekir.

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

  1. edgemicro-auth proxy'sini Apigee Edge'de kuruluşunuza/ortamınıza dağıtmak için Edge Microgateway'in standart kurulumunu ve yapılandırmasını gerçekleştirmeniz gerekir. Bu adımı daha önce uyguladıysanız tekrarlamanız gerekmez.
  2. Edge Mikro Ağ Geçidi'ni Apigee Cloud'a dağıttıysanız bu uç noktadan bir JWT almak için internete bağlı olmanız gerekir.
  3. Edge Mikro Ağ Geçidi'ni durdurma:
    edgemicro stop
  4. Daha önce oluşturduğunuz yapılandırma dosyasında ($HOME/.edgemicro/org-env-config.yaml), extauth:publickey_url özelliğini Apigee Edge kuruluşunuzdaki/ortamınızdaki edgemicro-auth/jwkPublicKeys uç noktasına yönlendirin. Ö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 JWT jetonu alın. edgemicro-auth/jwkPublicKeys uç noktasını kullandığınız için şu CLI komutunu kullanabilirsiniz:

edgemicro token komutunu veya bir API'yi kullanarak Edge Microgateway için JWT oluşturabilirsiniz. Örneğin:

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

Burada:

  • your_org, Edge Microgateway'i daha önce yapılandırdığınız Apigee kuruluşunuzun adıdır.
  • your_env, kuruluştaki bir ortamdır.
  • i seçeneği, edgemicro-auth proxy'sini içeren bir ürüne sahip geliştirici uygulamasının Tüketici Anahtarını belirtir.
  • s seçeneği, edgemicro-auth proxy'sini içeren bir ürüne sahip geliştirici uygulamasının Tüketici Sırrını belirtir.

Bu komut Apigee Edge'den API çağrılarını doğrulamak için kullanılabilecek bir JWT oluşturmasını ister.

Ayrıca Jeton oluşturma konusuna da bakın.

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

Yapılandırmayı test etmek için, Yetkilendirme başlığına aşağıdaki gibi eklenmiş 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 çıktı:

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

Edge Microgateway, yerel proxy modunda Apigee Edge'de microgateway uyumlu bir proxy'nin dağıtılmasını gerektirmez. Bunun yerine, mikro ağ geçidini başlattığınızda yerel bir proxy adı, temel yol ve hedef URL sağlayarak bir "yerel proxy" yapılandırırsınız. Mikro ağ geçidine yapılan API çağrıları, daha sonra yerel proxy'nin hedef URL'sine gönderilir. Diğer tüm açılardan yerel proxy modu, Edge Microgateway'i normal modunda çalıştırmakla tam olarak aynı şekilde çalışır. Kimlik doğrulama; ani artış durdurma ve kota yaptırımı, özel eklentiler gibi farklı işlemlerle aynı şekilde çalışır.

Kullanım alanı ve örnek

Yerel proxy modu, yalnızca tek bir proxy'yi bir Edge Microgateway örneğiyle ilişkilendirmeniz gerektiğinde kullanışlıdır. Örneğin, Edge Mikro Ağ Geçidi'ni Kubernetes'e yardımcı dosya proxy olarak ekleyebilirsiniz. Burada bir mikro ağ geçidi ve bir hizmet tek bir kapsülde çalışır ve mikro ağ geçidi, tamamlayıcı hizmete gelen ve giden trafiği yönetir. Aşağıdaki şekilde, Edge Microgateway'in bir Kubernetes kümesinde yardımcı proxy olarak çalıştığı bu mimari gösterilmiştir. Her bir microgateway örneği, tamamlayıcı hizmetinde yalnızca bir uç noktaya konuşur:

Yardımcı dosya olarak Edgemicro

Bu mimari tarzının avantajlarından biri, Edge Microgateway'in Kubernetes kümesi gibi bir container ortamına dağıtılan bağımsız hizmetler için API yönetimi sağlamasıdır.

Yerel proxy modunu yapılandırma

Edge Microgateway'i yerel proxy modunda çalışacak şekilde yapılandırmak için şu adımları uygulayın:

  1. Tipik bir Edge Microgateway kurulumunda olduğu gibi, yerel yapılandırma ortamınızı ayarlamak için edgemicro init komutunu çalıştırın. Edge Mikro Ağ Geçidi'ni yapılandırma sayfasına da göz atın.
  2. edgemicro configure komutunu tipik bir Edge Microgateway kurulum prosedüründe olduğu gibi çalıştırın. Ö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 mikro ağ geçidini başlatmak için ihtiyaç duyacağınız bir anahtar ve gizli anahtarı döndürür. Yardıma ihtiyacınız olursa Edge Mikro Ağ Geçidi'ni yapılandırma sayfasına bakın.

  3. Apigee Edge'de aşağıdaki zorunlu yapılandırma gereksinimlerini yerine getirerek bir API ürünü oluşturun (diğer tüm yapılandırmaları istediğiniz gibi yönetebilirsiniz):
    • Ürüne edgemicro-auth proxy'sini eklemelisiniz. edgemicro configure çalıştırdığınızda bu proxy otomatik olarak dağıtıldı.
    • Bir kaynak yolu sağlamanız zorunludur. Apigee, ürüne şu yolu eklemenizi önerir: /**. Daha fazla bilgi edinmek için Kaynak yolunun davranışını yapılandırma bölümüne bakın. Edge belgelerinde API ürünleri oluşturma bölümüne de göz atın.
  4. Dilerseniz Apigee Edge'de bir geliştirici oluşturun veya mevcut bir geliştiriciyi kullanabilirsiniz. Yardım için Edge yönetim kullanıcı arayüzünü kullanarak geliştirici ekleme başlıklı makaleye bakın.

  5. Apigee Edge'de bir geliştirici uygulaması oluşturun. Yeni oluşturduğunuz API ürününü uygulamaya eklemeniz gerekir. Yardım için Edge yönetim kullanıcı arayüzüne uygulama kaydetme bölümüne bakın.
  6. Edge Mikro Ağ Geçidi'nin yüklü olduğu makinede, "1" değeriyle aşağıdaki ortam değişkenini dışa aktarın.
    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 bulunan bir ortam.
    • your_key, edgemicro configure komutunu çalıştırdığınızda döndürülen anahtardır.
    • your_secret, edgemicro configure komutunu çalıştırdığınızda döndürülen gizli anahtardır.
    • 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'nin (proxy'nin çağıracağı hizmet) hedefinin URL'sidir.
    • base_path, proxy'nin temel yoludur. Bu değer eğik çizgiyle başlamalıdır. Kök taban yolu için yalnızca öne eğik çizgi belirtin (ör. "/").

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

Bu ilk API çağrısı, geçerli bir API anahtarı sağlamadığınız için bir hata oluşturdu. Anahtarı, daha önce oluşturduğunuz Geliştirici uygulamasında bulabilirsiniz. Uygulamayı Edge kullanıcı arayüzünde açın, Tüketici Anahtarını kopyalayın ve bu anahtarı aşağıdaki gibi 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 çıktı:

{
  "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, Apigee Edge'den yapılandırma verilerini alıp yerel bir Redis veritabanına yazmasına olanak tanıyarak Edge Microgteway'in esnekliğini artıran isteğe bağlı bir özellik olan senkronize edicinin nasıl kullanılacağı açıklanmaktadır. Bir senkronize edici örneği çalışırken, farklı düğümlerde çalışan diğer Edge Microgateway örnekleri, yapılandırmalarını doğrudan bu veritabanından alabilir.

Senkronize edici özelliği şu anda Redis 5.0.x ile çalışacak şekilde desteklenmektedir.

Senkronize edici nedir?

Senkronize edici, Edge Mikro Ağ Geçidi için bir esneklik düzeyi sağlar. Bu API, Edge Microgateway örneklerinin her birinin aynı yapılandırmayı kullanmasını ve internet bağlantısının kesintiye uğraması durumunda Edge Microgateway örneklerinin düzgün şekilde başlatılıp çalışmasını sağlar.

Varsayılan olarak Edge Microgateway örnekleri, API proxy'si ve API ürün yapılandırmaları gibi yapılandırma verilerini almak ve yenilemek için Apigee Edge ile iletişim kurabilmelidir. Edge ile internet bağlantısı kesilirse en son yapılandırma verileri önbelleğe alındığından mikro ağ geçidi örnekleri çalışmaya devam edebilir. Ancak yeni mikro ağ geçidi örnekleri net bir bağlantı olmadan başlatılamaz. Dahası, internet kesintileri nedeniyle bir veya daha fazla mikro ağ geçidi örneği, diğer örneklerle senkronize olmayan yapılandırma bilgileriyle çalışabilir.

Edge Microgateway senkronize edici, Edge Microgateway örneklerinin API proxy trafiğini başlatmak ve işlemek için ihtiyaç duydukları yapılandırma verilerini alması için alternatif bir mekanizma sağlar. Apigee Edge'e yapılan çağrılardan alınan yapılandırma verileri şunları içerir: jwk_public_keys çağrısı, jwt_public_key çağrısı, önyükleme çağrısı ve API ürün çağrısı. Senkronize edici, farklı düğümlerde çalışan tüm Edge Microgateway örneklerinin doğru şekilde başlamasını ve Edge Microgateway ile Apigee Edge arasındaki internet bağlantısı kesilse bile senkronize durumda kalmasını sağlar.

Senkronize edici, Edge Microgateway'in özel olarak yapılandırılmış bir örneğidir. Tek amacı Apigee Edge'i yoklamak (zamanlama yapılandırılabilirdir), yapılandırma verilerini almak ve bunu yerel bir Redis veritabanına yazmaktır. Senkronize edici örneğinin kendisi API proxy trafiğini işleyemez. Edge Microgateway'in farklı düğümlerde çalışan diğer örnekleri, yapılandırma verilerini Apigee Edge yerine Redis veritabanından alacak şekilde yapılandırılabilir. Tüm microgateway örnekleri, yapılandırma verilerini yerel veritabanından aldığından, internet kesintisi olsa bile API isteklerini başlatıp işleyebilirler.

Senkronize edici örneği yapılandırma

Senkronize edici olarak kullanmak istediğiniz Edge Microgateway kurulumu için org-env/config.yaml dosyasına aşağıdaki yapılandırmayı ekleyin:

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 DB. Varsayılan: 0
redisPassword Veritabanı şifreniz.

Son olarak, yapılandırma dosyasını kaydedin ve Edge Microgateway örneğini başlatın. Apigee Edge'i yoklamaya ve indirilen yapılandırma verilerini Redis veritabanında depolamaya başlar.

Normal Edge Microgateway örneklerini yapılandırma

Senkronize edici çalışırken, API proxy trafiğini işleyen normal mikro ağ geçidi örnekleri çalıştırmak için ek Edge Microgateway düğümlerini yapılandırabilirsiniz. Ancak bu örnekleri, yapılandırma verilerini Apigee Edge yerine Redis veritabanından alacak şekilde yapılandırırsınız.

Her ek Edge Microgateway düğümünün org-env/config.yaml dosyasına aşağıdaki yapılandırmayı ekleyin. synchronizerMode özelliğinin 0 olarak ayarlandığını unutmayın. Bu özellik, örneği, API proxy trafiğini işleyen normal bir Edge Microgateway örneği olarak çalışacak şekilde ayarlar ve örnek, yapılandırma verilerini Redis veritabanından alı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 edici kullanımını desteklemek için aşağıdaki yapılandırma özellikleri eklenmiştir:

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

0 (varsayılan) değerine ayarlanırsa Edge Mikro Ağ Geçidi standart modda çalışır.

1 değerini alırsa senkronize edici olarak çalışması için Edge Microgateway örneğini başlatın. Bu modda örnek, yapılandırma verilerini Apigee Edge'den çekip yerel bir Redis veritabanında depolar. Bu örnek, API proxy isteklerini işleyemez. Bunun tek amacı, yapılandırma verileri için Apigee Edge'i yoklamak ve yerel veritabanına yazmaktır. 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ış Doğru değerine ayarlanırsa Edge Microgateway örneği, yapılandırma verilerini Apigee Edge yerine Redis veritabanından alır. Redis veritabanı, senkronize edicinin yazmak üzere yapılandırıldığı veritabanıyla aynı olmalıdır. Redis veritabanı kullanılamıyorsa veya veritabanı boşsa mikro ağ geçidi, yapılandırması için mevcut bir cache-config.yaml dosyasını arar.

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

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

Eklentiler için hariç tutulacak URL'leri yapılandırma

Mikro ağ geçidini, belirtilen URL'ler için eklentilerin işlenmesini atlayacak şekilde yapılandırabilirsiniz. Bu "hariç tut" URL'lerini global olarak (tüm eklentiler için) veya belirli eklentiler için yapılandırabilirsiniz.

Örneğin:

...
edgemicro:
  ...
  plugins:
    excludeUrls: '/hello,/proxy_one' # global exclude urls
    sequence:
      - oauth
      - json2xml
      - quota
json2xml:
  excludeUrls: '/hello/xml'  # plugin level exclude urls
...

Bu örnekte eklentiler, gelen API proxy çağrılarını /hello veya /proxy_one yollarıyla işlemez. Ayrıca, yolunda /hello/xml olan API'ler için json2xml eklentisi atlanır.

Ortam değişkeni değerlerine sahip yapılandırma özelliklerini ayarlama

Yapılandırma dosyasındaki etiketleri kullanarak ortam değişkenlerini belirtebilirsiniz. Belirtilen ortam değişkeni etiketleri, gerçek ortam değişkeni değerleriyle değiştirilir. Değişiklikler yalnızca bellekte depolanır ve orijinal yapılandırmada veya önbellek dosyalarında depolanmaz.

Bu örnekte key özelliğinin yerine TARGETS_SSL_CLIENT_KEY ortam değişkeninin değeri getirilir.

targets:
  - ssl:
      client:
        key: <E>TARGETS_SSL_CLIENT_KEY</E>
        cert: <E>TARGETS_SSL_CLIENT_CERT</E>
        passphrase: <E>TARGETS_SSL_CLIENT_PASSPHRASE</E>

Bu örnekte, <n> etiketi bir tam sayı değerini belirtmek için kullanılmıştır. Yalnızca pozitif tam sayılar desteklenir.

edgemicro:
  port: <E><n>EMG_PORT</n></E>

Bu örnekte <b> etiketi, bir boole değerini (yani, doğru veya yanlış) belirtmek için kullanılır.

quotas:
  useRedis: <E><b>EMG_USE_REDIS</b></E>