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.
- 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
- 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
- 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 initedgemicro 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 stopedgemicro 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):
- 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:
- 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:
- openssl yardımcı programını veya tercih ettiğiniz yöntemi kullanarak bir SSL sertifikası ve anahtarı oluşturun ya da edinin.
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
- 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 dosyaları oldukça büyük olabileceğinden günlük dosyası dizininde yeterli alan olduğundan emin olun. Günlük dosyalarının depolandığı yer ve Varsayılan günlük dosyası dizinini değiştirme bölümlerine bakın.
- Günlük dosyalarını en az haftada bir kez silin veya ayrı bir arşiv dizine taşıyın.
- Politikanız günlükleri silmekse eski günlükleri kaldırmak (temizlik) için
edgemicro log -c
CLI komutunu kullanabilirsiniz.
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üzeystats
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üzeystats
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üzeystats
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üzeystats
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).
-
level: (varsayılan: error)
- 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
veyaDENY
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:
- Edge kullanıcı arayüzünde, Edge Microgateway'i yapılandırdığınız kuruluşta/ortamda edgemicro_auth proxy'sini seçin.
- Geliştirme sekmesinde, düzenleyicide JavaCallout politikasını açın.
- Ö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. - İsteğe bağlı olarak,
products.filter.env.enable
özel özelliğinifalse
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.) - (Yalnızca Özel Bulut) Private Cloud için Edge kullanıyorsanız CPS dışı ortamlar için ürün almak üzere
org.noncps
özelliğinitrue
olarak ayarlayın.
Ö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:
- Apigee proxy düzenleyicisinde edgemicro-auth proxy'sini açın.
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>
- 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 panelindeedgemicro_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çinproxyPath
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 panelindeedgemicro_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:
HTTP_PROXY
,HTTPS_PROXY
veNO_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.
- 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:
- 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çinproxy.url
değerini kullanın. Doğruysa veproxy.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şkenleriHTTP_PROXY
veHTTPS_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
- 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:
- 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.
- 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. - 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. ~/.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'
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.
- Edge Micro yapılandırma dosyanızı açın:
~/.edgemicro/org-env-config.yaml
- 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.
- Edge Microgateway'ı hata ayıklama modunda yeniden başlatın. Bunu yapmak için
start
komutunun başınaDEBUG=*
ekleyin: simgesini kullanın.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
- 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.
- 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.
/token
API ile erişim ve yenileme jetonu alın. İzin türününpassword
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" }
- 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:
- 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
- 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
- Aşağıdaki ortam değişkenini "1" değeriyle dışa aktarın:
export EDGEMICRO_LOCAL=1
- 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 /
- Yapılandırmayı test edin.
curl http://localhost:8000/echo { "error" : "missing_authorization" }
extauth
eklentisifoo-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:
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.- Edge Microgateway'i Apigee Cloud'a dağıttıysanız bu uç noktadan JWT alabilmek için internete bağlı olmanız gerekir.
-
Edge Microgateway'i durdurma:
edgemicro stop
- 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ızdakiedgemicro-auth/jwkPublicKeys
uç noktasına yönlendirin. Örneğin:extauth: publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
-
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 /
-
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:
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:
- 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. - 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.
- 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.
- Ürüne edgemicro-auth proxy'sini eklemeniz gerekir. Bu proxy,
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.
- 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.
- 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
- 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>