Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Edge Microgateway v. 3.1.x
Bu konuda, Edge Microgateway'in nasıl yönetileceği ve yapılandırılacağı açıklanmaktadır.
İnternet bağlantınız varsa Edge Microgateway'i yeni sürüme geçirme
Bu bölümde, mevcut bir Edge Microgateway kurulumunun nasıl yeni sürüme geçirileceği açıklanmaktadır. İnternet bağlantısı olmadan çalışıyorsanız Edge Microgateway'i internet bağlantısı olmadan yükleyebilir miyim?
Apigee, mevcut yapılandırmanızı yeni sürümü güncelleyin.
- Edge'in son sürümüne yükseltmek için aşağıdaki
npm
komutunu yürütün Mikro ağ geçidi:npm upgrade edgemicro -g
Edge Microgateway'in belirli bir sürümüne geçmek için oyununuzun sürümünü "sayı" değerini eklemeniz gerekir. Sürüm numarasını belirtmezseniz en son sürüm yüklenir. Örneğin, 3.1.0 sürümüne geçmek için, şu komutu kullanın:
npm upgrade edgemicro@3.1.0 -g
- Sürüm numarasını kontrol edin. Örneğin, 3.1.0 sürümünü yüklediyseniz:
edgemicro --version current nodejs version is v12.5.0 current edgemicro version is 3.1.0
- Son olarak, edgemicro-auth proxy'sini en son sürümüne yükseltin:
edgemicro upgradeauth -o $ORG -e $ENV -u $USERNAME
Yapılandırma değişiklikleri yapma
Bilmeniz gereken yapılandırma dosyaları şunlardır:
- Varsayılan sistem yapılandırma dosyası
- Yeni başlatılan Edge Microgateway örneği için varsayılan yapılandırma dosyası
- Çalışan örnekler için dinamik yapılandırma dosyası
Bu bölümde söz konusu dosyalar ve bunları değiştirme hakkında bilmeniz gerekenler ele alınmaktadır.
Varsayılan sistem yapılandırması dosya
Edge Microgateway'i yüklediğinizde buraya varsayılan bir sistem yapılandırma dosyası yerleştirilir:
prefix/lib/node_modules/edgemicro/config/default.yaml
Burada prefix, npm
öneki dizinidir. Bkz.
Bu dizini bulamıyorsanız Edge Microgateway nerede yüklüdür?
Sistem yapılandırma dosyasını değiştirirseniz Edge'i yeniden başlatmanız, yeniden yapılandırmanız ve yeniden başlatmanız gerekir Mikro ağ geçidi:
edgemicro initedgemicro configure [params]
edgemicro start [params]
Yeni başlatılan Edge Microgateway örnekleri için varsayılan yapılandırma dosyası
edgemicro init
komutunu çalıştırdığınızda, sistem yapılandırma dosyası (açıklanan
yukarıda) default.yaml
, ~/.edgemicro
dizinine yerleştirilir.
~/.edgemicro
ürününde yapılandırma dosyasını değiştirirseniz yapılandırma dosyasını yeniden yapılandırıp yeniden başlatmanız gerekir
Edge Mikro Ağ Geçidi:
edgemicro stopedgemicro configure [params]
edgemicro start [params]
Dinamik çalışan örnekler için yapılandırma dosyası
edgemicro configure [params]
çalıştırdığınızda dinamik bir
yapılandırma dosyası ~/.edgemicro
konumunda oluşturulur. Dosya buna göre adlandırılır
kalıp: org-env-config.yaml
; burada org ve
env
Ayrıca, Apigee Edge kuruluşunuzun ve ortamlarınızın adları. Yapılandırmayı oluşturmak için bu dosyayı
ve ardından sıfır kapalı kalma süresiyle bunları yeniden yükleyin. Örneğin, bir eklenti ekler ve yapılandırırsanız
aşağıda açıklandığı gibi, herhangi bir kesinti yaşamadan yapılandırmayı yeniden yükleyebilirsiniz.
Edge Microgateway çalışıyorsa (sıfır kapalı kalma süresi seçeneği):
- Edge Mikro Ağ Geçidi yapılandırmasını yeniden yükleyin:
edgemicro reload -o $ORG -e $ENV -k $KEY -s $SECRET
Burada:
- $ORG, Edge kuruluş adınızdır (kuruluş olmalısınız (kuruluş olmalısınız) yöneticisi).
- $ENV, kuruluşunuzdaki bir ortamdır (örneğin, "test" veya "prod").
- $KEY, daha önce config komutu tarafından döndürülen anahtardır.
- $SECRET, daha önce config komutu tarafından döndürülen anahtardır.
Örneğin:
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \ -s 05c14356e42ed1...4e34ab0cc824
Edge Microgateway durdurulduysa:
- Edge Microgateway'i yeniden başlatın:
edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
Burada:
- $ORG, Edge kuruluş adınızdır (kuruluş olmalısınız (kuruluş olmalısınız) yöneticisi).
- $ENV, kuruluşunuzda bulunan bir ortamdır (örneğin, "test" veya "prod").
- $KEY, daha önce config komutu tarafından döndürülen anahtardır.
- $SECRET, daha önce config komutu tarafından döndürülen anahtardır.
Örneğin:
edgemicro start -o docs -e test -k 701e70ee718ce...b6181d000723 \ -s 05c1435...e34ab0cc824
Aşağıda bir yapılandırma dosyası örneği verilmiştir. Yapılandırma dosyası ayarları hakkında ayrıntılar için Edge Microgateway yapılandırma referansı başlıklı makaleye bakın.
edge_config: bootstrap: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://docs-test.apigee.net/edgemicro-auth/products' edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true oauth: allowNoAuthorization: false allowInvalidAuthorization: false verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey' analytics: uri: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test
Ortam değişkenlerini ayarlama
Edge kuruluşunuz için değer gerektiren komut satırı arayüzü komutları ve Edge Microgateway'i başlatmak için gereken anahtar ve sır bu ortam değişkenleri:
EDGEMICRO_ORG
EDGEMICRO_ENV
EDGEMICRO_KEY
EDGEMICRO_SECRET
Bu değişkenlerin ayarlanması isteğe bağlıdır. Bunları ayarlarsanız değerlerini belirtmeniz gerekmez Edge Microgateway'i yapılandırmak ve başlatmak için Komut Satırı Arayüzü'nü (KSA) kullandığınızda.
Edge Mikro Ağ Geçidi'nde SSL'yi Yapılandırma sunucu
Apigee Edge Microgateway'de TLS'yi yapılandırma hakkında bilgi edinmek için aşağıdaki videoları izleyin:
Video | Açıklama |
---|---|
Tek Yönlü Kuzeye Giden TLS'yi Yapılandırma | Apigee Edge Microgateway'de TLS'yi yapılandırma hakkında bilgi edinin. Bu videoda TLS'ye ve önemine genel bir bakış sağlanarak TLS'nin tanıtıldığı . |
2 Yönlü Kuzeye Giden TLS'yi yapılandırma | Bu, Apigee Edge Microgateway'de TLS'yi yapılandırmayla ilgili ikinci videodur. Bu videosunda kuzeye giden 2 yönlü TLS'nin nasıl yapılandırılacağı açıklanmaktadır. |
Tek ve 2 yönlü Güneye giden TLS'yi yapılandırma | Apigee Edge Microgateway'de TLS'yi yapılandırmayla ilgili bu üçüncü videoda güneye giden 1 ve 2 yönlü TLS'yi yapılandırma |
Microgateway sunucusunu SSL kullanacak şekilde yapılandırabilirsiniz. Örneğin, SSL yapılandırıldığında, "https" kullanarak Edge Microgateway aracılığıyla API'leri çağırabilir protokolü şu şekildedir:
https://localhost:8000/myapi
Mikro ağ geçidi sunucusunda SSL'yi yapılandırmak için şu adımları izleyin:
- openssl yardımcı programını veya tercih ettiğiniz yöntemi kullanarak bir SSL sertifikası ve anahtarı oluşturun ya da edinin.
- Edge Microgateway yapılandırma dosyasına
edgemicro:ssl
özelliğini ekleyin. Eksiksiz bir aşağıdaki tabloya bakın. Örneğin:
edgemicro: ssl: key: <absolute path to the SSL key file> cert: <absolute path to the SSL cert file> passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2 requestCert: true
- Edge Microgateway'i yeniden başlatın. Şu adreste belirtilen adımları uygulayın: Yapılandırmada değişiklik yapma varsayılan dosya veya çalışma zamanı yapılandırma dosyası olabilir.
Yapılandırma dosyasının SSL içeren edgemicro
bölümü örneğini burada bulabilirsiniz.
yapılandırıldı:
edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth ssl: key: /MyHome/SSL/em-ssl-keys/server.key cert: /MyHome/SSL/em-ssl-keys/server.crt passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2
Desteklenen tüm sunucu seçeneklerinin listesi aşağıda verilmiştir:
Option | Açıklama |
---|---|
key |
ca.key dosyasının yolu (PEM biçiminde). |
cert |
ca.cert dosyasının yolu (PEM biçiminde). |
pfx |
Özel anahtar, sertifika ve CA sertifikalarını içeren pfx dosyasının yolu
PFX biçiminde olur. |
passphrase |
Özel anahtarın veya PFX'in parolasını içeren bir dize. |
ca |
PEM biçiminde güvenilir sertifikaların listesini içeren bir dosyanın yolu. |
ciphers |
Kullanılacak şifreleri ":" ile ayrılmış olarak açıklayan bir dize. |
rejectUnauthorized |
True (doğru) ise sunucu sertifikası, sağlanan CA'lar listesine göre doğrulanır. Eğer doğrulama başarısız olursa hata döndürülür. |
secureProtocol |
Kullanılacak SSL yöntemi. Örneğin, SSL'yi sürüm 3'e zorunlu kılmak için SSLv3_method. |
servername |
SNI (Sunucu Adı Göstergesi) TLS uzantısının sunucu adı. |
requestCert |
true (2 yönlü SSL için) tek yönlü SSL için yanlış |
İstemci SSL/TLS seçeneklerini kullanma
Edge Microgateway'i, hedefe bağlanırken TLS veya SSL istemcisi olacak şekilde yapılandırabilirsiniz uç noktalar. Microgateway yapılandırma dosyasında, SSL/TLS'yi ayarlamak için hedefler öğesini kullanın. seçenekleri vardır.
Bu örnekte, tüm ana makinelere uygulanacak ayarlar gösterilmektedir:
edgemicro: ... targets: ssl: client: key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true
Bu örnekte, ayarlar yalnızca belirtilen ana makineye uygulanır:
edgemicro: ... targets: - host: 'myserver.example.com' ssl: client: key: /Users/myname/twowayssl/ssl/client.key cert: /Users/myname/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true
Aşağıda TLS için bir örnek verilmiştir:
edgemicro: ... targets: - host: 'myserver.example.com' tls: client: pfx: /Users/myname/twowayssl/ssl/client.pfx passphrase: admin123 rejectUnauthorized: true
Desteklenen tüm istemci seçeneklerinin listesi aşağıda verilmiştir:
Option | Açıklama |
---|---|
pfx |
Özel anahtar, sertifika ve CA sertifikalarını içeren pfx dosyasının yolu
PFX biçiminde olur. |
key |
ca.key dosyasının yolu (PEM biçiminde). |
passphrase |
Özel anahtarın veya PFX'in parolasını içeren bir dize. |
cert |
ca.cert dosyasının yolu (PEM biçiminde). |
ca |
PEM biçiminde güvenilir sertifikaların listesini içeren bir dosyanın yolu. |
ciphers |
Kullanılacak şifreleri ":" ile ayrılmış olarak açıklayan bir dize. |
rejectUnauthorized |
True (doğru) ise sunucu sertifikası, sağlanan CA'lar listesine göre doğrulanır. Eğer doğrulama başarısız olursa hata döndürülür. |
secureProtocol |
Kullanılacak SSL yöntemi. Örneğin, SSL'yi sürüm 3'e zorunlu kılmak için SSLv3_method. |
servername |
SNI (Sunucu Adı Göstergesi) TLS uzantısının sunucu adı. |
Edgemicro kimlik doğrulama proxy'sini özelleştirme
Edge Microgateway, OAuth2 kimlik doğrulaması için varsayılan olarak Apigee Edge'de dağıtılan bir proxy'yi kullanır.
Bu proxy, edgemicro configure
öğesini ilk çalıştırdığınızda dağıtılır. Şunları değiştirebilirsiniz:
bir JSON Web Jetonu'na özel talepler için destek eklemek üzere bu proxy'nin varsayılan yapılandırması
(JWT), jeton geçerlilik süresini yapılandırın ve yenileme jetonları oluşturun. Ayrıntılar için GitHub'daki edgemicro-auth sayfasına göz atın.
Özel kimlik doğrulama hizmeti kullanma
Edge Microgateway, OAuth2 kimlik doğrulaması için varsayılan olarak Apigee Edge'de dağıtılan bir proxy'yi kullanır.
Bu proxy, edgemicro configure
öğesini ilk çalıştırdığınızda dağıtılır. Varsayılan olarak
proxy'nin URL'si, Edge Microgateway yapılandırma dosyasında aşağıdaki gibi belirtilir:
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
Kimlik doğrulama işlemini yürütmek için kendi özel hizmetinizi kullanmak istiyorsanız
Yapılandırma dosyasında hizmetinize işaret edecek authUri
değeri. Örneğin, üyeleri
Kimlik doğrulamak için LDAP kullanan bir hizmet.
Günlük dosyalarını yönetme
Edge Microgateway, her istek ve yanıtla ilgili bilgileri günlüğe kaydeder. Günlük dosyaları, hata ayıklama ve sorun giderme bilgilerini inceleyin.
Günlük dosyalarının depolandığı yer
Varsayılan olarak, günlük dosyaları /var/tmp
konumunda depolanır.
Varsayılan günlüğü değiştirme dosya dizini
Günlük dosyalarının depolandığı dizin, Edge Microgateway yapılandırmasında belirtilmiştir. dosyası olarak kaydedebilirsiniz. Ayrıca bkz. Yapılandırma oluşturma değişiklikler başlıklı makaleyi inceleyin.
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
Farklı bir günlük dosyası dizini belirtmek için dir değerini değiştirin.
Günlükleri konsola gönder
Günlük kaydını, günlük bilgilerinin bir
günlük dosyası olarak kaydetmelisiniz. to_console
işaretini aşağıdaki gibi doğru değerine ayarlayın:
edgemicro: logging: to_console: true
Bu ayarda, günlükler standart çıkışa gönderilir. Şu anda günlükleri hem stdout.
Günlük kaydı düzeyini ayarlama
Şu günlük düzeylerini ayarlayabilirsiniz: bilgi, uyarı ve hatalarının nasıl düzeltileceğini öğrenin. Bilgi düzeyi önerilir. Tüm API isteklerini ve yanıtlarını günlüğe kaydeder, ve bu varsayılan değerdir.
Günlük aralıkları nasıl değiştirilir?
Bu aralıkları Edge Microgateway yapılandırma dosyasında yapılandırabilirsiniz. Yapılandırma değişiklikleri yapma başlıklı makaleyi de inceleyin.
Yapılandırılabilir özellikler şunlardır:
- stats_log_interval: (varsayılan: 60) İstatistiklerin saniye cinsinden açık olduğu aralık kaydı, API günlük dosyasına yazılır.
- rotate_interval: (varsayılan: 24) Günlük dosyalarının bulunduğu zaman aralığı, saat cinsinden döndürüldü. Örneğin:
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
İyi günlük dosyası bakımı uygulamaları
Zaman içinde günlük dosyası verileri biriktikçe Apigee, uygulamalar:
- Günlük dosyaları çok büyük hale gelebileceğinden, günlük dosyası dizininin yer açın. Günlük dosyaları nerede depolanır? ve Varsayılan günlük dosyasını değiştirme dizinine ekleyin.
- Günlük dosyalarını haftada en az bir kez silin veya ayrı bir arşiv dizinine taşıyın.
- Politikanız günlükleri silmekse
edgemicro log -c
CLI komutunu kullanabilirsiniz (temiz) eski günlükleri kaldırın.
Günlük dosyası adlandırma kuralı
Her Edge Microgateway örneği, üç tür günlük dosyası üretir:
- api - Edge üzerinden gelen tüm istekleri ve yanıtları günlüğe kaydeder Mikro ağ geçidi. API sayaçları (istatistikler) ve hatalar da bu dosyaya kaydedilir.
- err - Stderr'a gönderilen her şeyi günlüğe kaydeder.
- out - stdout'a gönderilen her şeyi günlüğe kaydeder.
Adlandırma kuralı şöyledir:
edgemicro-<Host Name>-<Instance ID>-<Log Type>.log
Örneğin:
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log
Günlük dosyası içerikleri hakkında
Eklendiği sürüm: 2.3.3 sürümü
Varsayılan olarak günlük kaydı hizmeti; indirilen proxy'lerin, ürünlerin ve JSON'nin JSON'unu atlar.
Web Jetonu (JWT). Bu nesnelerin çıktısını günlük dosyalarına almak isterseniz
Edge Microgateway'i başlattığınızda DEBUG=*
. Örneğin:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
"api" içeriği günlük dosyası
"api" günlük dosyası, istek ve yanıt akışı hakkında ayrıntılı bilgiler içerir aracılığıyla şifre oluşturabilirsiniz. "api" günlük dosyaları şu şekilde adlandırılır:
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
Edge Mikro Ağ Geçidi'ne gönderilen her istek için "api" günlük dosya:
- İstemciden gelen istek
- Hedefe giden istek gönderildi
- Hedeften gelen yanıt
- İstemciye giden yanıt
Bu ayrı girişlerin her biri, günlüğün oluşturulmasına yardımcı olmak için daha küçük hale getirir. Aşağıda, dört etkinliğin her birini temsil eden dört örnek giriş verilmiştir. Günlükte dosyası bu şekilde görünür (satır numaraları yalnızca dokümanda referans amaçlıdır, ).
(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0 (2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0 (3) 1436403888672 info tres s=200, d=7, i=0 (4) 1436403888676 info res s=200, d=11, i=0
Bunları tek tek inceleyelim:
1. İstemciden gelen istek örneği:
1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
- 1436403888651 - Unix tarih damgası
- info: Bağlama göre değişir. Bilgi, uyarı veya hata olabilir. (günlük düzeyine göre değişir). İstatistik kaydı, uyarılar için uyarı veya hatası verir.
- req - Etkinliği tanımlar. Bu durumda, gerekir.
- m: İstekte kullanılan HTTP fiili.
- u - URL'nin, temel yolu izleyen bölümü.
- h - Edge Microgateway'in bulunduğu ana makine ve bağlantı noktası numarası dinlemektir.
- r - İstemcinin istediği uzak ana makine ve bağlantı noktası kaynağıdır.
- i - İstek kimliği. Dört etkinlik girişi de bu kimliği paylaşır. Her biri isteğe benzersiz bir istek kimliği atanır. Günlük kayıtlarını istek kimliğine göre ilişkilendirmek hedefin gecikmesiyle ilgili değerli bir analiz.
- d - İsteğin tarafından alınmasından itibaren geçen süre (milisaniye cinsinden) Edge Mikro Ağ Geçidi. Yukarıdaki örnekte, hedefin 0 isteğine verdiği yanıt alınmıştır 7 milisaniye sonra (satır 3) yanıt gelir ve yanıt, 4 saniye daha milisaniye (4. satır). Başka bir deyişle, toplam istek gecikmesi 11 milisaniyeydi. Bu değer, hedefin 7 milisaniye ve Edge Microgateway tarafından 4 milisaniye kendisi.
2. Hedefe gönderilen giden istek örneği:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651 - Unix tarih damgası
- info: Bağlama göre değişir. Bilgi, uyarı veya hata olabilir. (günlük düzeyine göre değişir). İstatistik kaydı, uyarılar için uyarı veya hatası verir.
- treq - Etkinliği tanımlar. Bu durumda, hedef istek.
- m: Hedef istekte kullanılan HTTP fiili.
- u - URL'nin, temel yolu izleyen bölümü.
- h - Arka uç hedefinin ana makine ve bağlantı noktası numarası.
- i - Günlük girişinin kimliği. Dört etkinlik girişi de bunu paylaşacak. Kimlik.
3. Hedeften gelen yanıt örneği
1436403888672 info tres s=200, d=7, i=0
1436403888651 - Unix tarih damgası
- info: Bağlama göre değişir. Bilgi, uyarı veya hata olabilir. (günlük düzeyine göre değişir). İstatistik kaydı, uyarılar için uyarı veya hatası verir.
- tres - Etkinliği tanımlar. Bu durumda hedef yanıt.
- s: HTTP yanıt durumu.
- d - Milisaniye cinsinden süre. Google'ın API çağrısı için geçen süre yardımcı olur.
- i - Günlük girişinin kimliği. Dört etkinlik girişi de bunu paylaşacak. Kimlik.
4. İstemciye giden yanıt örneği
1436403888676 info res s=200, d=11, i=0
1436403888651 - Unix tarih damgası
- info: Bağlama göre değişir. Bilgi, uyarı veya hata olabilir. (günlük düzeyine göre değişir). İstatistik kaydı, uyarılar için uyarı veya hatası verir.
- res - Etkinliği tanımlar. Bu durumda gerekir.
- s: HTTP yanıt durumu.
- d - Milisaniye cinsinden süre. Bu sayı, harcanan toplam süreyi gösterir hedef API'nin harcadığı süre ve Edge'in harcadığı süre de dahil olmak üzere API çağrısı tarafından Mikro ağ geçidinin kendisi.
- i - Günlük girişinin kimliği. Dört etkinlik girişi de bunu paylaşacak. Kimlik.
Günlük dosyası programı
Günlük dosyaları, rotate_interval ile belirtilen aralıkta döndürülür yapılandırma özelliğini kullanın. Girişler aynı günlük dosyasını döndürme süresi sona erene kadar devam eder. Ancak Edge Microgateway, yeniden başlattığında yeni bir UID alır ve bu UID ile yeni bir günlük dosyaları grubu oluşturur. Şu kaynakları da inceleyin İyi bir günlük dosyası bakımı inceleyin.
Hata mesajları
Bazı günlük girişleri hata mesajları içerir. Hataların nerede ve neden oluştuğunu belirlemeye yardımcı olması için Edge Microgateway hatası referans.
Edge Mikro Ağ Geçidi yapılandırma referansı
Konum yapılandırma dosyası
Bu bölümde açıklanan yapılandırma özellikleri, Edge Mikro Ağ Geçidi içinde bulunur. yapılandırma dosyası. Ayrıca bkz. Yapılandırma oluşturma değişiklikler başlıklı makaleyi inceleyin.
Edge_config özellikleri
Bu ayarlar, Edge Microgateway örneği ile Apigee Edge.
- bootstrap: (varsayılan: yok) Bir Edge'e yönlendiren bir URL
Apigee Edge'de çalışan mikro ağ geçidine özel hizmet. Edge Microgateway, şu işlemleri yapmak için bu hizmeti kullanır:
Apigee Edge ile iletişim kurma. Bu URL,
ortak/özel anahtar çifti:
edgemicro genkeys
. Daha fazla bilgi için Kurulum ve Edge Microgateway'i yapılandırma hakkında daha fazla bilgi edinin. - jwt_public_key: (varsayılan: yok) Edge Mikro Ağ Geçidi'ne yönlendiren bir URL proxy'sini kullanabilirsiniz. Bu proxy, istemcilere imzalı erişim jetonları verme. Şu komutu çalıştırdığınızda bu URL döndürülür: proxy'yi dağıtın: edgemicro configuration. Daha fazla bilgi için Kurulum ve Edge Microgateway'i yapılandırma hakkında daha fazla bilgi edinin.
- quotaUri: Bu yapılandırmayı ayarlayın
Kotaları
edgemicro-auth
proxy'si üzerinden yönetmek istiyorsanız kuruluşunuza dağıtıldı. Bu özellik ayarlanmazsa kota uç noktası varsayılan olarak dahili Edge Microgateway uç noktasına ayarlanır.edge_config: quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
Edgemicro özellikleri
Bu ayarlar Edge Mikro Ağ Geçidi işlemini yapılandırır.
- bağlantı noktası: (varsayılan: 8000) Edge Mikro Ağ Geçidi'nin üzerinde bulunduğu bağlantı noktası numarası dinleme sürecidir.
- max_connections: (varsayılan: -1) Bağlantının maksimum sayısını belirtir
Edge Microgateway'in alabileceği eşzamanlı gelen bağlantılar. Bu numara
aşıldığında, şu durum döndürülür:
.res.statusCode = 429; // Too many requests
- max_connections_hard: (varsayılan: -1) Maksimum eşzamanlı sayısı Edge Mikro Ağ Geçidi'nin bağlantıyı kapatmadan önce alabileceği istekler. Bu ayar amacı, hizmet reddi saldırılarını engellemektir. Bunun için genellikle max_connections.
-
günlük kaydı:
-
level: (varsayılan: hata)
- info - Bir web sunucusu üzerinden gelen tüm istekleri ve yanıtları Edge Microgateway örneği.
- uyarı: Yalnızca uyarı mesajlarını günlüğe kaydeder.
- error - Yalnızca hata mesajlarını günlüğe kaydeder.
- dir: (varsayılan: /var/tmp) Günlük dosyalarının bulunduğu dizin saklanıyor.
- stats_log_interval: (varsayılan: 60) İstatistiklerin saniye cinsinden açık olduğu aralık kaydı, API günlük dosyasına yazılır.
- rotate_interval: (varsayılan: 24) Günlük dosyalarının bulunduğu zaman aralığı, saat cinsinden döndürüldü.
-
level: (varsayılan: hata)
- Eklentiler: Eklentiler, Edge Microgateway'e işlevler ekler. Ayrıntılı bilgi hakkında bilgi edinmek için Özel eklentiler geliştirme başlıklı makaleye göz atın.
- dir: ./gateway dizininden ./plugins dizini veya mutlak bir yol içerir.
- sequence: Edge Microgateway'inize eklenecek eklenti modüllerinin listesi kullanır. Modüller burada belirtildikleri sırayla yürütülecektir.
-
debug: Edge Microgateway işlemine uzaktan hata ayıklama ekler.
- bağlantı noktası: Dinlenecek bağlantı noktası numarası. Örneğin, IDE hata ayıklayıcınızı ayarlayın dinlemesine yardımcı olur.
- bağımsız değişkenler: Hata ayıklama işleminin bağımsız değişkenleridir. Örneğin:
args --nolazy
- config_change_poll_interval: (varsayılan: 600 saniye) Edge Microgateway
Düzenli olarak yeni bir yapılandırma yükler ve herhangi bir değişiklik olursa yeniden yükleme gerçekleştirir. Anket
olarak yapılan değişiklikleri (ör. ürünlerde yapılan değişiklikler, mikro ağ geçidi duyarlı proxy'ler) alır.
yerel yapılandırma dosyasında yapılan değişikliklerin yanı sıra.
- disable_config_poll_interval: (varsayılan: false) Şu değere ayarlanır: Otomatik değişiklik yoklamayı devre dışı bırakmak için true değerini belirleyin.
- request_timeout: Hedef istekler için bir zaman aşımı ayarlar. Zaman aşımını saniye. Zaman aşımı oluşursa Edge Microgateway, 504 durum koduyla yanıt verir. (Eklendi v2.4.x)
- keep_alive_timeout: Bu özellik, Edge Mikro Ağ Geçidi'ni ayarlamanıza olanak tanır. zaman aşımına uğrat (milisaniye cinsinden). (Varsayılan: 5 saniye) (3.0.6 sürümü eklendi)
- headers_timeout: Bu özellik, süreyi (milisaniye cinsinden) sınırlar.
HTTP ayrıştırıcısı,
tamamlamış olması gerekir.
Örneğin:
edgemicro: keep_alive_timeout: 6000 headers_timeout: 12000
Parametre, dahili olarak Node.js
Server.headersTimeout
özelliğini gönderin. (Varsayılan: Şundan 5 saniye fazla:edgemicro.keep_alive_timeout
ile ayarlanan saat. Bu varsayılan değer ayarı yük dengeleyicilerin veya proxy'lerin bağlantıyı hatalı bir şekilde bırakmasını önler.) (3.1.1 sürümü eklendi)
üstbilgi özellikleri
Bu ayarlar, belirli HTTP üstbilgilerinin nasıl işleneceğini yapılandırır.
- x-forwarded-for: (varsayılan: true) Engellemeyi önlemek için false değerine ayarlayın x-forwarded-for üstbilgileri. x-forwarded-for üstbilgisi değeri, Edge Analytics'teki client-ip değeri olarak ayarlanır.
- x-forwarded-host: (varsayılan: true) Engellemeyi önlemek için yanlış değerine ayarlayın x-forwarded-host üstbilgileri, hedefe iletilir.
- x-request-id: (varsayılan: true) Engellemeyi önlemek için false (yanlış) değerine ayarlayın x-request-id üstbilgilerini içermelidir.
- x-response-time: (varsayılan: true) Engellemeyi önlemek için false (yanlış) değerine ayarlayın x-response-time üstbilgilerini kullanabilirsiniz.
- via: (default: true) Üstbilgilerin kullanılmasını önlemek için false (yanlış) değerine ayarlayın hedefe geçilir.
oauth özellikleri
Bu ayarlar, istemci kimlik doğrulamasının Edge Microgateway tarafından nasıl zorunlu kılınacağını yapılandırır.
- allowNoAuthorization: (varsayılan: false) True (doğru) değerine ayarlanırsa API çağrıları Edge Mikro Ağ Geçidi'nden herhangi bir Yetkilendirme başlığı olmadan geçmesine izin verilmiştir. Bunu şuna ayarla: false (yanlış) değerini alır.
- allowInvalidAuthorization: (varsayılan: false) True (doğru) değerine ayarlanırsa API çağrıları Yetkilendirme başlığında iletilen jetonun geçersiz veya süresi dolmuşsa geçirmesine izin verilir. Bunu ayarla geçerli jetonları zorunlu kılmak için false (yanlış) değerine ayarlayın (varsayılan).
- auth-header: (varsayılan: Yetkilendirme: Bearer) Aşağıdaki işlemler için kullanılan başlık erişim jetonunu Edge Mikro Ağ Geçidi'ne gönderin. Aşağıdaki durumlarda varsayılan ayarı değiştirmek isteyebilirsiniz: hedefin, Yetkilendirme başlığını başka bir amaçla kullanması gerekir.
- api-key-header: (varsayılan: x-api-key) Başlığın veya sorgunun adı API anahtarının Edge Microgateway'e iletilmesi için kullanılan parametredir. Ayrıca bkz. API anahtarı.
- keep-authorization-header: (default: false) Doğru değerine ayarlanırsa Yetkilendirme başlığı istekte gönderilen istek hedefe iletilir (korunur).
- allowOAuthOnly -- True (doğru) değerine ayarlanırsa her API'nin bir Yetkilendirme taşıması gerekir bir hamiline ait erişim jetonu bulunur. Yalnızca OAuth güvenlik modeline ( geriye dönük uyumluluğu koruma). (2.4.x eklendi)
- allowAPIKeyOnly -- True (doğru) değerine ayarlanırsa her API'nin bir API Anahtarı'na sahip x-api-key üstbilgisi (veya özel bir konum). yalnızca API anahtarı güvenlik modeli (geriye dönük uyumluluğu korurken) (2.4.x eklendi)
- gracePeriod -- Bu parametre, kısa süreli bir hatadan kaynaklanan hataları önlemeye yardımcı olur sistem saatiniz ile Öncesi Değil (nbf) veya Verildiği Tarih (iat) saatleri arasındaki tutarsızlıklar JWT yetkilendirme jetonunda belirtilir. Bu parametreyi, izin verilecek saniye sayısına ayarlayın göz önünde bulundurmalısınız. (2.5.7'ye Eklendi)
Eklentiye özel özellikler
Her bir eklentiye ilişkin yapılandırılabilir özelliklerle ilgili ayrıntılar için Eklentileri kullanma bölümüne bakın.
Proxy'leri filtreleme
Bir Edge Mikro Ağ Geçidi örneğinin hangi mikro ağ geçidine duyarlı proxy'leri işleyeceğini filtreleyebilirsiniz.
Edge Microgateway başladığında, Search Console'daki tüm mikro ağ geçidine duyarlı proxy'leri
ön plana çıkarmanıza yardımcı olabilir. Kullanılacak proxy'leri sınırlandırmak için
izin verdiği anlamına gelir. Örneğin, bu yapılandırma, proxy 360'taki
üç olarak işlenecek: edgemicro_proxy-1
, edgemicro_proxy-2
,
ve edgemicro_proxy-3
:
edgemicro: proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
Ürünleri filtreleme
Edge Microgateway tarafından sunulan API ürünlerinin sayısını sınırlamak için
indirme ve işlem aşamalarıdır. İndirilen ürünleri filtrelemek için productnamefilter
ekleyin
Edge Mikro Ağ Geçidi *.config.yaml
içinde listelenen /products
API'sine sorgu parametresi
dosyası olarak kaydedebilirsiniz. Örneğin:
edge_config: bootstrap: >- https://edgemicroservices.apigee.net/edgemicro/bootstrap/organization/willwitman/environment/test jwt_public_key: 'https://myorg-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://myorg-test.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24'
Sorgu parametresi değerinin normal ifade biçiminde belirtilmesi ve
URL kodlamalı olmalıdır. Örneğin, ^[Ee]dgemicro.*$
normal ifadesi aşağıdaki gibi adları yakalar:
"edgemicro-test-1" , "edgemicro_demo" ve "Edgemicro_Yeni_Demo". Şu işlemler için uygun olan, URL kodlamalı değer:
sorgu parametresinde kullanılan değer: %5E%5BEe%5Ddgemicro.%2A%24
.
Aşağıdaki hata ayıklama çıktısı yalnızca filtrelenmiş ürünlerin indirildiğini göstermektedir:
... 2020-05-27T03:13:50.087Z [76060] [microgateway-config network] products download from https://gsc-demo-prod.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24 returned 200 OK ... .... .... { "apiProduct":[ { "apiResources":[ ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1590549037549, "createdBy":"k***@g********m", "displayName":"test upper case in name", "environments":[ "prod", "test" ], "lastModifiedAt":1590549037549, "lastModifiedBy":"k***@g********m", "name":"Edgemicro_New_Demo", "proxies":[ "catchall" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ ] }, { "apiResources":[ ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1590548328998, "createdBy":"k***@g********m", "displayName":"edgemicro test 1", "environments":[ "prod", "test" ], "lastModifiedAt":1590548328998, "lastModifiedBy":"k***@g********m", "name":"edgemicro-test-1", "proxies":[ "Lets-Encrypt-Validation-DoNotDelete" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ ] }, { "apiResources":[ "/", "/**" ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1558182193472, "createdBy":"m*********@g********m", "displayName":"Edge microgateway demo product", "environments":[ "prod", "test" ], "lastModifiedAt":1569077897465, "lastModifiedBy":"m*********@g********m", "name":"edgemicro_demo", "proxies":[ "edgemicro-auth", "edgemicro_hello" ], "quota":"600", "quotaInterval":"1", "quotaTimeUnit":"minute", "scopes":[ ] } ] }
Analiz aktarma sıklığını yapılandırma
Edge Microgateway'in veri gönderme sıklığını kontrol etmek için bu yapılandırma parametrelerini kullanın analiz verilerini Apigee'ye aktarır:
- bufferSize (İsteğe bağlı): arabellekte tutulması gereken süre bulunur. Varsayılan: 10.000
- batchSize (İsteğe bağlı): Bir analiz kaydı grubunun maksimum boyutu Apigee'ye gönderildi. Varsayılan: 500
- flushInterval (İsteğe bağlı): Her yıkama arasındaki milisaniye sayısı Apigee'ye gönderilen bir grup analiz kaydı. Varsayılan: 5.000
Örneğin:
analytics: bufferSize: 15000 batchSize: 1000 flushInterval: 6000
Analiz verilerini maskeleme
Aşağıdaki yapılandırma, istek yolu bilgilerinin Edge'de gösterilmesini engelliyor Analytics'ten ulaşabilirsiniz. İstek URI'sini maskelemek ve/veya istek yolunu sunar. URI'nın, isteğin ana makine adından ve yol bölümlerinden oluştuğunu unutmayın.
analytics: mask_request_uri: 'string_to_mask' mask_request_path: 'string_to_mask'
Edge Analytics'te API çağrılarını ayırma
Analytics eklentisini, belirli bir API yolunu ayırmak için yapılandırarak Edge Analytics kontrol panellerinde ayrı bir proxy kullanılır. Örneğin, şunları yapabilirsiniz: gerçek API proxy çağrılarıyla karıştırmamak için kontrol panelindeki durum denetimi API'sini ayırın. Analytics kontrol panelinde, ayrılmış proxy'ler şu adlandırma kalıbını kullanır:
edgemicro_proxyname-health
Aşağıdaki resimde, Analytics kontrol panelindeki ayrılmış iki proxy gösterilmektedir: edgemicro_hello-health
ve
edgemicro_mock-health
:
Bunları kullan parametrelerini (Analytics kontrol panelindeki göreli ve mutlak yolları ayrı proxy'ler olarak ayırmak için) aşağıdaki parametreleri kullanabilirsiniz:
- relativePath (İsteğe bağlı): Ayırtılacak göreli yolu
Analytics kontrol paneli. Örneğin,
/healthcheck
belirtirseniz yolu içeren tüm API çağrıları/healthcheck
, kontrol panelindeedgemicro_proxyname-health
olarak görünür. Bu işaretin proxy temel yolunu yok saydığını unutmayın. Basepath dahil olmak üzere tam yola göre ayırmak içinproxyPath
işaretini kullanın. - proxyPath (İsteğe bağlı): Proxy dahil olmak üzere tam API proxy yolunu belirtir
Basepath'ini kullanabilirsiniz. Örneğin,
/mocktarget/healthcheck
belirtirseniz, burada/mocktarget
proxy temel yolu ise/mocktarget/healthcheck
yoluna sahip tüm API çağrıları kontrol panelindeedgemicro_proxyname-health
olarak görünür.
Örneğin, aşağıdaki yapılandırmada /healthcheck
içeren herhangi bir API yolu
Analytics eklentisi tarafından ayrılacaktır. Bu, /foo/healthcheck
ve /foo/bar/healthcheck
anlamına gelir
Analytics kontrol panelinde edgemicro_proxyname-health
adında ayrı bir proxy olarak ayrılır.
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 relativePath: /healthcheck
Aşağıdaki yapılandırmada, /mocktarget/healthcheck
proxy yoluna sahip tüm API'ler
öğesi, edgemicro_proxyname-health
ve
analitik kontrol paneline gidin.
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 proxyPath: /mocktarget/healthcheck
Edge Mikro Ağ Geçidi'ni şirket güvenlik duvarı
Apigee Edge ile iletişim için HTTP proxy kullanma
3.1.2 sürümünde eklendi.
Edge Microgateway ve Apigee Edge arasında iletişim için HTTP proxy'si kullanmak için takip etmek için:
- Ortam değişkenlerini ayarlama
HTTP_PROXY
,HTTPS_PROXY
veNO_PROXY
. Bu değişkenleri, iletişimde kullanmak istediğiniz her bir HTTP proxy için ana makineleri kontrol eder Apigee Edge ile iletişim kuramaz. Örneğin:export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786' export NO_PROXY='localhost,localhost:8080'
NO_PROXY
etiketinin, Edge Microgateway tarafından sunulan alan adlarının virgülle ayrılmış bir listesi olabileceğini unutmayın yönlendirmemelidir.Bu değişkenler hakkında daha fazla bilgi için https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables adresine bakın
- Edge Microgateway'i yeniden başlatın.
Hedef iletişim için HTTP proxy kullan
3.1.2 sürümünde eklendi.
Edge Microgateway ile arka uç hedefleri arasında iletişim için HTTP proxy kullanmak için şunları yapın:
- Mikro ağ geçidi yapılandırma dosyasına aşağıdaki yapılandırmayı ekleyin:
edgemicro: proxy: tunnel: true | false url: proxy_url bypass: target_host # target hosts to bypass the proxy. enabled: true | false
Burada:
- tunnel: (İsteğe bağlı) Doğru olduğunda Edge Microgateway, HTTP tünel protokolü için HTTP BAĞLANTI yöntemini kullanır
tek bir TCP bağlantısı üzerinden istek gönderebilir. (Aynı durum, sahip olunan
aşağıda belirtilenler,
TLS'nin etkin olduğu durumlarda) Varsayılan:
false
- url: HTTP proxy URL'si.
- bypass: (İsteğe bağlı) Aşağıdaki koşulları karşılayan bir veya daha fazla virgülle ayrılmış hedef ana makine URL'sini HTTP proxy'yi atlamalıdır. Bu özellik ayarlanmadıysa NO_PROXY işlevini kullanın. ortam değişkenini kullanarak atlanacak hedef URL'leri belirtin.
- etkin: Doğru ve
proxy.url
ayarlanırsa HTTP proxy içinproxy.url
değerini kullanın. Doğru veproxy.url
ayarlanmazsa HTTP proxy'de belirtilen proxy'leri kullanın (bkz.HTTP_PROXY
veHTTPS_PROXY
ortam değişkenleri) Apigee Edge ile iletişim için HTTP proxy kullanma.
Örneğin:
edgemicro: proxy: tunnel: true url: 'http://localhost:3786' bypass: 'localhost','localhost:8080' # target hosts to bypass the proxy. enabled: true
- tunnel: (İsteğe bağlı) Doğru olduğunda Edge Microgateway, HTTP tünel protokolü için HTTP BAĞLANTI yöntemini kullanır
tek bir TCP bağlantısı üzerinden istek gönderebilir. (Aynı durum, sahip olunan
aşağıda belirtilenler,
TLS'nin etkin olduğu durumlarda) Varsayılan:
- Edge Microgateway'i yeniden başlatın.
Microgateway ile uyumlu cihazlarda joker karakterler kullanma proxy'ler
Bir veya daha fazla "*" kullanabilirsiniz bir
edgemicro_* (Mikro ağ geçidine duyarlı) proxy'si. Örneğin,
/team/*/members, müşterilerin
https://[host]/team/blue/members ve
Yeni API proxy'leri oluşturmanıza gerek kalmadan https://[host]/team/green/members adresini kullanabilirsiniz.
ve yeni ekipleri desteklemek
konusunda size yardımcı olabilirler. /**/
desteklenmediğini unutmayın.
Önemli: Apigee, "*" joker karakteri kullanılmasını DESTEKLEMEZ olarak
bir temel yolun ilk öğesi. Örneğin, şu DESTEKLENMEZ: /*/
araması.
JWT anahtarlarını döndürme
İlk kez bir JWT oluşturduktan sonra belirli bir süre içinde, Edge ile şifrelenmiş KVM'de depolanan ortak/özel anahtar çifti. Bu yeni anahtar oluşturma süreci çiftine anahtar rotasyonu denir.
Edge Microgateway, JWT'yi nasıl kullanır?
JSON Web Token (JWT), RFC7519'da açıklanan bir jeton standardıdır. JWT, bir dizi hak talebini imzalamanın bir yolunu sunar. JWT alıcısı tarafından güvenilir bir şekilde doğrulanabilir.
Edge Microgateway, OAuth güvenliği için taşıyıcı jeton olarak JWT'leri kullanır. Oluşturduğunuz Edge Microgateway için OAuth jetonu alırsanız bir JWT geri alırsınız. Daha sonra JWT'yi API çağrılarının yetkilendirme üstbilgisi. Örneğin:
curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"
Yeni bir JWT oluşturuluyor
edgemicro token
komutunu kullanarak Edge Mikro Ağ Geçidi için bir JWT oluşturabilirsiniz veya
API'dir. Örneğin:
edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
Bu komut Apigee Edge'in daha sonra API'yi doğrulamak için kullanılabilecek bir JWT oluşturmasını ister
çağrısının en iyi yolu. -i
ve -s
parametreleri, bir geliştirici uygulamasındaki tüketici kimliği ve gizli anahtar değerleridir
dikkatinizi çekeriz.
Dilerseniz management API'yi kullanarak bir JWT oluşturabilirsiniz:
curl -i -X POST "http://$ORG-$ENV.apigee.net/edgemicro-auth/token" \ -H "Content-Type: application/json" \ -d '{ "$CLIENT_ID": "your consumer key", "$CLIENT_SECRET": "your consumer secret", "grant_type": "client_credentials" }'
Burada:
- $ORG, Edge kuruluş adınızdır (kuruluş yöneticisi olmanız gerekir).
- $ENV, kuruluşunuzda bulunan bir ortamdır (ör. "test" veya "prod").
- $CLIENT_ID, daha önce oluşturduğunuz geliştirici uygulamasındaki tüketici kimliğidir.
- $CLIENT_SECRET, oluşturduğunuz Geliştirici Uygulamasındaki Tüketici Sırrıdır öğrendi.
Anahtar rotasyonu nedir?
İlk kez bir JWT oluşturduktan sonra belirli bir süre içinde, Edge ile şifrelenmiş KVM'de depolanan ortak/özel anahtar çifti. Bu yeni anahtar oluşturma süreci çiftine anahtar rotasyonu denir. Anahtarları döndürdüğünüzde yeni bir özel/ortak anahtar çifti oluşturulur. "mikro ağ geçidinde" depolanır Apigee Edge kuruluşunuzda/ortamınızda KVM'ye gidin. Ayrıca, eski ortak anahtar, orijinal anahtar kimliği değeriyle birlikte saklanır.
Edge, JWT oluşturmak için şifrelenmiş KVM'de depolanan bilgileri kullanır. CEVAP
microgateway
adlı KVM oluşturuldu ve ilk kurulum (yapılandırılmış) sırasında anahtarlarla dolduruldu
Edge Mikro Ağ Geçidi. KVM'deki anahtarlar, JWT'yi imzalamak ve şifrelemek için kullanılır.
KVM anahtarları şunları içerir:
-
private_key: Oturum açmak için kullanılan en yeni (en son oluşturulan) RSA özel anahtarı JWT'ler.
-
public_key: JWT'leri doğrulamak için kullanılan en son (en son oluşturulan) sertifika private_key ile imzalanır.
-
private_key_kid - En yeni (en son oluşturulan) özel anahtar kimliği. Bu anahtar kimliği private_key değeriyle ilişkilendirilir ve anahtar rotasyonunu desteklemek için kullanılır.
-
public_key1_kid - En son (en son oluşturulan) ortak anahtar kimliği. Bu anahtar ortak_anahtar1 değeriyle ilişkilendirilir ve anahtar rotasyonunu desteklemek için kullanılır. Bu değer özel anahtar alt öğesi ile aynıdır.
-
public_key1 - En son (en son oluşturulan) ortak anahtar.
Anahtar rotasyonu yaptığınızda, haritadaki mevcut anahtar değerleri değiştirilir ve yeni anahtar/değer çiftleri eski ortak anahtarları korumak için anahtarlar eklenir. Örneğin:
-
public_key2_kid - Eski ortak anahtar kimliği. Bu anahtar ortak_anahtar2 değerine ayarlanır ve anahtar rotasyonunu desteklemek için kullanılır.
-
public_key2 - Eski ortak anahtar.
Doğrulama için sunulan JWT'ler yeni ortak anahtar kullanılarak doğrulanır. Eğer Doğrulama başarısız olursa, süresi dolana kadar (30 dakika sonra) eski ortak anahtar kullanılır. İçinde bu şekilde “döndürmenizi” anahtarlarını API trafiğini hemen kesintiye uğratmadan değiştirebilirsiniz.
Anahtar rotasyonu nasıl yapılır?
Bu bölümde, anahtar rotasyonunun nasıl gerçekleştirileceği açıklanmaktadır.
Edge Microgateway örneğinizi 2.5.2 sürümünden önce yapılandırdıysanız
Edge Microgateway örneğinizi 2.5.2 sürümünden önce yapılandırdıysanız KVM'yi ve kimlik doğrulama politikasını yükseltmek için aşağıdaki iki komutu kullanın:
upgradekvm -o $ORG -e $ENV -u $USERNAME
Bu komut hakkında daha fazla bilgi edinmek için Yeni sürüme geçme KVM'ye gidin.
Sonraki komut,edgemicro-oauth Apigee kuruluşunuz ile ilişkilendirebilirsiniz. Bu proxy, şunun için gereken hizmetleri sağlar: jeton oluşturacaktır.
upgradeauth -o $ORG -e $ENV -u $USERNAME
Bu komut hakkında daha fazla bilgi için bkz. uç mikro kimlik doğrulama proxy'si ekleyebilirsiniz.
Tuşları döndürme
Aşağıdaki satırı ~/.edgemicro/org-env-config.yaml
dosyanıza ekleyin,
mikro ağ geçidini kullanmak üzere yapılandırdığınız kuruluşu ve ortamı belirtin:
jwk_public_keys: 'https://org-env.apigee.net/edgemicro-auth/jwkPublicKeys'
Anahtarları döndürmek için anahtar döndürme komutunu çalıştırın. (Bu komut hakkında daha fazla bilgi için Döndürülen anahtarlar.)
edgemicro rotatekey -o $ORG -e $ENV -u $USERNAME -k $KID_VALUE
Örneğin:
edgemicro rotatekey -o jdoe -e test -u jdoe@google.com -k 2 current nodejs version is v12.5.0 current edgemicro version is 3.1.0 password: Checking if private key exists in the KVM... Checking for certificate... Found Certificate Generating New key/cert pair... Extract new public key Key Rotation successfully completed!
-k
parametresi bir Anahtar Kimliği (çocuk) belirtir. Bu kimlik, belirli bir anahtarı eşleştirmek için kullanılır.
Edge Microgateway, anahtar döndürme sırasında bir anahtar grubu arasından seçim yapmak için bu değeri kullanır. Daha fazla
için, bkz. Bölüm 4.5
JSON Web Anahtarı spesifikasyonu.
Tuş döndürüldükten sonra Edge, Edge Microgateway'e birden fazla anahtar döndürür. Not: Aşağıdaki örnekte, her anahtarın benzersiz bir "çocuk" (Anahtar Kimliği) değerini girin. Mikro ağ geçidi daha sonra bu anahtarları dahil edilir. Jeton doğrulaması başarısız olursa mikro ağ geçidi anahtar kümesinde daha eski bir anahtar olup olmadığına bakın ve bu anahtarı dener. Etiketin biçimi döndürülen anahtarlar ise JSON Web Anahtarı'dır (JWK). RFC 7517'de bu biçim hakkında bilgi edinebilirsiniz.
{ "keys": [ { "kty": "RSA", "n": "nSl7R_0wKLiWi6cO3n8aOJwYGBtinq723Jgg8i7KKWTSTYoszOjgGsJf_MX4JEW1YCScwpE5o4o8ccQN09iHVTlIhk8CNiMZNPipClmRVjaL_8IWvMQp1iN66qy4ldWXzXnHfivUZZogCkBNqCz7VSC5rw2Jf57pdViULVvVDGwTgf46sYveW_6h8CAGaD0KLd3vZffxIkoJubh0yMy0mQP3aDOeIGf_akeZeZ6GzF7ltbKGd954iNTiKmdm8IKhz6Y3gLpC9iwQ-kex_j0CnO_daHl1coYxUSCIdv4ziWIeM3dmjQ5_2dEvUDIGG6_Az9hTpNgPE5J1tvrOHAmunQ", "e": "AQAB", "kid": "2" }, { "kty": "RSA", "n": "8BKwzx34BMUcHwTuQtmp8LFRCMxbkKg_zsWD6eOMIUTAsORexTGJsTy7z-4aH0wJ3fT-3luAAUPLBQwGcuHo0P1JnbtPrpuYjaJKSZOeIMOnlryJCspmv-1xG4qAqQ9XaZ9C97oecuj7MMoNwuaZno5MvsY-oi5B_gqED3vIHUjaWCErd4reONyFSWn047dvpE6mwRhZbcOTkAHT8ZyKkHISzopkFg8CD-Mij12unxA3ldcTV7yaviXgxd3eFSD1_Z4L7ZRsDUukCJkJ-8qY2-GWjewzoxl-mAW9D1tLK6qAdc89yFem3JHRW6L1le3YK37-bs6b2a_AqJKsKm5bWw", "e": "AQAB", "kid": "1" } ] }
İndirilen proxy'leri filtreleme
Edge Mikro Ağ Geçidi, varsayılan olarak Edge kuruluşunuzdaki tüm proxy'leri indirir "edgemicro_" adlandırma önekiyle başlayan reklamlar için de kullanılır. Proxy indirmek için bu varsayılan ayarı değiştirebilirsiniz izin verir.
- Edge Micro yapılandırma dosyanızı açın:
~/.edgemicro/org-env-config.yaml
- Edge_config altına proxyPattern öğesini ekleyin. Örneğin, aşağıdaki kalıp
Edgemicro_foo, Edgemicro_Fast ve Edgemicro_first gibi proxy'ler indirin.
edge_config: … proxyPattern: edgemicro_f*
API proxy'leri olmadan ürün belirtme
Apigee Edge'de API proxy'si içermeyen bir API ürünü oluşturabilirsiniz. Bu ürün yapılandırması, söz konusu ürünle ilişkilendirilmiş bir API anahtarının proxy ekleyebilirsiniz. Edge Microgateway, 2.5.4 sürümünden itibaren bu ürünü desteklemektedir. yapılandırma.
Hata ayıklama ve sorun giderme
Hata ayıklayıcıya bağlanma
Edge Microgateway'i node-inspector gibi bir hata ayıklayıcıyla çalıştırabilirsiniz. Bu, özellikle sorun giderme ve özel eklentilerde hata ayıklama.
- Edge Microgateway'i hata ayıklama modunda yeniden başlatın. Bunu yapmak için,
DEBUG=*
öğesini şuraya ekleyin:start
komutunun başlangıcı:DEBUG=* edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
Hata ayıklama çıktısını bir dosyaya yönlendirmek için şu komutu kullanabilirsiniz:
export DEBUG=* nohup edgemicro start \ -o $ORG -e $ENV -k $KEY -s $SECRET 2>&1 | tee /tmp/file.log
- Hata ayıklayıcınızı başlatın ve hata ayıklama işlemi için bağlantı noktası numarasını dinleyecek şekilde ayarlayın.
- Artık Edge Mikro Ağ Geçidi kodunda gezinebilir, ayrılma noktaları ayarlayabilir, izleme ifadelerini vb.
Hata ayıklama moduyla ilgili standart Node.js işaretlerini belirtebilirsiniz. Örneğin,
--nolazy
, eşzamansız kodda hata ayıklama konusunda yardımcı olur.
Günlük dosyaları kontrol ediliyor
Sorun yaşıyorsanız yürütme ayrıntıları ve hata bilgileri için günlük dosyalarını incelediğinizden emin olun. ekleyebilirsiniz. Ayrıntılar için Günlük dosyalarını yönetme başlıklı makaleye bakın.
API anahtarı güvenliğini kullanma
API anahtarları, Edge'e istek gönderen istemcilerin kimliğini doğrulamak için basit bir mekanizma sağlar Mikro ağ geçidi. Tüketici Anahtarı (İstemci Kimliği olarak da adlandırılır) değerini kopyalayarak API anahtarı edinebilirsiniz. Edge Microgateway kimlik doğrulama proxy'sini içeren bir Apigee Edge ürününden indirin.
Anahtarları önbelleğe alma
API anahtarları, önbelleğe alınan hamiline ait jetonlarla değiştirilir. Önbelleğe almayı
Edge'e gelen isteklerde Cache-Control: no-cache
üstbilgisi
Mikro ağ geçidi.
Bir API anahtarını kullanma
API anahtarını bir API isteğindeki sorgu parametresi olarak veya başlık içinde aktarabilirsiniz. Varsayılan olarak
hem başlık hem de sorgu parametresi adı x-api-key
şeklindedir.
Sorgu parametresi örneği:
curl http://localhost:8000/foobar?x-api-key=JG616Gjz7xs4t0dvpvVsGdI49G34xGsz
Başlık örneği:
curl http://localhost:8000/foobar -H "x-api-key:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
API anahtarı adını yapılandırma
Varsayılan olarak x-api-key
, hem API anahtarı başlığı hem de sorgu parametresi için kullanılan addır.
Bu varsayılan ayarı, Yapılandırma değişiklikleri yapma başlıklı makalede açıklandığı şekilde yapılandırma dosyasında değiştirebilirsiniz. Örneğin,
apiKey'e bir ad verin:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey
Bu örnekte, hem sorgu parametresi hem de başlık adı apiKey
olarak değiştirilmiştir. İlgili içeriği oluşturmak için kullanılan
x-api-key
adı artık iki durumda da çalışmayacak. Şu kaynakları da inceleyin
Yapılandırma değişiklikleri yapma.
Örneğin:
curl http://localhost:8000/foobar -H "apiKey:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
Proxy istekleriyle API anahtarları kullanma hakkında daha fazla bilgi için bkz. Secure Edge mikro ağ geçidi.
Yukarı akış yanıt kodlarını etkinleştir
Varsayılan olarak, oauth
eklentisi yalnızca aşağıdaki durumlarda 4xx hata durum kodları döndürür.
yanıt 200 durumunda değil. Bu davranışı, daima en az
hatasına bağlı olarak tam 4xx veya 5xx kodunu döndürür.
Bu özelliği etkinleştirmek için oauth.useUpstreamResponse: true
ekleyin
özelliğini Edge Mikro ağ geçidi yapılandırmanıza ekleyin. Örneğin:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false gracePeriod: 10 useUpstreamResponse: true
OAuth2 jeton güvenliğini kullanma
Bu bölümde, OAuth2 erişim jetonlarının nasıl alınacağı ve yenileme jetonlarının nasıl alınacağı açıklanmaktadır. Erişim jetonları şunun için kullanılır: güvenli API çağrıları gönderir. Yenileme jetonları yeni erişim jetonları almak için kullanılır.
Erişim jetonu nasıl alınır?
Bu bölümde, erişim jetonu almak için edgemicro-auth
proxy'sinin nasıl kullanılacağı açıklanmaktadır.
edgemicro token
CLI komutunu kullanarak da bir erişim jetonu alabilirsiniz.
KSA hakkında ayrıntılar için Jetonları yönetme bölümüne bakın.
API 1: Kimlik bilgilerini gövde parametreleri olarak gönderme
URL'deki kuruluş ve ortam adlarınızı değiştirin ve Apigee'deki bir geliştirici uygulamasından edinilen Tüketici Kimliği ve Tüketici Sırrı değerlerini değiştirin client_id ve client_secret gövde parametreleri için kenar:
curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" \ -d '{"grant_type": "client_credentials", "client_id": "your_client_id", \ "client_secret": "your_client_secret"}' -H "Content-Type: application/json"
API 2: Kimlik bilgilerini Temel Kimlik Doğrulama üstbilgisinde gönderme
İstemci kimlik bilgilerini Temel Kimlik Doğrulama üstbilgisi olarak ve
grant_type
parametresini form parametresi olarak kullanabilirsiniz. Bu komut formu ayrıca
RFC 6749: OAuth 2.0 Yetkilendirme Çerçevesi.
http://<org>-<test>.apigee.net/edgemicro-auth/token -v -u your_client_id:your_client_secret \ -d 'grant_type=client_credentials' -H "Content-Type: application/x-www-form-urlencoded"
Örnek çıkış
API bir JSON yanıtı döndürür.token
ile eşleme türü arasında fark yoktur.
access_token
mülk. İkisinden birini kullanabilirsiniz.
{ "token": "eyJraWQiOiIxIiwidHlwIjoi", "access_token": "eyJraWQiOiIxIiwid", "token_type": "bearer", "expires_in": "108000" }
Yenileme jetonu nasıl alınır?
Yenileme jetonu almak için/token
edgemicro-auth
proxy'si. Bu API çağrısını password
ile yapmanız ZORUNLUDUR
izin türü. Aşağıdaki adımlar bu süreçte size yol gösterir.
/token
API ile erişim ve yenileme jetonu alın. Lütfen izin türüpassword
ise:curl -X POST \ https://your_organization-your_environment.apigee.net/edgemicro-auth/token \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9oE5zLdifoDbF931TDnDtLq", "client_secret":"bUdDcFgv3nXffnU", "grant_type":"password", "username":"mpK6lBx9RoE5LiffoDbpF931TDnDtLq", "password":"bUdD2FvnMsXffnU" }'
API, bir erişim jetonu ve yenileme jetonu döndürür. Yanıt şuna benziyor: bu:
{ "token": "your-access-token", "access_token": "your-access-token", "token_type": "bearer", "expires_in": "108000", "refresh_token": "your-refresh-token", "refresh_token_expires_in": "431999", "refresh_token_issued_at": "1562087304302", "refresh_token_status": "approved" }
- Yeni bir erişim jetonu almak için artık aşağıdaki kodu çağırarak yenileme jetonunu kullanabilirsiniz:
aynı API'nin
/refresh
uç noktası. Örneğin:curl -X POST \ https://willwitman-test.apigee.net/edgemicro-auth/refresh \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9RoE5zLifoDbpF931TDnDtLq", "client_secret":"bUdDc2Fv3nMXffnU", "grant_type":"refresh_token", "refresh_token":"your-refresh-token" }'
API, yeni bir erişim jetonu döndürür. Yanıt şuna benzer:
{ "token": "your-new-access-token" }
Sonsuza kadar izleme
Forever, bir Google Cloud blogu olan işlemin durması veya hata olması durumunda bir Node.js uygulamasını otomatik olarak yeniden başlatır. Kenar Microgateway, ne kadarının kaç tane olduğunu kontrol etmek için yapılandırabileceğiniz bir forever.json dosyası içerir. Edge Microgateway'in hangi aralıklarla yeniden başlatılması gerektiğini kontrol edin. Bu dosya Forever'ı yöneten forever-monitor adlı sonsuz bir hizmet daha fazla bilgi edindiniz.
forever.json dosyasını Edge Microgateway kök yükleme klasöründe bulabilirsiniz dizin. Bkz. Edge Microgateway'in yüklü olduğu yerler. Yapılandırma seçenekleriyle ilgili ayrıntılar için şuraya bakın: forever-monitor belgeleri.
edgemicro forever
komutu, öğenin konumunu belirtmenize olanak tanıyan işaretler içerir
forever.json
dosyasını (-f
işareti) yükleyin ve sonsuza kadar izlemeyi başlatın/durdurun
(-a
işareti). Örneğin:
edgemicro forever -f ~/mydir/forever.json -a start
Daha fazla bilgi için CLI referansındaki Sürekli izleme bölümüne bakın.
Yapılandırma dosyası uç noktası belirtme
Birden fazla Edge Microgateway örneği çalıştırıyorsanız bunların yapılandırmalarını yönetmek isteyebilirsiniz tek bir yerden takip edebilirsiniz. Bunu, Edge Micro'nın izin verdiği bir HTTP uç noktası belirterek yapabilirsiniz: yapılandırma dosyasını indirin. Edge Micro'yı başlattığınızda bu uç noktayı belirtebilirsiniz: -u işaretini kullanın.
Örneğin:
edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key
Burada mgconfig uç noktası yapılandırma dosyanızın içeriğini döndürür. Bu dosya
bu, varsayılan olarak ~/.edgemicro
bölgesindedir ve adlandırma kuralına sahiptir:
org-env-config.yaml
.
TCP bağlantısı verilerinin arabelleğe alınmasını devre dışı bırakma
nodelay
yapılandırma özelliğini kullanarak veri arabelleğe alma özelliğini şunun için devre dışı bırakabilirsiniz:
Edge Microgateway tarafından kullanılan TCP bağlantıları.
Varsayılan olarak TCP bağlantıları, Nagle
algoritmasının indirebileceği adımları uygulayın. nodelay
, true
olarak ayarlanıyor,
bu davranışı devre dışı bırakır (veriler her seferinde verileri
socket.write()
çağrılır). Ayrıca bkz. Node.js
dokümanlarına göz atabilirsiniz.
nodelay
özelliğini etkinleştirmek için Edge Micro yapılandırma dosyasını şu şekilde düzenleyin:
edgemicro: nodelay: true port: 8000 max_connections: 1000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
Edge Mikro Ağ Geçidi'ni bağımsız modda çalıştırma
Chrome Web Mağazası'ndan, Apigee Edge bağımlılığı. Bağımsız mod adı verilen bu senaryo, Edge Microgateway'i çalıştırıp test etmenize olanak tanır İnternet bağlantısı olmadan.
Aşağıdaki özellikler bağlantı gerektirdiğinden bağımsız modda çalışmaz Apigee Edge'e:
- OAuth ve API anahtarı
- Kota
- Analiz
Diğer yandan, özel eklentiler ve artış önleme
Apigee Edge'e bağlanmanız gerekir. Ayrıca extauth
adlı yeni eklenti sayesinde
Bağımsız moddayken mikro ağ geçidine bir JWT ile API çağrılarını yetkilendirme.
Ağ geçidini yapılandırma ve başlatma
Edge Microgateway'i bağımsız modda çalıştırmak için:
- Şu ada sahip bir yapılandırma dosyası oluşturun:
$HOME/.edgemicro/$ORG
-
$ENV-config.yamlÖrneğin:
vi $HOME/.edgemicro/foo-bar-config.yaml
- 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
- Örnek oluşturmak için değer sağladığınız aşağıdaki
start
komutunu yürütün: yerel proxy:edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \ -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH
Burada:
- $ORG, "kuruluş"tur. kullandığınız adı belirtmelisiniz.
- $ENV "env"dir yapılandırma dosyasında kullandığınız ad dokunun.
- $LOCAL_PROXY_NAME, oluşturulacak yerel proxy'nin adıdır. Tekliflerinizi otomatikleştirmek ve optimize etmek için istediğiniz adı ekleyin.
- $LOCAL_PROXY_VERSION proxy'nin sürüm numarasıdır.
- $TARGET_URL, proxy hedefinin URL'sidir. (Hedef, bir hizmetten ibaret değildir.)
- $BASE_PATH, proxy'nin temel yoludur. Bu değer yönlendirmeyle başlamalıdır eğik çizgi. Kök temel yolu için yalnızca düz eğik çizgi belirtin; örneğin, "/".
Örneğin:
edgemicro start -o local -e test -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
- Yapılandırmayı test edin.
curl http://localhost:8000/echo { "error" : "missing_authorization" }
extauth
eklentisifoo-bar-config.yaml
dosyasında bulunduğu için "missing_Authorization" değerini alma hatası. Bu eklenti, Yetkilendirme bölümünde mevcut olması gereken bir JWT'yi doğrular. üst bilgisidir. Sonraki bölümde API çağrılarına izin verecek bir JWT edineceksiniz harika bir seçenektir.
Örnek: Yetkilendirme jetonu alma
Aşağıdaki örnekte, Apigee Edge'de (edgemicro-auth/jwkPublicKeys
) Edge Microgateway JWT uç noktasından nasıl JWT alınacağı gösterilmektedir.
Bu uç nokta, Edge Microgateway için standart kurulum ve yapılandırma gerçekleştirdiğinizde dağıtılır.
JWT'yi Apigee uç noktasından almak için öncelikle standart Edge Microgateway kurulumunu yapmanız ve
İnternete bağlı olması gerekir. Apigee uç noktası burada örnek amaçlarla kullanılır.
ve zorunlu değildir. İsterseniz başka bir JWT jetonu uç noktası kullanabilirsiniz. Bunu yaparsanız, JWT'yi aşağıdakileri kullanarak edinmeniz gerekir:
söz konusu uç nokta için sağlanan API'dir.
Aşağıdaki adımlarda, edgemicro-auth/jwkPublicKeys
uç noktasını kullanarak nasıl jeton alacağınız açıklanmaktadır:.
- Bunun için standart bir standart
edgemicro-auth
proxy'sini dağıtmak için Edge Mikro Ağ Geçidi'nin kurulumu ve yapılandırılması kuruluşunuza/ortamınıza bağlayacaksınız. Bu adımı daha önce tamamladıysanız tekrar etmeniz gerekmez. - Edge Microgateway'i Apigee Cloud'a dağıttıysanız bu uç noktadan bir JWT alabilmek için internete bağlı olmanız gerekir.
-
Edge Mikro Ağ Geçidi'ni durdurun:
edgemicro stop
- Daha önce oluşturduğunuz yapılandırma dosyasında (
$HOME/.edgemicro
/org-env-config.yaml
),extauth:publickey_url
doğrult özelliğini Apigee Edge kuruluşunuzdaki/ortamınızdakiedgemicro-auth/jwkPublicKeys
uç noktasıyla ilişkilendirebilirsiniz. Örneğin:extauth: publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
-
Yapılandırma dosyası adında kullandığınız kuruluş/env adlarını kullanarak Edge Microgateway'i daha önce yaptığınız gibi yeniden başlatın. Örneğin:
edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
-
Yetkilendirme uç noktasından bir JWT jetonu alın.
edgemicro-auth/jwkPublicKeys
kullandığınız için önerildi şu CLI komutunu kullanabilirsiniz:
edgemicro token
komutunu kullanarak Edge Mikro Ağ Geçidi için bir JWT oluşturabilirsiniz veya
API'dir. Örneğin:
edgemicro token get -o your_org -e your_env \ -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
Burada:
- your_org, daha önce kullandığınız Apigee kuruluşunuzun adıdır Edge Mikro Ağ Geçidi yapılandırıldı.
- your_env, kuruluşta bulunan bir ortamdır.
i
seçeneği, ürüne sahip bir geliştirici uygulamasının Tüketici Anahtarı'nı belirtir veedgemicro-auth
proxy'sini içerir.s
seçeneği,edgemicro-auth
proxy'sini içeren bir ürün.
Bu komut Apigee Edge'in daha sonra API'yi doğrulamak için kullanılabilecek bir JWT oluşturmasını ister çağrısının en iyi yolu.
Ayrıca bkz. Jeton oluşturma.Bağımsız yapılandırmayı test etme
Yapılandırmayı test etmek için, Yetkilendirme başlığına aşağıdaki jeton eklenen jetonla API'yi çağırın:
curl http://localhost:8000/echo -H "Authorization: Bearer your_token
Örnek:
curl http://localhost:8000/echo -H "Authorization: Bearer eyJraWQiOiIxIiwidHlwIjo...iryF3kwcDWNv7OQ"
Örnek çıkış:
{ "headers":{ "user-agent":"curl/7.54.0", "accept":"*/*", "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP", "client_received_start_timestamp":"1535134472699", "x-authorization-claims":"eyJhdDbiO...M1OTE5MTA1NDkifQ==", "target_sent_start_timestamp":"1535134472702", "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896", "x-forwarded-proto":"http", "x-forwarded-host":"localhost:8000", "host":"mocktarget.apigee.net", "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513", "via":"1.1 localhost, 1.1 google", "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212", "connection":"Keep-Alive" }, "method":"GET", "url":"/", "body":"" }
Yerel proxy modunu kullanma
Yerel proxy modunda, Edge Mikro Ağ Geçidi mikro ağ geçidine duyarlı proxy kullanıma sunulması planlanıyor. Bunun yerine bir "yerel proxy" yapılandırırsınız. sağlayarak bir yerel proxy adını, temel yolunu ve hedef URL'sini mikro ağ geçidini başlatır. Mikro ağ geçidine yapılan API çağrıları, daha sonra hedefe gönderilir Yerel proxy'nin URL'si. Diğer tüm açılardan yerel proxy modu, Edge Microgateway, normal modunda. Kimlik doğrulama, saklama ve kota yaptırımları, özel eklentiler vb.
Kullanım alanı ve örnek
Yerel proxy modu, Edge Mikro Ağ Geçidi ile yalnızca tek bir proxy'yi ilişkilendirmeniz gerektiğinde yararlı olur kullanır. Örneğin, Edge Microgateway'i Kubernetes'e yardımcı dosya proxy'si olarak ekleyebilirsiniz. Mikro ağ geçidi ve bir hizmet tek bir kapsülde çalışır ve mikro ağ geçidinin trafiği yönettiği ve tamamlayıcı hizmetinden geliyor. Aşağıdaki şekilde, Edge'in Mikro ağ geçidi, Kubernetes kümesinde yardımcı dosya proxy'si görevi görür. Her mikro ağ geçidi örneği yalnızca tek bir uç noktaya gönderir:
Bu mimari tarzının bir avantajı, Edge Microgateway'in API'leri sağlamasıdır. bir örnek yönetim sistemi kullanıyorsanız (örneğin, Kubernetes kümesi.
Yerel proxy modunu yapılandırma
Edge Mikro Ağ Geçidi'ni yerel proxy modunda çalışacak şekilde yapılandırmak için şu adımları uygulayın:
- Yerel yapılandırma ortamınızı tam olarak ayarlamak için
edgemicro init
komutunu çalıştırın olduğu gibi çalışır. Şu kaynakları da inceleyin Edge Microgateway'i yapılandırın. edgemicro configure
uygulamasını normal Edge Microgateway kurulumunda olduğu gibi çalıştırın gerekir. Örneğin:edgemicro configure -o your_org -e your_env -u your_apigee_username
Bu komut, edgemicro-auth politikasını Edge'e dağıtır ve bir anahtar döndürür ve mikro ağ geçidini başlatmak için ihtiyacınız olan gizli bilgileri içerir. Yardıma ihtiyacınız olursa Edge Microgateway'i yapılandırın.
- Apigee Edge'de aşağıdaki zorunlu yapılandırmayı kullanarak bir API ürünü oluşturun
(diğer tüm yapılandırmaları istediğiniz gibi yönetebilirsiniz):
- Ü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ün:
/**
. Daha fazla bilgi edinmek için Kaynak yolunun davranışını yapılandırma bölümüne bakın. API oluşturma hakkında daha fazla bilgi ürünleri bölümündeki talimatları inceleyin.
- Ürüne edgemicro-auth proxy'sini eklemeniz gerekir. Bu proxy
Apigee Edge'de bir geliştirici oluşturun ya da aşağıdaki koşullarda mevcut bir geliştiriciyi kullanın: dile getirin. Yardım için Uç yönetim kullanıcı arayüzünü kullanarak geliştirici ekleme konusuna bakın.
- Apigee Edge'de bir geliştirici uygulaması oluşturun. Oluşturduğunuz API ürününü eklemeniz gerekir oluşturmamıza yardımcı oluyor. Yardım için Edge'ye uygulama kaydetme yönetim arayüzünü ziyaret edin.
- Edge Microgateway'in yüklü olduğu makinede aşağıdakileri dışa aktarın:
ortam değişkeninin değerini "1" olarak değiştirin.
export EDGEMICRO_LOCAL_PROXY=1
- Aşağıdaki
start
komutunu yürütün:edgemicro start -o your_org -e your_environment -k your_key -s your_secret \ -a local_proxy_name -v local_proxy_version -t target_url -b base_path
Burada:
- your_org, Apigee kuruluşunuzdur.
- your_environment, kuruluşunuzda yer alan bir ortamdır.
- your_key, çalıştırdığınızda döndürülen anahtardır
edgemicro configure
. - your_secret, koştuğunuzda döndürülen gizli bilgidir
edgemicro configure
. - local_proxy_name, oluşturulacak yerel proxy'nin adıdır.
- local_proxy_version proxy'nin sürüm numarasıdır.
- target_url, proxy hedefinin (proxy'nin yapacağı hizmet) URL'dir çağrısı) gerekir.
- base_path, proxy'nin temel yoludur. Bu değer yönlendirmeyle başlamalıdır eğik çizgi. Kök temel yolu için yalnızca düz eğik çizgi belirtin; örneğin, "/".
Örneğin:
edgemicro start -o your_org -e test -k 7eb6aae644cbc09035a...d2eae46a6c095f \ -s e16e7b1f5d5e24df...ec29d409a2df853163a -a proxy1 -v 1 \ -t http://mocktarget.apigee.net -b /echo
Yapılandırmayı test etme
Proxy uç noktasını çağırarak yerel proxy yapılandırmasını test edebilirsiniz. Örneğin,
/echo
temel yolunu belirttiyseniz proxy'yi şu şekilde çağırabilirsiniz:
curl http://localhost:8000/echo { "error" : "missing_authorization", "error_description" : "Missing Authorization header" }
Geçerli bir API anahtarı sağlamadığınız için bu ilk API çağrısı bir hata oluşturdu. Anahtarı uygulamadaki talimatları uygulayın. Uygulamayı Edge kullanıcı arayüzünde açın, kopyalayın ve bu anahtarı aşağıdaki şekilde kullanın:
curl http://localhost:8000/echo -H 'x-api-key:your_api_key'
Örneğin:
curl http://localhost:8000/echo -H "x-api-key:DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP"
Örnek çıkış:
{ "headers":{ "user-agent":"curl/7.54.0", "accept":"*/*", "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP", "client_received_start_timestamp":"1535134472699", "x-authorization-claims":"eyJhdWQiOi...TQ0YmUtOWNlOS05YzM1OTE5MTA1NDkifQ==", "target_sent_start_timestamp":"1535134472702", "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896", "x-forwarded-proto":"http", "x-forwarded-host":"localhost:8000", "host":"mocktarget.apigee.net", "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513", "via":"1.1 localhost, 1.1 google", "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212", "connection":"Keep-Alive" }, "method":"GET", "url":"/", "body":"" }
Senkronize ediciyi kullanma
Bu bölümde, isteğe bağlı bir özellik olan senkronize edicinin nasıl kullanılacağı Böylece, Edge Microgteway'in kullanarak yapılandırma verilerini Apigee Edge'den alıp yerel bir Redis veritabanına yazmalısınız. Entegre bir senkronize edici örneği çalışıyorsa, farklı düğümlerde çalışan diğer Edge Microgateway örnekleri bu veritabanından yapılandırmasını doğrudan alabilir.
Senkronizasyon aracı özelliği şu anda Redis 5.0.x ile çalışmak üzere desteklenmektedir.
Senkronize edici nedir?
Senkronize edici, Edge Microgateway için bir dayanıklılık düzeyi sağlar. Projenin vizyonu ve Edge Microgateway'in her örneğinin aynı yapılandırmayı kullandığını ve internet kesintisi olması halinde Edge Mikro Ağ Geçidi örnekleri başlatılıp çalışabilir. gerekir.
Varsayılan olarak, Edge Microgateway örneklerinin aşağıdakileri yapmak için Apigee Edge ile iletişim kurabilmesi gerekir: API proxy'si ve API ürün yapılandırmaları gibi yapılandırma verilerini alıp yenilemesi. Edge ile internet bağlantısı kesilirse mikro ağ geçidi örnekleri çalışmaya devam edebilir. işlevini çağırın. Ancak yeni mikro ağ geçidi örnekleri net bir bağlantı olmadan başlatılamaz. Dahası, bazı durumlarda internetin bir veya daha fazla mikro ağ geçidi örneğinin yapılandırmayla çalışmasına neden olan kesinti diğer örneklerle senkronize olmayan bilgiler içerir.
Edge Microgateway senkronize edici, Edge Microgateway için alternatif bir mekanizma sağlar API proxy trafiğini başlatmak ve işlemek için gereken yapılandırma verilerini almak üzere örnekleri. Senkronize edici, Edge Mikro Ağ Geçidi'nin tamamının farklı düğümlerde çalışan örneklerin düzgün şekilde başlatılması ve Edge Microgateway ile Apigee Edge arasındaki internet bağlantısı kesintiye uğradı.
Senkronize edici, Edge Microgateway'in özel olarak yapılandırılmış bir örneğidir. Tek amacı Apigee Edge'i yoklamak (zamanlama yapılandırılabilir), yapılandırma verilerini almak ve bunu yerel bir Redis veritabanına yazmalısınız. Senkronize edici örneğinin kendisi API proxy'sini işleyemez yardımcı olur. Farklı düğümlerde çalışan diğer Edge Microgateway örnekleri Yapılandırma verilerini Apigee yerine Redis veritabanından alacak şekilde yapılandırılmalıdır. Kenar. Tüm mikro ağ geçidi örnekleri, yapılandırma verilerini yerel ağdan API isteklerini başlatabilir ve işleyebilirler. Bu durumda, söz konusu olabilir.
Senkronize edici örneğini yapılandırma
Aşağıdaki yapılandırmayı şunun için org-env/config.yaml
dosyasına ekleyin:
senkronize edici olarak kullanmak istediğiniz Edge Microgateway yüklemesini yükleyin:
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 1 redisBasedConfigCache: true
Örneğin:
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 1 redisBasedConfigCache: true
Option | Açıklama |
---|---|
redisHost |
Redis örneğinizin çalıştığı ana makine. Varsayılan: 127.0.0.1 |
redisPort |
Redis örneğinin bağlantı noktası. Varsayılan: 6379 |
redisDb |
Kullanılacak Redis Veritabanı. Varsayılan: 0 |
redisPassword |
Veritabanı şifreniz. |
Son olarak, yapılandırma dosyasını kaydedin ve Edge Microgateway örneğini başlatın. Başlatılacak Apigee Edge'i yoklama ve indirilmiş yapılandırma verilerini Redis veritabanında saklama.
Normal Edge Mikro Ağ Geçidi örneklerini yapılandırma
Senkronize edici çalışırken ek Edge Mikro Ağ Geçidi düğümlerini yapılandırabilirsiniz. API proxy trafiğini işleyen normal mikro ağ geçidi örneklerini çalıştırın. Ancak, bu örneklerin yapılandırma verilerini Redis'ten almak yerine Apigee Edge.
Ek Edge Mikro Ağ Geçidi düğümlerinin her birine
org-env/config.yaml
dosyası yükleyin. synchronizerMode
özelliği 0
olarak ayarlandı. Bu özellik, örneği normal bir şekilde çalışacak şekilde ayarlar
API proxy trafiğini işleyen Edge Microgateway örneği ve örnek
yapılandırma verilerini Redis veritabanından kaldırmalıdır.
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 0 redisBasedConfigCache: true
Örneğin:
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 0 redisBasedConfigCache: true
Yapılandırma özellikleri
Senkronize edicinin kullanımını desteklemek için aşağıdaki yapılandırma özellikleri eklendi:
Özellik | Değerler | Açıklama |
---|---|---|
edge_config.synchronizerMode |
0 veya 1 | 0 (varsayılan) ise Edge Mikro Ağ Geçidi standart modunda çalışır. 1 ise senkronize edici olarak çalışmak için Edge Microgateway örneğini başlatın. Burada bu durumda örnek, yapılandırma verilerini Apigee Edge'den çeker ve . Bu örnek, API proxy isteklerini işleyemez; onun tek amacı yapılandırma verileri için Apigee Edge'i sorgulamak ve yerel Ardından, veritabanından okuma yapmak için diğer mikro ağ geçidi örneklerini yapılandırmanız gerekir. |
edge_config.redisBasedConfigCache |
doğru veya yanlış | True (doğru) ise Edge Microgateway örneği, yapılandırma verilerini
Redis veritabanını kullanabilirsiniz. Redis veritabanı aynı olmalıdır
senkronize edicinin veri yazmak üzere yapılandırıldığı anlamına gelir. Redis veritabanı kullanılamıyorsa veya
Veritabanı boşsa mikro ağ geçidi mevcut bir cache-config.yaml
dosyası oluşturun.
Yanlış değerine ayarlanırsa (varsayılan) Edge Microgateway örneği, yapılandırma verilerini şuradan alır: Apigee Edge'de her zamanki gibi. |
edgemicro.config_change_poll_interval |
Zaman aralığı (saniye cinsinden) | Senkronize edicinin, Apigee Edge'den veri çekmesi için yoklama aralığını belirtir. |