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

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

Edge Microgateway v. 3.3.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 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? başlıklı makaleyi inceleyin.

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 çalıştırı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'nin 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ılmış bir 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 bu dosyalar ve bunları değiştirme hakkında bilmeniz gerekenler ele alınmaktadır.

Varsayılan sistem yapılandırma dosyası

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

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

Buradaki prefix, npm ön ek dizinidir. Bu dizini bulamıyorsanız Edge Microgateway nerede yüklü? başlıklı makaleyi inceleyin.

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

~/.edgemicro'teki 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]'ü çalıştırdığınızda ~/.edgemicro'da dinamik bir 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 hiçbir kesinti olmadan yeniden yükleyebilirsiniz. Örneğin, bir eklenti ekleyip 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 kesinti seçeneği):

  1. Edge Microgateway 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 ("test" veya "prod" gibi).
    • $KEY, daha önce configure komutu tarafından döndürülen anahtardır.
    • $SECRET, daha önce configure 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şunuzun adıdır (kuruluş yöneticisi olmanız gerekir).
    • $ENV, kuruluşunuzdaki bir ortamdır ("test" veya "prod" gibi).
    • $KEY, daha önce configure komutu tarafından döndürülen anahtardır.
    • $SECRET, daha önce configure 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 örnek yapılandırma dosyası verilmiştir. Yapılandırma dosyası ayarları hakkında ayrıntılı bilgi için Edge Microgateway yapılandırma referansı başlıklı makaleyi inceleyin.

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ı ile Edge Microgateway'i başlatmak için gereken anahtar ve gizli anahtar aşağıdaki ortam değişkenlerinde saklanabilir:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

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

Edge Microgateway sunucusunda SSL'yi yapılandırma

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

Video Açıklama
Tek yönlü kuzeye doğru TLS'yi yapılandırma Apigee Edge Microgateway'te TLS'yi yapılandırma hakkında bilgi edinin. Bu videoda, TLS'ye ve önemine genel bir bakış sunulmakta, Edge Microgateway'te TLS tanıtılmakta ve Kuzeye Yönelik Tek Yönlü TLS'nin nasıl yapılandırılacağı gösterilmektedir.
2 yönlü kuzeye doğru TLS'yi yapılandırma Bu, Apigee Edge Microgateway'te 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.
Güney yönlü 1 yönlü ve 2 yönlü TLS'yi yapılandırma Apigee Edge mikro ağ geçidinde TLS'yi yapılandırmayla ilgili bu üçüncü videoda, güneye doğru 1 yönlü ve 2 yönlü TLS'nin nasıl yapılandırılacağı açıklanmaktadır.

Microgateway sunucusunu SSL kullanacak şekilde yapılandırabilirsiniz. Örneğin, SSL yapılandırılmışsa API'leri Edge Microgateway üzerinden "https" protokolüyle şu şekilde çağırabilirsiniz:

https://localhost:8000/myapi

Microgateway sunucusunda SSL'yi yapılandırmak için aşağıdaki 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 edinin.
  2. edgemicro:ssl özelliğini Edge Microgateway yapılandırma dosyasına 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 Microgateway'i 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.

SSL yapılandırılmışken yapılandırma dosyasının edgemicro bölümünü gösteren örnek:

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 bir pfx dosyasının yolu.
passphrase Özel anahtar veya PFX'nin şifre öbeğini içeren bir dize.
ca PEM biçiminde güvenilir sertifikaların listesini içeren bir dosyanın yolu.
ciphers Kullanılacak şifreleri ":" ile ayırarak tanımlayan bir dize.
rejectUnauthorized Doğru ise sunucu sertifikası, sağlanan CA listesi ile karşılaştırılarak 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, SSL'yi 3. sürüme zorlamak için SSLv3_method.
servername SNI (Sunucu Adı Göstergesi) TLS uzantısının sunucu adı.
requestCert 2 yönlü SSL için true (doğru), 1 yönlü SSL için false (yanlış)

İstemci SSL/TLS seçeneklerini kullanma

Edge Microgateway'i, hedef uç noktalara bağlanırken TLS veya SSL istemcisi olarak yapılandırabilirsiniz. SSL/TLS seçeneklerini ayarlamak için Microgateway yapılandırma dosyasında targets öğesini kullanın. Birden fazla hedef belirtebileceğinizi unutmayın. Aşağıda çok hedefli bir örnek verilmiştir.

Bu örnekte, tüm ana makinelere uygulanacak ayarlar verilmiştir:

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

TLS için örnek:

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 isterseniz yapılandırmadaki ilk barındırıcıyı "boş" olarak belirtmeniz gerekir. Bu, evrensel istekleri etkinleştirir ve ardından belirli barındırıcıları herhangi bir sırada belirtmeniz gerekir. Bu örnekte ayarlar birden fazla belirli ana makineye uygulanmaktadı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 listesi aşağıda verilmiştir:

Option Açıklama
pfx İstemcinin özel anahtarını, sertifikasını ve CA sertifikalarını PFX biçiminde içeren bir pfx dosyasının yolu.
key ca.key dosyasının yolu (PEM biçiminde).
passphrase Özel anahtar veya PFX'nin şifre öbeğini 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 ayırarak tanımlayan bir dize.
rejectUnauthorized Doğru ise sunucu sertifikası, sağlanan CA listesi ile karşılaştırılarak 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, SSL'yi 3. sürüme zorlamak için SSLv3_method.
servername SNI (Sunucu Adı Göstergesi) TLS uzantısının sunucu adı.

edgemicro-auth proxy'sini özelleştirme

Edge Microgateway, varsayılan olarak OAuth2 kimlik doğrulaması için Apigee Edge'de dağıtılan bir proxy kullanır. Bu proxy, edgemicro configure'ü ilk kez çalıştırdığınızda dağıtılır. JSON Web Jetonu'na (JWT) özel iddia desteği eklemek, jetonun geçerlilik süresini yapılandırmak ve yenileme jetonları oluşturmak için bu proxy'nin varsayılan yapılandırmasını değiştirebilirsiniz. Ayrıntılar için GitHub'daki edgemicro-auth sayfasına bakın.

Özel kimlik doğrulama hizmeti kullanma

Edge Microgateway, varsayılan olarak OAuth2 kimlik doğrulaması için Apigee Edge'de dağıtılan bir proxy kullanır. Bu proxy, edgemicro configure'ü 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 aşağıdaki ş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ında authUri değerini hizmetinizi 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 faydalı bilgiler sağlar.

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

Günlük dosyaları varsayılan olarak /var/tmp konumunda depolanır.

Varsayılan günlük dosya 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 başlıklı makaleyi de 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önderme

Günlük kaydını, günlük bilgilerinin günlük dosyası yerine standart çıkışa gönderilecek şekilde yapılandırabilirsiniz. to_console işaretini aşağıdaki gibi doğru olarak ayarlayın:

edgemicro:
  logging:
    to_console: true

Bu ayarda günlükler standart çıkışa gönderilir. Şu anda günlükleri hem stdout'a hem de bir günlük dosyasına 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 başlıklı makaleye bakın.

Örneğin, aşağıdaki yapılandırma günlük kaydı düzeyini debug olarak ayarlar:

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

Kayıt dosyalarının izinlerini gevşetme

Edge Microgateway, varsayılan olarak uygulama günlük dosyasını (api-log.log) dosya izin düzeyi 0600 olarak ayarlanmış şekilde 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 true olarak ayarlayın. Bu özellik true olduğunda günlük dosyası, dosya izni 0755 olarak ayarlanarak 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

Günlük dosyalarını iyileştirmeyle ilgili iyi uygulamalar

Günlük dosyası verileri zaman içinde biriktikçe Apigee aşağıdaki uygulamaları benimsemenizi önerir:

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

Her Edge Microgateway örneği, .log uzantılı 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çerikleri hakkında

Sürüm 2.3.3'te eklendi

Günlük kaydı hizmeti, varsayılan olarak indirilen proxy'lerin, ürünlerin ve JSON Web Jetonu'nun (JWT) JSON'unu atlar. Bu nesneleri konsola göndermek istiyorsanız Edge Microgateway'i başlatırken komut satırı işaretini DEBUG=* olarak 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ı bilgi içerir. "api" günlük dosyaları şu şekilde adlandırılır:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Edge Microgateway'e yapılan her istek için "api" günlük dosyasında dört etkinlik yakalanır:

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

Bu ayrı girişlerin her biri, günlük dosyalarının daha kompakt hale getirilmesine yardımcı olmak için kısaltma gösterimiyle temsil edilir. Aşağıda, dört etkinliğin her birini temsil eden dört örnek giriş verilmiştir. Günlük dosyasında bu satır numaraları aşağıdaki gibi görünür (satır numaraları yalnızca dokümanda referans olarak kullanılır, 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 düzey stats olarak ayarlanır. İstatistik kayıtları, stats_log_interval yapılandırmasıyla belirlenen düzenli bir aralıkta raporlanır. Ayrıca Günlük aralıklarını değiştirme başlıklı makaleyi de inceleyin.
  • req: Etkinliği tanımlar. Bu durumda, istemciden istek alın.
  • m: İstekte kullanılan HTTP fiili.
  • u: URL'nin ana yoldan sonraki kısmı.
  • h: Edge Microgateway'in dinlediği ana makine ve bağlantı noktası numarası.
  • r: İstemcinin isteğinin geldiği uzak ana bilgisayar 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ı istek kimliğine göre ilişkilendirmek, hedefin gecikmesi hakkında değerli bilgiler verebilir.
  • d: İsteğin Edge mikro geçidi tarafından alınmasından sonraki süre (milisaniye cinsinden). Yukarıdaki örnekte, hedefin 0. istek için yanıtı 7 milisaniye sonra (3. satır) alındı ve yanıt, 4 milisaniye daha sonra istemciye gönderildi (4. satır). Başka bir deyişle, toplam istek gecikmesi 11 milisaniyeydi. Bu sürenin 7 milisaniyelik kısmı hedef tarafından, 4 milisaniyelik kısmı ise Edge Microgateway tarafından kullanıldı.

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: 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 düzey stats olarak ayarlanır. İstatistik kayıtları, stats_log_interval yapılandırmasıyla belirlenen düzenli bir aralıkta raporlanır. Ayrıca Günlük aralıklarını değiştirme başlıklı makaleyi de inceleyin.
  • treq: Etkinliği tanımlar. Bu durumda hedef istek.
  • m: Hedef isteğinde kullanılan HTTP fiili.
  • u: URL'nin ana yoldan sonraki kısmı.
  • h: Arka uç hedefinin ana makinesi 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 düzey stats olarak ayarlanır. İstatistik kayıtları, stats_log_interval yapılandırmasıyla belirlenen düzenli bir aralıkta raporlanır. Ayrıca Günlük aralıklarını değiştirme başlıklı makaleyi de inceleyin.
  • tres: Etkinliği tanımlar. Bu durumda, hedef yanıt.
  • s: HTTP yanıt durumu.
  • d: Milisaniye cinsinden süre. Hedefin API çağrısı için harcadığı süre.
  • i: Günlük girişinin kimliği. Dört etkinlik girişinin tümü bu kimliği paylaşır.

4. Müşterilere gönderilen örnek yanıt

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 düzey stats olarak ayarlanır. İstatistik kayıtları, stats_log_interval yapılandırmasıyla belirlenen düzenli bir aralıkta raporlanır. Ayrıca Günlük aralıklarını değiştirme başlıklı makaleyi de inceleyin.
  • res: Etkinliği tanımlar. Bu durumda, müşteriye verilen yanıt.
  • s: HTTP yanıt durumu.
  • d: Milisaniye cinsinden süre. Bu, hedef API'nin ve Edge Microgateway'in harcadığı süre dahil olmak üzere API çağrısının toplam süresidir.
  • 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ıkta döndürülür. Dönüşüm aralığı sona erene kadar girişler aynı günlük dosyasına eklenmeye devam eder. Ancak Edge Microgateway her yeniden başlatıldığında yeni bir UID alır ve bu UID ile yeni bir günlük dosyası grubu oluşturur. Ayrıca Günlük dosyalarını yönetmeyle ilgili iyi uygulamalar başlıklı makaleyi inceleyin.

Hata mesajları

Bazı günlük girişleri hata mesajları içerir. Hataların nerede ve neden oluştuğunu belirlemek için Edge Microgateway hata referansı başlıklı makaleyi inceleyin.

Edge Microgateway 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 başlıklı makaleyi de inceleyin.

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 bir URL. Edge Microgateway, Apigee Edge ile iletişim kurmak için bu hizmeti kullanır. Ortak/özel anahtar çiftini oluşturma komutunu yürüttüğünüzde bu URL döndürülür: edgemicro genkeys. Ayrıntılar için Edge Microgateway'i kurma ve yapılandırma başlıklı makaleyi inceleyin.
  • jwt_public_key: (varsayılan: yok) Apigee Edge'de dağıtılan Edge Microgateway proxy'sini gösteren bir URL. Bu proxy, istemcilere imzalanmış erişim jetonları vermek için kimlik doğrulama uç noktası görevi görür. Bu URL, proxy'yi dağıtma komutunu (edgemicro configure) yürüttüğünüzde döndürülür. Ayrıntılar için Edge Microgateway'i kurma ve yapılandırma başlıklı makaleyi inceleyin.
  • 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 mülk ayarlanmazsa kota uç noktası varsayılan olarak dahili Edge Microgateway uç noktası olur.
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

edgemicro özellikleri

Bu ayarlar, Edge Microgateway işlemini yapılandırır.

  • port: (varsayılan: 8000) Edge Microgateway sürecinin dinlediği bağlantı noktası numarası.
  • max_connections: (varsayılan: -1) Edge Microgateway'ın 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'ın bağlantıyı kapatmadan önce alabileceği maksimum eşzamanlı istek sayısı. Bu ayarın amacı, hizmet reddi saldırılarını engellemektir. Genellikle max_connections değerinden daha büyük bir değere ayarlanır.
  • Günlük kaydı:
    • level: (varsayılan: error)
      • info: (Önerilen) Bir Edge Microgateway örneğinden 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 mesajlarını 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 hatalarla ilgili izleme bilgilerini günlüğe kaydeder.
      • none: Günlük dosyası oluşturulmaz.
    • 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ığı saniye cinsinden aralık.
    • rotate_interval: (varsayılan: 24) Günlük dosyalarının döndürüldüğü aralık (saat cinsinden).
  • Eklentiler: Eklentiler, Edge mikro ağ geçidine işlevsellik ekler. Eklenti geliştirme hakkında ayrıntılı bilgi için Özel eklentiler geliştirme başlıklı makaleyi inceleyin.
  • dir: ./gateway dizininden ./plugins dizinine giden göreli bir yol veya mutlak yol.
  • sequence: Edge Microgateway örneğinize eklenecek eklenti modüllerinin listesi. Modüller burada belirtildiği sırayla yürütülür.
  • debug: Edge Microgateway işlemine uzaktan hata ayıklama ekler.
    • port: 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 aralıklarla yeni bir yapılandırma yükler ve herhangi bir değişiklik olursa yeniden yükleme işlemi gerçekleştirir. Anket, Edge'de yapılan değişiklikleri (ürünlerde, mikro ağ geçidi bilinçli proxy'lerde yapılan değişiklikler 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 anketini devre dışı bırakmak için true olarak ayarlayın.
  • request_timeout: Hedef istekler için zaman aşımı ayarlar. Zaman aşımı saniye cinsinden ayarlanır. Zaman aşımı oluşursa Edge Microgateway 504 durum koduyla yanıt verir. (v2.4.x sürümünde eklendi)
  • keep_alive_timeout: Bu özellik, Edge Microgateway zaman aşım süresini (milisaniye cinsinden) belirlemenize olanak tanır. (Varsayılan: 5 saniye) (3.0.6 sürümünde eklendi)
  • headers_timeout: Bu özellik, HTTP ayrıştırıcının tüm HTTP üst bilgilerini almak için beklediği süreyi (milisaniye cinsinden) sınırlar.

    Örneğin:

    edgemicro:
      keep_alive_timeout: 6000
      headers_timeout: 12000

    Bu parametre, isteklerde Node.js Server.headersTimeout özelliğini dahili olarak ayarlar. (Varsayılan: edgemicro.keep_alive_timeout ile ayarlanan zamandan 5 saniye daha uzun. Bu varsayılan ayar, yük dengeleyicilerin veya proxy'lerin bağlantıyı yanlışlıkla düşürmesini engeller.) (3.1.1 sürümüne eklendi)

  • noRuleMatchAction: (Dize) accesscontrol eklentisinde belirtilen eşleşme kuralı çözülmezse (eşleşmezse) yapılacak işlem (erişime izin ver veya reddet). Geçerli değerler: ALLOW veya DENY Varsayılan: ALLOW (Eklendi: v3.1.7)
  • enableAnalytics: (varsayılan: true) Analytics 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 analiz eklentisi normal şekilde çalışır. Ayrıntılar için edgemicro özelliklerine bakın. (3.1.8 sürümüne 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ı kısaltmaktır. Günlük dosyalarında, targetResponse aborted ve 502 yanıt koduyla birlikte bir uyarı mesajı gösterilir.
    appendErrorToClientResponseBody İstemciye TargetResponseAborted özel hatası döndürülür. Günlük dosyalarında, targetResponse aborted ve 502 yanıt koduyla birlikte 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üğe 502 istek durumu koduyla birlikte bir uyarı yazılır: TargetResponseAborted

Örnek:

edgemicro:
 on_target_response_abort: appendErrorToClientResponseBody | abortClientRequest

başlık özellikleri

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

  • x-forwarded-for: (varsayılan: doğru) x-forwarded-for başlıkların hedefe iletilmesini önlemek için yanlış olarak ayarlayın. İstekte bir x-forwarded-for başlığı varsa değerinin Edge Analytics'teki client-ip değerine ayarlanacağını unutmayın.
  • x-forwarded-host: (varsayılan: true) x-forwarded-host başlıkların hedefe iletilmesini ö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ığının hedefe iletilmesini önlemek için false olarak ayarlayın.
  • via: (varsayılan: true) "via" üstbilgilerinin hedefe iletilmesini önlemek için false olarak ayarlayın.

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) Doğru olarak ayarlanırsa API çağrılarının Edge Microgateway'den hiç Authorization başlığı olmadan geçmesine izin verilir. Yetkilendirme başlığı gerektirmesi için bu değeri false (yanlış) olarak ayarlayın (varsayılan).
  • allowInvalidAuthorization: (varsayılan: false) Doğru değerine ayarlanırsa Authorization başlığında iletilen jeton geçersizse veya süresinin dolmuşsa API çağrılarının iletilmesine izin verilir. Geçerli jetonlar kullanılmasını zorunlu kılmak için bu değeri false (yanlış) olarak ayarlayın (varsayılan).
  • authorization-header: (varsayılan: Authorization: Bearer) Erişim jetonunu Edge Microgateway'e göndermek için kullanılan üstbilgi. Hedefin Authorization başlığını başka bir amaçla kullanması gerektiğinde varsayılan ayarı değiştirmek isteyebilirsiniz.
  • api-key-header: (varsayılan: x-api-key) Edge Microgateway'e API anahtarı geçirmek için kullanılan üstbilginin veya sorgu parametresinin adı. API anahtarını kullanma başlıklı makaleyi de inceleyin.
  • keep-authorization-header: (varsayılan: false) True olarak ayarlanırsa istekle gönderilen Authorization başlığı hedefe iletilir (korunur).
  • allowOAuthOnly: Doğru olarak ayarlanırsa her API'de, Hamiline Ait Erişim Jetonu içeren bir Authorization başlığı bulunmalıdır. Yalnızca OAuth güvenlik modeline izin vermenize olanak tanır (geriye dönük uyumluluğu koruyarak). (2.4.x sürümünde eklendi)
  • allowAPIKeyOnly: Doğru olarak ayarlanırsa her API'de API anahtarı içeren bir x-api-key başlığı (veya özel bir konum) bulunmalıdı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üne eklendi)
  • gracePeriod: Bu parametre, sistem saatiniz ile JWT yetkilendirme jetonunda belirtilen "En erken" (nbf) veya "Verilme tarihi" (iat) zamanları arasındaki küçük tutarsızlıklardan kaynaklanan hataların önlenmesine yardımcı olur. Bu parametreyi, bu tür tutarsızlıklara izin vermek için saniye sayısına ayarlayın. (2.5.7'de eklendi)

Eklenti özgü özellikler

Her eklentinin yapılandırılabilir özellikleriyle ilgili ayrıntılar için Eklentileri kullanma bölümüne bakın.

Proxy'leri filtreleme

Bir Edge Microgateway örneğinin hangi mikrogeçiş farkında proxy'leri işleyeceğini filtreleyebilirsiniz. Edge Microgateway başladığında, ilişkili olduğu kuruluştaki tüm microgateway bilinçli 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 edgemicro_proxy-1, edgemicro_proxy-2 ve edgemicro_proxy-3 ile sınırlandırır:

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

Ürünleri ada göre filtreleme

Edge Microgateway'in indirip işlediği API ürün sayısını sınırlamak için aşağıdaki yapılandırmayı kullanın. İndirilen ürünleri filtrelemek için productnamefilter Edge Microgateway *.config.yaml dosyasında listelenen /products API'ye *.config.yaml 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 olarak kodlanması gerektiğini unutmayın. Örneğin, ^[Ee]dgemicro.*$ normal ifadesi şu adları yakalar: "edgemicro-test-1" , "edgemicro_demo" ve "Edgemicro_New_Demo". Sorgu parametresinde kullanıma uygun URL olarak kodlanmış değer: %5E%5BEe%5Ddgemicro.%2A%24.

Aşağıdaki hata ayıklama çıkışında, yalnızca filtrelenen ürünlerin indirildiği gösterilmektedir:

...
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 Microgateway'i yapılandırdığınız kuruluşta/ortamda edgemicro_auth proxy'sini seçin.
  2. Geliştirme sekmesinde, düzenleyicide JavaCallout politikasını açın.
  3. Özellik adlarının virgülle ayrılmış listesini içeren products.filter.attributes anahtarıyla özel bir özellik ekleyin. Yalnızca özel özellik adlarından birini içeren ürünler Edge Microgateway'e döndürülür.
  4. İsteğe bağlı olarak, products.filter.env.enable özel özelliğini false olarak ayarlayarak ürünün geçerli ortam için etkinleştirilip etkinleştirilmediğini görmek üzere kontrolü devre dışı bırakabilirsiniz. (Varsayılan değer true'dur.)
  5. (Yalnızca Özel Bulut) Private Cloud için Edge kullanıyorsanız CPS dışı ortamlar için ürün almak üzere 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>

Ürünleri iptal durumuna göre filtreleme

API ürünlerinin üç durum kodu vardır: Beklemede, Onaylandı ve İptal Edildi. edgemicro-auth proxy'sinde JWT Değişkenleri Politikası'na allowProductStatus adlı yeni bir mülk eklendi. JWT'de listelenen API ürünlerini filtrelemek için bu özelliği kullanmak üzere:

  1. Apigee proxy düzenleyicisinde edgemicro-auth proxy'sini açın.
  2. allowProductStatus mülkünü SetJWTVariables politikasının XML'ine ekleyin ve filtrelenecek durum kodlarının virgülle ayrılmış listesini belirtin. Örneğin, Beklemede ve İptal edildi durumuna göre filtrelemek için:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript timeLimit="20000" async="false" continueOnError="false"
        enabled="true" name="Set-JWT-Variables">
        <DisplayName>Set JWT Variables</DisplayName>
        <FaultRules/>
        <Properties>
            <Property name="allowProductStatus">Pending,Revoked</Property>
        </Properties>
        <ResourceURL>jsc://set-jwt-variables.js</ResourceURL>
    </Javascript>

    Yalnızca Onaylanmış ürünlerin listelenmesini istiyorsanız mülkü aşağıdaki gibi ayarlayın:

    <Property name="allowProductStatus">Approved</Property>
  3. Proxy'yi kaydedin.

    Mülk etiketi yoksa tüm durum kodlarına sahip ürünler JWT'de listelenir.

    Bu yeni özelliği kullanmak için edgemicro-auth proxy'sini yükseltmeniz gerekir.

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

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

  • bufferSize (İsteğe bağlı): En eski kayıtları silmeye 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 bir analiz kaydı grubunun maksimum boyutu. Varsayılan: 500
  • flushInterval (İsteğe bağlı): Apigee'ye gönderilen bir analiz kaydı grubunun her bir temizlemesi 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 analizlerinde gösterilmesini engeller. İstek URI'sini ve/veya istek yolunu maskelemek için mikro geçit yapılandırmasına aşağıdakileri ekleyin. URI'nin, 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 Edge Analytics kontrol panellerinde ayrı bir proxy olarak görünecek şekilde ayıracak şekilde yapılandırabilirsiniz. Örneğin, gerçek API proxy çağrılarıyla karıştırılmasını önlemek için kontrol panelinde bir sağlık kontrolü API'sini 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 panelinde ayrılmış iki 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 aşağıdaki parametreleri kullanın:

  • relativePath (İsteğe bağlı): Analytics kontrol panelinde ayrılacak göreli bir yolu belirtir. Örneğin, /healthcheck değerini belirtirseniz /healthcheck yolunu içeren tüm API çağrıları kontrol panelinde edgemicro_proxyname-health olarak görünür. Bu işaretin proxy taban yolunu yoksadığını unutmayın. Temel yol dahil olmak üzere tam bir yola göre ayırmak için proxyPath işaretini kullanın.
  • proxyPath (İsteğe bağlı): Analiz kontrol panelinde ayrılacak proxy temel yolu da dahil olmak üzere tam bir API proxy yolunu belirtir. Örneğin, /mocktarget proxy temel yolu ise /mocktarget/healthcheck değerini belirtirseniz /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 tüm API yolları analytics eklentisi tarafından ayrılır. Bu, /foo/healthcheck ve /foo/bar/healthcheck'ün analiz kontrol panelinde edgemicro_proxyname-health adlı ayrı bir proxy olarak ayrılacağı anlamına gelir.

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ılır.

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

Edge Microgateway'i ş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 ile Apigee Edge arasındaki iletişim için HTTP proxy kullanmak istiyorsanız 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şim için kullanmak istediğiniz her HTTP proxy'nin ana makinelerini veya Apigee Edge ile iletişimi hangi ana makinelerin yönetmemesi gerektiğini kontrol eder. Örneğin:
    export HTTP_PROXY='http://localhost:3786'
    export HTTPS_PROXY='https://localhost:3786'
    export NO_PROXY='localhost,localhost:8080'

    NO_PROXY, Edge Microgateway'in proxy'si olmaması gereken alanların virgülle ayrılmış bir listesi olabilir.

    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 kullanma

3.1.2 sürümünde eklendi.

Edge Microgateway ile arka uç hedefleri arasındaki iletişim için HTTP proxy kullanmak isterseniz aşağıdakileri yapın:

  1. Mikro geçit 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 isteklerini tek bir TCP bağlantısı üzerinden tünellemek için HTTP CONNECT yöntemini kullanır. (Aşağıda belirtilen, proxy'yi yapılandırmayla ilgili ortam değişkenleri TLS etkinse de aynı durum geçerlidir). Varsayılan: false
    • url: HTTP proxy URL'si.
    • bypass: (İsteğe bağlı) HTTP proxy'sini atlaması gereken, virgülle ayrılmış bir veya daha fazla hedef ana makine URL'sini belirtir. Bu özellik ayarlanmadıysa hangi hedef URL'lerin atlanacağını belirtmek için NO_PROXY ortam değişkenini kullanın.
    • enabled: Doğruysa ve proxy.url ayarlanmışsa HTTP proxy için proxy.url değerini kullanın. Doğruysa ve proxy.url ayarlanmamışsa Apigee Edge ile iletişim için HTTP proxy kullanma bölümünde açıklandığı gibi, HTTP proxy ortam değişkenleri HTTP_PROXY ve HTTPS_PROXY'de belirtilen proxy'leri 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 Microgateway'i yeniden başlatın.

Microgateway'ten haberdar proxy'lerde joker karakterleri kullanma

edgemicro_* (Microgateway uyumlu) bir proxy'nin temel yolunda bir veya daha fazla "*" joker karakteri kullanabilirsiniz. Örneğin, /team/*/members temel 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. /**/ desteklenmez.

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

JWT anahtarlarını döndürme

İlk kez JWT oluşturduktan bir süre sonra, Edge şifrelenmiş KVM'de depolanan herkese açık/gizli anahtar çiftini değiştirmeniz gerekebilir. Yeni bir anahtar çifti oluşturma işlemine anahtar rotasyonu denir.

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

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

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

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

JWT'leri CLI ile oluşturma hakkında bilgi edinmek için Jeton oluşturma başlıklı makaleyi inceleyin.

Anahtar rotasyonu nedir?

İlk kez JWT oluşturduktan bir süre sonra, Edge şifrelenmiş KVM'de depolanan herkese açık/gizli anahtar çiftini değiştirmeniz gerekebilir. Yeni bir anahtar çifti oluşturma işlemine anahtar rotasyonu denir. Anahtarları değiştirdiğinizde yeni bir özel/ortak anahtar çifti oluşturulur ve Apigee Edge kuruluşunuzdaki/ortamınızdaki "mikro ağ geçidi" KVM'de saklanır. Ayrıca, eski ortak anahtar orijinal anahtar kimliği değeriyle birlikte tutulur.

Edge, JWT oluşturmak için şifrelenmiş KVM'de depolanan bilgileri kullanır. Edge Microgateway'ı ilk kez kurarken (yapılandırırken) microgateway adlı bir KVM oluşturuldu ve anahtarlarla dolduruldu. KVM'deki anahtarlar, 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 imzalanan 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şkilidir ve anahtar rotasyonunu desteklemek için kullanılır.

  • public_key1_kid: En son (en son oluşturulan) herkese açık anahtar kimliği. Bu anahtar, public_key1 değeriyle ilişkilidir ve anahtar rotasyonunu desteklemek için kullanılır. Bu değer, özel anahtar alt anahtarıyla 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 eski ortak anahtarları korumak için yeni anahtarlar eklenir. Örneğin:

  • public_key2_kid: Eski ortak anahtar kimliği. Bu anahtar, public_key2 değeriyle ilişkilendirilir 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. Doğrulama başarısız olursa JWT'nin süresi dolana kadar (token_expiry* aralığından sonra, varsayılan olarak 30 dakika) eski herkese açık anahtar kullanılır. Bu şekilde, 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ırma hakkında ayrıntılı bilgi için KVM'yi yükseltme başlıklı makaleyi inceleyin. Bu adımı yalnızca bir kez yapmanız gerekir.
  2. edgemicro-oauth proxy'sini yükseltmek için edgemicro upgradeauth komutunu kullanın. Bu komutu çalıştırma hakkında ayrıntılı bilgi için edgemicro-auth proxy'yi yükseltme başlıklı makaleyi inceleyin. Bu adımı yalnızca bir kez yapmanız gerekir.
  3. ~/.edgemicro/org-env-config.yaml dosyanıza aşağıdaki satırı ekleyin. Bu satırda, mikro ağ geçidini kullanması için 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 anahtar döndürme komutunu çalıştırın. Bu komutla ilgili ayrıntılar için Anahtarlara rotasyon uygulama başlıklı makaleyi inceleyin.

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

    Örneğin:

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

Anahtar rotasyonundan sonra Edge, Edge Microgateway'e 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. Mikro geçit daha sonra bu anahtarları kullanarak yetkilendirme jetonlarını doğrular. Jeton doğrulaması başarısız olursa mikro ağ geçidi, anahtar grubunda daha eski bir anahtar olup olmadığını kontrol eder ve bu anahtarı dener. Döndürülen anahtarların biçimi JSON Web Anahtarı'dır (JWK). Bu biçim hakkında bilgi edinmek için RFC 7517'yi inceleyebilirsiniz.

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

"En geç" gecikmesi yapılandırma

3.1.5 ve önceki sürümlerde, rotatekey komutu tarafından oluşturulan yeni özel anahtar hemen geçerli olur ve oluşturulan yeni jetonlar yeni özel anahtarla imzalanır. Ancak yeni ortak anahtar, mikro ağ geçidi yapılandırması yenilendiğinde Edge mikro ağ geçidi örneklerine yalnızca 10 dakikada bir (varsayılan olarak) sunuluyordu. Jeton imzalama ile mikro geçit örneği yenileme arasındaki bu gecikme nedeniyle, tüm örnekler ortak en son anahtarı alana kadar en son anahtarla imzalanan jetonlar reddedilir.

Birden fazla mikro ağ geçidi örneğinin bulunduğu durumlarda, jeton doğrulaması bir örnekte başarılı olurken tüm örnekler yenilenene kadar başka bir örnekte başarısız olduğu için ortak anahtar gecikmesi bazen 403 durumuyla aralıklı çalışma zamanında hatalara neden oluyordu.

3.1.6 sürümünden itibaren rotatekey komutunda yeni bir işaret, yeni gizli anahtarın etkili olması için bir gecikme belirtmenize olanak tanır. Bu sayede tüm mikro ağ geçidi örneklerinin yenilenip yeni herkese açık anahtarı alması için zaman tanınmış olur. Yeni işaret --nbf'tür ve "not before" (önce değil) anlamına gelir. Bu işaret, gecikmenin dakika sayısı olan bir tam sayı değeri alır.

Aşağıdaki örnekte gecikme 15 dakika olarak 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 uzun olacak şekilde ayarlamak iyi bir uygulamadır. Ayrıca edgemicro özelliklerine bakın.

İndirilen proxy'leri filtreleme

Edge Microgateway, varsayılan olarak Edge kuruluşunuzdaki "edgemicro_" ad ön ekiyle başlayan tüm proxy'leri indirir. Bu varsayılan ayarı, adları bir kalıpla eşleşen proxy'leri indirecek şekilde değiştirebilirsiniz.

  1. Edge Micro yapılandırma dosyanızı açın: ~/.edgemicro/org-env-config.yaml
  2. edge_config altında proxyPattern öğesini ekleyin. Örneğin, aşağıdaki kalıp; edgemicro_foo, edgemicro_fast ve edgemicro_first gibi proxy'leri indirir.
    edge_config:proxyPattern: edgemicro_f*

API proxy'si olmayan ürünleri belirtme

Apigee Edge'de API proxy'si içermeyen bir API ürünü oluşturabilirsiniz. Bu ürün yapılandırması, ilgili ürünle ilişkilendirilmiş bir API anahtarının kuruluşunuzda dağıtılan tüm proxy'lerle çalışmasına olanak tanır. Edge Microgateway, 2.5.4 sürümü itibarıyla bu ürün yapılandırmasını destekler.

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 özellik, özel eklentilerle ilgili sorunları gidermek ve hata ayıklama yapmak için kullanışlıdır.

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

    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ı dinlemeye ayarlayın.
  3. Artık Edge Microgateway kodunda adım adım ilerleyebilir, kesme noktaları ayarlayabilir, ifadeleri izleyebilir vb. yapabilirsiniz.

Hata ayıklama moduyla ilgili standart Node.js işaretlerini belirtebilirsiniz. Örneğin, --nolazy zaman uyumsuz kodda hata ayıklamanıza yardımcı olur.

Günlük dosyalarını kontrol etme

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ılı bilgi için Günlük dosyalarını yönetme başlıklı makaleyi inceleyin.

API anahtarı güvenliğini kullanma

API anahtarları, Edge Microgateway'e istek gönderen 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 bilinir) değerini kopyalayarak API anahtarı edinebilirsiniz.

Anahtarları önbelleğe alma

API anahtarları, önbelleğe alınan taşıyıcı jetonlarıyla değiştirilir. Edge Microgateway'e gelen isteklerde Cache-Control: no-cache başlığını ayarlayarak önbelleğe almayı devre dışı bırakabilirsiniz.

Bir API anahtarını kullanma

API anahtarını bir API isteğinde sorgu parametresi olarak veya bir başlıkta iletebilirsiniz. Varsayılan olarak, başlık ve sorgu parametresi adı x-api-key olur.

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 bölümünde açıklandığı gibi 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ı artık her iki durumda da kullanılamaz. Yapılandırma değişiklikleri yapma başlıklı makaleyi de inceleyin.

Örneğin:

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

API anahtarlarını proxy istekleriyle kullanma hakkında daha fazla bilgi için Secure Edge Microgateway başlıklı makaleyi inceleyin.

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

Varsayılan olarak oauth eklentisi, yanıt 200 durumu değilse yalnızca 4xx hata durum kodları 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 oauth.useUpstreamResponse: true özelliğini Edge Microgateway 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 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ı elde etmek için kullanılır.

Erişim jetonu alma

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

edgemicro token KSA komutunu kullanarak da erişim jetonu alabilirsiniz. CLI hakkında ayrıntılı bilgi için Jetonları yönetme başlıklı makaleyi inceleyin.

API 1: Kimlik bilgilerini body parametreleri olarak gönderme

URL'deki kuruluş ve ortam adlarınızın yerine kendi adlarınızı yazın ve client_id ile client_secret vücut parametreleri için Apigee Edge'deki bir geliştirici uygulamasından alınan Tüketici Kimliği ve Tüketici Gizli Anahtarı değerlerini yazın:

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 başlığında gönderme

İstemci kimlik bilgilerini Temel Kimlik Doğrulama üstbilgisi olarak, grant_type parametresini ise form parametresi olarak gönderin. Bu komut biçimi RFC 6749: OAuth 2.0 Authorization Framework (OAuth 2.0 Yetkilendirme Çerçevesi) belgesinde 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 ve access_token mülkleri arasında fark yoktur. İki yöntemden birini kullanabilirsiniz. expires_in değerinin saniye cinsinden belirtilen bir tam sayı olduğunu unutmayın.
{
"token": "eyJraWQiOiIxIiwidHlwIjoi",
"access_token": "eyJraWQiOiIxIiwid",
"token_type": "bearer",
"expires_in": 1799
}

Yenileme jetonu alma

Yenileme jetonu almak için edgemicro-auth proxy'sinin /token uç noktasına API çağrısı yapın. Bu API çağrısını password bağış türüyle yapmanız GEREKİR. Aşağıdaki adımlarda bu süreç açıklanmaktadır.

  1. /token API ile erişim ve yenileme jetonu alın. İ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 aşağıdakine benzer. expires_in değerlerinin 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 şu şekilde görünür:

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

Sonsuza kadar izleme

Yapılandırma dosyası bitiş noktası belirtme

Birden fazla Edge Microgateway örneği çalıştırıyorsanız 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. Edge Micro'yu -u işaretini kullanarak başlattığınızda bu uç noktayı belirtebilirsiniz.

Örneğin:

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

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

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

Edge mikro ağ geçidi tarafından kullanılan TCP bağlantıları için veri arabelleğe alma özelliğini devre dışı bırakmak üzere 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ğerini true olarak ayarlamak bu davranışı devre dışı bırakır (socket.write() her çağrıldığında veriler hemen gönderilir). Daha fazla ayrıntı için Node.js dokümanlarına da bakın.

nodelay'ü etkinleştirmek için Edge Micro yapılandırma dosyasını aşağıdaki gibi 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 Microgateway'i bağımsız modda çalıştırma

Edge Microgateway'i herhangi bir Apigee Edge bağımlılığından tamamen bağımsız olarak ç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.

Apigee Edge'e bağlantı gerektirdikleri için bağımsız modda aşağıdaki özellikler çalışmaz:

  • OAuth ve API anahtarı
  • Kota
  • Analiz

Öte yandan, Apigee Edge bağlantısı gerektirmediği için özel eklentiler ve ani artış durdurma normal şekilde çalışır. Ayrıca, extauth adlı yeni bir eklenti, bağımsız moddayken mikro geçiş noktasına yapılan API çağrılarını JWT ile yetkilendirmenize olanak tanır.

Geçidi yapılandırma ve başlatma

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

  1. Aşağıdaki adlandırmaya 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. Yerel proxy'yi örneklemek 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 "org" 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'nin hedefinin URL'sidir. (Hedef, proxy'nin çağırdığı hizmettir.)
    • $BASE_PATH, proxy'nin ana yoludur. Bu değer eğik çizgiyle başlamalıdır. Kök taban yolu için yalnızca bir 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 olduğu için "missing_authorization" hatası alırsınız. Bu eklenti, API çağrısının Authorization üstbilgisinde bulunması gereken bir JWT'yi doğrular. Bir sonraki bölümde, API çağrılarının hata olmadan yapılmasına olanak tanıyacak bir JWT elde edeceksiniz.

Örnek: Yetkilendirme jetonu alma

Aşağıdaki örnekte, Apigee Edge'deki (edgemicro-auth/jwkPublicKeys) Edge Microgateway JWT uç noktasından nasıl JWT elde edileceği gösterilmektedir. Bu uç nokta, Edge Microgateway'i standart şekilde ayarlayıp yapılandırdığınızda dağıtılır. Apigee uç noktasından JWT almak için önce standart Edge Microgateway kurulumunu yapmanız ve internete bağlı olmanız gerekir. Apigee uç noktası burada yalnızca örnek olarak kullanılmıştır ve gerekli değildir. İsterseniz başka bir JWT jetonu uç noktası kullanabilirsiniz. Bu durumda, söz konusu uç nokta için sağlanan API'yi kullanarak JWT'yi almanız gerekir.

Aşağıdaki adımlarda, edgemicro-auth/jwkPublicKeys uç noktası kullanılarak jetonun nasıl alınacağı açıklanmaktadır:

  1. edgemicro-auth proxy'sini Apigee Edge'deki kuruluşunuza/ortamınıza dağıtmak için Edge Microgateway'i standart şekilde kurmanız ve yapılandırmanız gerekir. Bu adımı daha önce yaptıysanız tekrarlamanız gerekmez.
  2. Edge Microgateway'i Apigee Cloud'a dağıttıysanız bu uç noktadan JWT alabilmek için internete bağlı olmanız gerekir.
  3. Edge Microgateway'i 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. Edge Microgateway'i, yapılandırma dosyası adında kullandığınız org/env adlarını kullanarak 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 uçlarını kullandığınız için şu KSA 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, daha önce Edge Microgateway'ı 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ındaki Consumer Key'i belirtir.
  • s seçeneği, edgemicro-auth proxy'sini içeren bir ürüne sahip geliştirici uygulamasından Tüketici Gizli Anahtarı'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 başlıklı makaleyi de inceleyin.

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

Yapılandırmayı test etmek için API'yi, aşağıdaki gibi Authorization başlığına jeton eklenmiş şekilde ç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 Microgateway, Apigee Edge'e microgateway'den haberdar bir proxy dağıtılmasını gerektirmez. Bunun yerine, mikro geçiş noktasını başlatırken yerel bir proxy adı, temel yol ve hedef URL sağlayarak "yerel proxy" yapılandırırsınız. Mikro ağ geçidi API çağrıları daha sonra yerel proxy'nin hedef URL'sine gönderilir. Yerel proxy modu, diğer tüm açılardan Edge Microgateway'in normal modunda çalıştırılmasına benzer şekilde çalışır. Kimlik doğrulama, ani artış durdurma ve kota yaptırımı, özel eklentiler vb. gibi özellikler aynı şekilde çalışır.

Kullanım alanı ve örnek

Yerel proxy modu, yalnızca bir Edge Microgateway örneğiyle tek bir proxy ilişkilendirmeniz gerektiğinde kullanışlıdır. Örneğin, Edge Microgateway'i Kubernetes'e bir yardımcı proxy olarak ekleyebilirsiniz. Bu durumda, mikro ağ geçidi ve hizmetin her biri tek bir kapsülde çalışır ve mikro ağ geçidi, yardımcı hizmetine gelen ve giden trafiği yönetir. Aşağıdaki şekilde, Edge Microgateway'in bir Kubernetes kümesinde yardımcı proxy olarak işlev gördüğü bu mimari gösterilmektedir. Her mikro ağ geçidi örneği, yalnızca tamamlayıcı hizmetindeki tek bir uç noktayla iletişim kurar:

Yan araç olarak Edgemicro

Bu mimari tarzının bir avantajı, Edge Microgateway'in Kubernetes kümesi gibi bir kapsayıcı ortamına dağıtılan her bir hizmet 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 aşağıdaki adımları uygulayın:

  1. Yerel yapılandırma ortamınızı, tipik bir Edge Microgateway kurulumunda yaptığınız gibi ayarlamak için edgemicro init'ü çalıştırın. Ayrıca Edge Microgateway'i yapılandırma başlıklı makaleyi de inceleyin.
  2. Tipik bir Edge Microgateway kurulum prosedüründe yaptığınız gibi edgemicro configure'ü ç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 ihtiyacınız olan bir anahtar ile gizli anahtar döndürür. Yardıma ihtiyacınız varsa Edge Microgateway'i yapılandırma başlıklı makaleyi inceleyin.

  3. Apigee Edge'de, aşağıdaki zorunlu yapılandırma koşullarını karşılayan bir API ürünü oluşturun (diğer tüm yapılandırmaları istediğiniz gibi yönetebilirsiniz):
    • Ürüne edgemicro-auth proxy'sini eklemeniz gerekir. Bu proxy, edgemicro configure'ü çalıştırdığınızda otomatik olarak dağıtıldı.
    • Kaynak yolu sağlamanız gerekir. Apigee, ürüne şu yolu eklemenizi önerir: /**. Daha fazla bilgi için Kaynak yolunun davranışını yapılandırma başlıklı makaleyi inceleyin. Edge dokümanlarında API ürünleri oluşturma başlıklı makaleyi de inceleyin.
  4. Apigee Edge'de bir geliştirici oluşturun veya isterseniz mevcut bir geliştiriciyi kullanabilirsiniz. Yardım için Edge yönetim kullanıcı arayüzünü kullanarak geliştirici ekleme başlıklı makaleyi inceleyin.

  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ünde uygulama kaydetme başlıklı makaleyi inceleyin.
  6. Edge Microgateway'in yüklü olduğu makinede, aşağıdaki ortam değişkenini "1" değerine sahip olacak şekilde dışa aktarın.
    export EDGEMICRO_LOCAL_PROXY=1
  7. Aşağıdaki start komutunu çalıştırı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şunuzdaki bir ortamdır.
    • your_key, edgemicro configure çalıştırıldığında döndürülen anahtardır.
    • your_secret, edgemicro configure çalıştırıldığında 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 hedefinin (proxy'nin çağıracağı hizmetin) URL'sidir.
    • base_path, proxy'nin ana yoludur. Bu değer eğik çizgiyle başlamalıdır. Kök taban yolu için yalnızca bir 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 yolu belirttiyseniz proxy'yi aşağıdaki gibi ç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ı 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 çı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":""
}

Senkronizasyon aracını kullanma

Bu bölümde, Edge Microgateway'in Apigee Edge'den yapılandırma verileri almasına ve bunları yerel bir Redis veritabanına yazmasına olanak tanıyarak Edge Microgateway'in esnekliğini artıran isteğe bağlı bir özellik olan senkronizasyon aracının nasıl kullanılacağı açıklanmaktadır. Çalışan bir senkronizasyon örneğiyle, farklı düğümlerde çalışan diğer Edge Microgateway örnekleri yapılandırmalarını doğrudan bu veritabanından alabilir.

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

Senkronizasyon aracı nedir?

Senkronizasyon aracı, Edge Microgateway için bir düzeyde esneklik sağlar. Bu, Edge mikro ağ geçidinin her örneğinin aynı yapılandırmayı kullanmasını ve internet kesintisi durumunda Edge mikro ağ geçidi örneklerinin düzgün şekilde başlatılıp çalışabilmesini sağlar.

Edge mikro ağ geçidi örnekleri, varsayılan olarak API proxy 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ı kesintiye uğrarsa en son yapılandırma verileri önbelleğe alındığından mikro ağ geçidi örnekleri çalışmaya devam edebilir. Ancak yeni mikro geçit örnekleri net bir bağlantı olmadan başlatılamaz. Ayrıca, internet kesintisi bir veya daha fazla mikro ağ geçidi örneğinin diğer örneklerle senkronize olmayan yapılandırma bilgileriyle çalışmasına neden olabilir.

Edge Microgateway senkronizasyon aracı, Edge Microgateway örneklerinin API proxy trafiğini başlatmak ve işlemek için ihtiyaç duydukları yapılandırma verilerini almaları amacıyla 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ünleri çağrısı. Senkronizasyon aracı, farklı düğümlerde çalışan tüm Edge Microgateway örneklerinin düzgün şekilde başlatılmasını ve Edge Microgateway ile Apigee Edge arasındaki internet bağlantısı kesintiye uğrasa bile senkronize kalmasını sağlar.

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

Senkronizasyon aracı örneğini yapılandırma

Senkronizasyon aracı olarak kullanmak istediğiniz Edge Microgateway kurulumunun 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 veritabanı. 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

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

Ek Edge Microgateway düğümünün her 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 ayarlayarak yapılandırmasını 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

Senkronizasyon aracının 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) ise Edge Microgateway standart modunda çalışır.

1 ise Edge Microgateway örneğini senkronizasyon aracı olarak çalıştırın. Bu modda örnek, yapılandırma verilerini Apigee Edge'den alır ve yerel bir Redis veritabanında depolar. Bu örnek, API proxy isteklerini işleyemez. Tek amacı, yapılandırma verileri için Apigee Edge'i yoklamak ve bu verileri yerel veritabanına yazmaktır. Ardından, diğer mikro geçit örneklerini veritabanından veri okuyacak şekilde yapılandırmanız gerekir.

edge_config.redisBasedConfigCache doğru veya yanlış Doğruysa Edge Microgateway örneği, yapılandırma verilerini Apigee Edge yerine Redis veritabanından alır. Redis veritabanı, senkronizasyon aracısının yazmak için yapılandırıldığı veritabanıyla aynı olmalıdır. Redis veritabanı kullanılamıyorsa veya veritabanı boşsa mikro geçit, yapılandırması için mevcut bir cache-config.yaml dosyasını arar.

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

edgemicro.config_change_poll_interval Saniye cinsinden zaman aralığı Senkronizasyon aracının Apigee Edge'den veri çekmesi için sorgu aralığını belirtir.

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

Mikro ağ geçidini, belirtilen URL'ler için eklentilerin işlenmesini atlayacak şekilde yapılandırabilirsiniz. Bu "hariç tutma" URL'lerini genel 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 /hello veya /proxy_one yollarına sahip gelen API proxy çağrılarını işlemez. Ayrıca, yollarında /hello/xml bulunan API'ler için json2xml eklentisi atlanır.

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

Yapılandırma dosyasında 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, orijinal yapılandırma veya önbelleğe alma dosyalarında depolanmaz.

Bu örnekte key özelliği, TARGETS_SSL_CLIENT_KEY ortam değişkeninin değeriyle değiştirilir.

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, tam sayı değerini belirtmek için <n> etiketi kullanılmaktadır. Yalnızca pozitif tam sayılar desteklenir.

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

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

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