Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Edge Microgateway v. 3.0.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, Edge Microgateway'in mevcut bir yüklemesini nasıl yükselteceğiniz 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 yeni sürümüne yükseltmek için aşağıdaki
npmkomutunu çalıştırın:npm upgrade edgemicro -g
Edge Microgateway'in belirli bir sürümüne yükseltmek için yükseltme komutunda sürüm numarasını belirtmeniz gerekir. Sürüm numarasını belirtmezseniz en son sürüm yüklenir. Örneğin, 3.0.2 sürümüne yükseltmek için aşağıdaki komutu kullanın:
npm upgrade edgemicro@3.0.2 -g
- Sürüm numarasını kontrol edin. Örneğin, 3.0.2 sürümünü yüklediyseniz:
edgemicro --version current nodejs version is v12.5.0 current edgemicro version is 3.0.2 - Son olarak, edgemicro-auth proxy'sini en son sürüme yükseltin:
edgemicro upgradeauth -o org_name -e env_name -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 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, söz konusu dosyalar ve bunları değiştirme hakkında bilmeniz gerekenler ele alınmaktadır.
Varsayılan sistem yapılandırması dosyası
Edge Microgateway'i yüklediğinizde varsayılan sistem yapılandırma dosyası şu konuma yerleştirilir:
prefix/lib/node_modules/edgemicro/config/default.yaml
Buradaki prefix, npm ön eki dizinidir. Bu dizini bulamıyorsanız
Edge Microgateway nereye yüklenir? başlıklı makaleye bakın.
Sistem yapılandırma dosyasını değiştirirseniz Edge Microgateway'i yeniden başlatmanız, yeniden yapılandırmanız ve yeniden başlatmanız gerekir:
edgemicro 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ı (yukarıda açıklanmıştır), default.yaml, ~/.edgemicro dizinine yerleştirilir.
~/.edgemicro'daki yapılandırma dosyasını değiştirirseniz Edge Microgateway'i yeniden yapılandırıp 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] komutunu çalıştırdığınızda ~/.edgemicro içinde dinamik bir yapılandırma dosyası oluşturulur. Dosya, şu düzene göre adlandırılır: org-env-config.yaml. Burada org ve env, Apigee Edge kuruluşunuzun ve ortamınızın adlarıdır. Bu dosyayı yapılandırma değişiklikleri yapmak ve ardından sıfır kapalı kalma süresiyle yeniden yüklemek için kullanabilirsiniz. Örneğin, bir eklenti ekleyip yapılandırırsanız aşağıda açıklandığı gibi herhangi bir kapalı kalma süresi yaşamadan yapılandırmayı yeniden yükleyebilirsiniz.
Edge Microgateway çalışıyorsa (sıfır kapalı kalma süresi seçeneği):
- Edge Microgateway yapılandırmasını yeniden yükleyin:
edgemicro reload -o org_name -e env_name -k key -s secret
Burada:
- org_name, Edge kuruluşunuzun adıdır (kuruluş yöneticisi olmanız gerekir).
- env_name, kuruluşunuzdaki bir ortamdır (ör. "test" veya "prod").
- key, yapılandırma komutu tarafından daha önce döndürülen anahtardır.
- secret, yapılandırma komutu tarafından daha önce döndürülen anahtardır.
Örneğin:
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \ -s 05c14356e42ed1...4e34ab0cc824
Edge Microgateway durdurulursa:
- Edge Microgateway'i yeniden başlatın:
edgemicro start -o org_name -e env_name -k key -s secret
Burada:
- org_name, Edge kuruluşunuzun adıdır (kuruluş yöneticisi olmanız gerekir).
- env_name, kuruluşunuzdaki bir ortamdır (ör. "test" veya "prod").
- key, yapılandırma komutu tarafından daha önce döndürülen anahtardır.
- secret, yapılandırma komutu tarafından daha önce 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ı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ğerler gerektiren komut satırı arayüzü komutları ile Edge Microgateway'i başlatmak için gereken anahtar ve gizli anahtar şu ortam değişkenlerinde saklanabilir:
EDGEMICRO_ORGEDGEMICRO_ENVEDGEMICRO_KEYEDGEMICRO_SECRET
Bu değişkenleri ayarlamak isteğe bağlıdır. Bu parametreleri 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'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ış sunulmakta, Edge Microgateway'deki TLS tanıtılmakta ve kuzeye giden tek yönlü TLS'nin nasıl yapılandırılacağı gösterilmektedir. |
| 2 yönlü Kuzeye Bağlı TLS'yi yapılandırma | Bu video, Apigee Edge Microgateway'de TLS'yi yapılandırma ile ilgili ikinci videodur. Bu videoda, kuzeye doğru 2 yönlü TLS'nin nasıl yapılandırılacağı açıklanmaktadır. |
| Tek yönlü ve çift yönlü güney yönlü TLS'yi yapılandırma | Apigee Edge Microgateway'de TLS'yi yapılandırma hakkındaki bu üçüncü videoda, güneye doğru tek yönlü ve iki 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ışken Edge Microgateway üzerinden API'leri "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. Hangi yapılandırma dosyasını düzenlediğinize (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 belirtilen adımları uygulayın.
Aşağıda, yapılandırma dosyasının edgemicro bölümünün SSL yapılandırılmış bir örneği verilmiştir:
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 listesini aşağıda bulabilirsiniz:
| Seçenek | Açıklama |
|---|---|
key |
ca.key dosyasının yolu (PEM biçiminde). |
cert |
ca.cert dosyasının yolu (PEM biçiminde). |
pfx |
PFX biçiminde istemcinin özel anahtarını, sertifikasını ve CA sertifikalarını içeren bir pfx dosyasının yolu. |
passphrase |
Özel anahtar veya PFX için parola içeren bir dize. |
ca |
PEM biçiminde güvenilen sertifikaların listesini içeren bir dosyanın yolu. |
ciphers |
Kullanılacak şifreleri açıklayan, ":" ile ayrılmış bir dize. |
rejectUnauthorized |
Doğruysa sunucu sertifikası, sağlanan CA'ların listesine göre doğrulanır. Doğrulama başarısız olursa 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, 1 yönlü SSL için false |
İstemci SSL/TLS seçeneklerini kullanma
Hedef uç noktalara bağlanırken Edge Microgateway'i TLS veya SSL istemcisi olacak şekilde yapılandırabilirsiniz. Microgateway yapılandırma dosyasında, SSL/TLS seçeneklerini ayarlamak için hedefler öğesini kullanın.
Bu örnekte, tüm ana makinelere uygulanacak ayarlar sağlanmaktadır:
edgemicro:
...
targets:
ssl:
client:
key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
passphrase: admin123
rejectUnauthorized: trueBu ö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: trueTLS için bir örnek:
edgemicro:
...
targets:
- host: 'myserver.example.com'
tls:
client:
pfx: /Users/myname/twowayssl/ssl/client.pfx
passphrase: admin123
rejectUnauthorized: trueDesteklenen tüm istemci seçeneklerinin listesini aşağıda bulabilirsiniz:
| Seçenek | Açıklama |
|---|---|
pfx |
PFX biçiminde istemcinin özel anahtarını, sertifikasını ve CA sertifikalarını içeren bir pfx dosyasının yolu. |
key |
ca.key dosyasının yolu (PEM biçiminde). |
passphrase |
Özel anahtar veya PFX için parola içeren bir dize. |
cert |
ca.cert dosyasının yolu (PEM biçiminde). |
ca |
PEM biçiminde güvenilen sertifikaların listesini içeren bir dosyanın yolu. |
ciphers |
Kullanılacak şifreleri açıklayan, ":" ile ayrılmış bir dize. |
rejectUnauthorized |
Doğruysa sunucu sertifikası, sağlanan CA'ların listesine göre doğrulanır. Doğrulama başarısız olursa 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'e dağıtılan bir proxy kullanır.
Bu proxy, edgemicro configure'yı ilk kez çalıştırdığınızda dağıtılır. Bu proxy'nin varsayılan yapılandırmasını, JSON Web Jetonu'na (JWT) özel talepler için destek eklemek, jeton geçerlilik süresini yapılandırmak ve yenileme jetonları oluşturmak üzere 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'e dağıtılan bir proxy kullanır.
Bu proxy, edgemicro configure'yı 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ğrulama işlemini kendi özel hizmetinizle yapmak istiyorsanız yapılandırma dosyasındaki authUri değerini hizmetinize yönlendirecek ş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 saklanır.
Varsayılan günlük dosyası dizinini değiştirme
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 bilgilerinin bir günlük dosyasına değil, standart çıkışa gönderilmesi için günlüğü yapılandırabilirsiniz. to_console işaretini aşağıdaki gibi "true" olarak ayarlayın:
edgemicro:
logging:
to_console: trueBu ayarla birlikte 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
Şu günlük düzeylerini ayarlayabilirsiniz: info, warn ve error. INFO düzeyinin kullanılması önerilir. Tüm API isteklerini ve yanıtlarını günlüğe kaydeder ve varsayılan seçenektir.
Değişiklik günlüğü aralıklarını değiştirme
Bu aralıkları Edge Microgateway yapılandırma dosyasında ayarlayabilirsiniz. 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ığı aralık (saniye cinsinden).
- rotate_interval: (varsayılan: 24) Günlük dosyalarının döndürüldüğü saat aralığı. Ö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ı
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 bulunduğundan emin olun. Günlük dosyaları nerede depolanır? ve Varsayılan günlük dosyası dizini nasıl değiştirilir? başlıklı bölümlere bakın.
- 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 eski günlükleri kaldırmak (temizlemek) için
edgemicro log -cKSA komutunu kullanabilirsiniz.
Günlük dosyası adlandırma kuralı
Her Edge Microgateway örneği üç tür günlük dosyası oluşturur:
- api: Edge Microgateway üzerinden geçen tüm istekleri ve yanıtları günlüğe kaydeder. API sayaçları (istatistikler) ve hatalar da bu dosyaya kaydedilir.
- err: stderr'ye 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
Varsayılan olarak, günlük kaydı hizmeti indirilen proxy'lerin, ürünlerin ve JSON Web Jetonu'nun (JWT) JSON'unu atlar. Bu nesneleri günlük dosyalarına çıkarmak istiyorsanız Edge Microgateway'i başlatırken DEBUG=* değerini 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ışıyla ilgili ayrıntılı bilgiler 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 yapıldı
- Hedeften gelen yanıt
- Müşteriye giden yanıt
Bu ayrı girişlerin her biri, günlük dosyalarını daha kompakt hale getirmek için kısa bir notasyonla gösterilir. Aşağıda, dört etkinliğin her birini temsil eden dört örnek giriş verilmiştir. Günlük dosyasında aşağıdaki gibi görünürler (satır numaraları yalnızca dokümanda referans amaçlıdı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. Müşteriden 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 bağlıdır. Günlük düzeyine bağlı olarak bilgi, uyarı veya hata olabilir. İstatistik kaydı için istatistikler, uyarılar için uyarı veya hatalar için hata olabilir.
- req: Etkinliği tanımlar. Bu durumda, istemciden isteyin.
- m: İstekle kullanılan HTTP fiili.
- u: URL'nin temel yoldan sonraki kısmı.
- h: Edge Microgateway'in dinlediği ana makine ve bağlantı noktası numarası.
- r: İstemci isteğinin geldiği uzak ana makine ve bağlantı noktası.
- i: İstek kimliği. Dört etkinlik girişinin tümü bu kimliği paylaşır. Her isteğe benzersiz bir istek kimliği atanır. Günlük kayıtlarını istek kimliğine göre ilişkilendirmek, hedefin gecikmesi hakkında değerli bilgiler sağlayabilir.
- d: İstek Edge Microgateway tarafından alındıktan sonra geçen süre (milisaniye cinsinden). Yukarıdaki örnekte, 0 numaralı isteğin hedef yanıtı 7 milisaniye sonra (3. satır) alınmış ve yanıt, 4 milisaniye daha geçtikten sonra (4. satır) istemciye gönderilmiştir. Başka bir deyişle, toplam istek gecikmesi 11 milisaniyeydi. Bunun 7 milisaniyesi hedef tarafından, 4 milisaniyesi ise Edge Microgateway'in kendisi tarafından kullanıldı.
2. Hedefe yapılan giden isteğin örneği:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651: Unix tarih damgası
- info: Bağlama bağlıdır. Günlük düzeyine bağlı olarak bilgi, uyarı veya hata olabilir. İstatistik kaydı için istatistikler, uyarılar için uyarı veya hatalar için hata olabilir.
- treq: Etkinliği tanımlar. Bu durumda hedef istek.
- m: Hedef istekte kullanılan HTTP fiili.
- u: URL'nin temel 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ıttan örnek
1436403888672 info tres s=200, d=7, i=0
1436403888651: Unix tarih damgası
- info: Bağlama bağlıdır. Günlük düzeyine bağlı olarak bilgi, uyarı veya hata olabilir. İstatistik kaydı için istatistikler, uyarılar için uyarı veya hatalar için hata olabilir.
- tres: Etkinliği tanımlar. Bu durumda hedef yanıt.
- s: HTTP yanıt durumu.
- d: Süre (milisaniye cinsinden). Hedef tarafından API çağrısı için geçen süre.
- i: Günlük girişinin kimliği. Dört etkinlik girişinin tümü bu kimliği paylaşır.
4. Müşteriye gönderilen yanıttan örnek
1436403888676 info res s=200, d=11, i=0
1436403888651: Unix tarih damgası
- info: Bağlama bağlıdır. Günlük düzeyine bağlı olarak bilgi, uyarı veya hata olabilir. İstatistik kaydı için istatistikler, uyarılar için uyarı veya hatalar için hata olabilir.
- res: Etkinliği tanımlar. Bu durumda, istemciye yanıt verilir.
- s: HTTP yanıt durumu.
- d: Süre (milisaniye cinsinden). Bu, hedef API'nin aldığı süre ve Edge Microgateway'in aldığı süre dahil olmak üzere API çağrısının aldığı toplam süredir.
- 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. Girişler, rotasyon aralığı sona erene kadar 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 İyi günlük dosyası bakımı uygulamaları başlıklı makaleyi de inceleyin.
Hata mesajları
Bazı günlük girişlerinde hata mesajları bulunur. Hataların nerede ve neden oluştuğunu belirlemek için Edge Microgateway hata referansına bakın.
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 URL. Edge Microgateway, Apigee Edge ile iletişim kurmak için bu hizmeti kullanır. Bu URL, ortak/özel anahtar çiftini oluşturma komutunu
edgemicro genkeysçalıştırdığınızda döndürülür. 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 işaret eden bir URL. Bu proxy, istemcilere imzalı erişim jetonları vermek için kimlik doğrulama uç noktası olarak işlev 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: Kuruluşunuza dağıtılan
edgemicro-authproxy'si üzerinden kotaları yönetmek istiyorsanız bu yapılandırma özelliğini ayarlayın. Bu özellik ayarlanmazsa kota uç noktası varsayılan olarak dahili Edge Microgateway uç noktası olur.edge_config: quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
Bu özelliği kullanmak için öncelikle
edgemicro-authproxy'sinin 3.0.5 veya sonraki bir sürümünü kuruluşunuza dağıtmanız gerekir. Ayrıntılar için edgemicro-auth proxy'sini yükseltme başlıklı makaleyi inceleyin.
edgemicro özellikleri
Bu ayarlar, Edge Microgateway sürecini 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'in alabileceği maksimum eşzamanlı gelen bağlantı sayısını belirtir. Bu sayı aşılırsa aşağıdaki durum döndürülür:
res.statusCode = 429; // Too many requests
- max_connections_hard: (varsayılan: -1) Edge Microgateway'in bağlantıyı kapatmadan önce alabileceği maksimum eşzamanlı istek sayısı. Bu ayar, hizmet reddi saldırılarını engellemek için tasarlanmıştır. Genellikle, bu değeri max_connections değerinden büyük bir sayıya ayarlayın.
-
logging:
-
level: (varsayılan: error)
- info: Bir Edge Microgateway örneğinden geçen tüm istekleri 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.
- dir: (varsayılan: /var/tmp) Günlük dosyalarının depolandığı dizin.
- stats_log_interval: (varsayılan: 60) İstatistik kaydının API günlük dosyasına yazıldığı aralık (saniye cinsinden).
- rotate_interval: (varsayılan: 24) Günlük dosyalarının döndürüldüğü saat aralığı.
-
level: (varsayılan: error)
- Eklentiler: Eklentiler, Edge Microgateway'e işlevsellik kazandırır. 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 yol veya mutlak yol.
- sequence: Edge Microgateway örneğinize eklenecek eklenti modüllerinin listesi. Modüller burada belirtilen 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 sürecine iletilecek bağımsız değişkenler. Örneğin:
args --nolazy
- config_change_poll_interval: (varsayılan: 600 saniye) Edge Microgateway
yeni bir yapılandırmayı düzenli olarak yükler ve herhangi bir değişiklik olursa yeniden yükleme gerçekleştirir. Yoklama, Edge'de yapılan tüm değişiklikleri (ürünlerde, mikro ağ geçidi farkında olan proxy'lerde vb. yapılan değişiklikler) 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 yoklamasını devre dışı bırakmak için true olarak ayarlayın.
- request_timeout: Hedef istekleri için zaman aşımı ayarlar. Zaman aşımı saniye cinsinden ayarlanır. Zaman aşımı gerçekleşirse Edge Microgateway, 504 durum koduyla yanıt verir. (2.4.x sürümünde eklendi)
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ın hedefe iletilmesini önlemek için yanlış olarak ayarlayın. İstek içinde bir x-forwarded-for başlığı varsa değerinin Edge Analytics'teki client-ip değeri olarak ayarlanacağını unutmayın.
- x-forwarded-host: (varsayılan: doğru) x-forwarded-host başlıklarının hedefe iletilmesini önlemek için yanlış olarak ayarlayın.
- x-request-id: (varsayılan: doğru) x-request-id üstbilgilerinin hedefe iletilmesini önlemek için yanlış olarak ayarlayın.
- x-response-time: (varsayılan: true) x-response-time üstbilgilerinin hedefe iletilmesini önlemek için false olarak ayarlayın.
- via: (varsayılan: true) Hedefe via üstbilgilerinin 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) true olarak ayarlanırsa API çağrılarının, Edge Microgateway'den herhangi bir yetkilendirme başlığı olmadan geçmesine izin verilir. Yetkilendirme üstbilgisi gerektirmek için bunu false olarak ayarlayın (varsayılan).
- allowInvalidAuthorization: (varsayılan: false) Doğru olarak ayarlanırsa, yetkilendirme üstbilgisinde iletilen jeton geçersiz veya süresi dolmuş olsa bile API çağrılarının iletilmesine izin verilir. Geçerli jetonların zorunlu olması 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, yetkilendirme üstbilgisini başka bir amaçla kullanması gerektiği durumlarda varsayılan değeri değiştirmek isteyebilirsiniz.
- api-key-header: (varsayılan: x-api-key) Bir API anahtarını Edge Microgateway'e aktarmak için kullanılan başlığın veya sorgu parametresinin adı. Ayrıca API anahtarı kullanma başlıklı makaleyi de inceleyin.
- keep-authorization-header: (varsayılan: false) True olarak ayarlanırsa istekte gönderilen yetkilendirme başlığı hedefe iletilir (korunur).
- allowOAuthOnly: Doğru olarak ayarlanırsa her API, hamiline ait erişim jetonu içeren bir yetkilendirme üstbilgisi taşımalıdır. Geriye dönük uyumluluğu korurken yalnızca OAuth güvenlik modeline izin vermenizi sağlar. (2.4.x sürümünde eklendi)
- allowAPIKeyOnly: Doğru olarak ayarlanırsa her API, API anahtarıyla bir x-api-key üstbilgisi (veya özel bir konum) taşımalıdır.Geriye dönük uyumluluğu korurken yalnızca API anahtarı güvenlik modeline izin vermenizi sağlar. (2.4.x sürümünde eklendi)
- gracePeriod: Bu parametre, sistem saatiniz ile JWT yetkilendirme jetonunda belirtilen Not Before (nbf) veya Issued At (iat) zamanları arasındaki küçük farklılıklardan kaynaklanan hataları önlemeye yardımcı olur. Bu parametreyi, bu tür tutarsızlıklar için izin verilecek saniye sayısına ayarlayın. (2.5.7 sürümünde eklendi)
Eklentiye özel özellikler
Her eklentinin yapılandırılabilir özellikleri hakkında ayrıntılı bilgi için Eklentileri kullanma başlıklı makaleyi inceleyin.
Filtreleme proxy'leri
Edge Microgateway örneğinin hangi microgateway'e duyarlı proxy'leri işleyeceğini filtreleyebilirsiniz.
Edge Microgateway başlatıldığında, ilişkili olduğu kuruluştaki tüm microgateway'e duyarlı 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 üçle sınırlar: edgemicro_proxy-1, edgemicro_proxy-2 ve edgemicro_proxy-3:
proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
Analiz verilerinin gönderilme sıklığını yapılandırma
Edge Microgateway'in Apigee'ye analiz verilerini gönderme sıklığını kontrol etmek için bu yapılandırma parametrelerini kullanın:
- bufferSize (İsteğe bağlı): Arabelleğin en eski kayıtları bırakmaya başlamadan önce tutabileceği maksimum analiz kaydı sayısı. Varsayılan: 10.000
- batchSize (İsteğe bağlı): Apigee'ye gönderilen bir analiz kayıtları grubunun maksimum boyutu. Varsayılan: 500
- flushInterval (İsteğe bağlı): Apigee'ye gönderilen bir grup analiz kaydının her temizlenmesi 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 Analytics'te görünmesini engeller. İstek URI'sini ve/veya istek yolunu maskelemek için mikro ağ geçidi 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
Analiz 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'si çağrılarıyla karıştırılmaması için kontrol panelinde bir sağlık durumu kontrolü API'sini ayırabilirsiniz. Analytics kontrol panelinde, ayrılmış proxy'ler şu adlandırma kalıbını kullanır:
edgemicro_proxyname-health
Aşağıdaki resimde, Analytics kontrol panelinde iki ayrılmış proxy gösterilmektedir: edgemicro_hello-health ve edgemicro_mock-health:

Analytics kontrol panelinde göreli ve mutlak yolları ayrı proxy'ler olarak ayırmak için şu parametreleri kullanın:
- relativePath (İsteğe bağlı): Analytics kontrol panelinde ayrılacak göreli bir yolu belirtir. Örneğin,
/healthcheckdeğerini belirtirseniz/healthcheckyolunu içeren tüm API çağrıları kontrol panelindeedgemicro_proxyname-healtholarak görünür. Bu işaretin, proxy temel yolunu yoksaydığını unutmayın. Basepath dahil tam yola göre ayırmak içinproxyPathişaretini kullanın. - proxyPath (İsteğe bağlı): Analiz kontrol panelinde ayrılacak olan proxy temel yolu da dahil olmak üzere tam bir API proxy yolu belirtir. Örneğin,
/mocktarget/healthcheckdeğerini belirtirseniz, (/mocktargetproxy'nin temel yolu)/mocktarget/healthcheckyoluyla yapılan tüm API çağrıları kontrol panelindeedgemicro_proxyname-healtholarak görünür.
Örneğin, aşağıdaki yapılandırmada /healthcheck içeren tüm API yolları, analiz eklentisi tarafından ayrılır. Bu durumda, /foo/healthcheck ve /foo/bar/healthcheck, Analytics kontrol panelinde edgemicro_proxyname-health adlı ayrı bir proxy olarak ayrılır.
analytics:
uri: >-
https://xx/edgemicro/ax/org/docs/environment/test
bufferSize: 100
batchSize: 50
flushInterval: 500
relativePath: /healthcheckAş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/healthcheckEdge Microgateway'i şirket güvenlik duvarı arkasında ayarlama
Desteklenen v2.4.x
Edge Microgateway bir güvenlik duvarının arkasına yüklenirse ağ geçidi, Apigee Edge ile iletişim kuramayabilir. Bu durumda, göz önünde bulundurabileceğiniz iki seçenek vardır:
1. seçenek:
İlk seçenek, microgateway yapılandırma dosyasında edgemicro: proxy_tunnel seçeneğini true olarak ayarlamaktır:
edge_config:
proxy: http://10.224.16.85:3128
proxy_tunnel: trueproxy_tunnel true olduğunda Edge Microgateway, HTTP isteklerini tek bir TCP bağlantısı üzerinden tünel oluşturmak için HTTP CONNECT yöntemini kullanır. (Aynı durum, proxy'yi yapılandırmak için kullanılan ortam değişkenlerinde TLS etkinleştirilmişse de geçerlidir.)
2. Seçenek:
İkinci seçenek ise bir proxy belirtmek ve microgateway yapılandırma dosyasında proxy_tunnel'ı false olarak ayarlamaktır. Örneğin:
edge_config:
proxy: http://10.224.16.85:3128
proxy_tunnel: falseBu durumda, kullanmak istediğiniz her HTTP proxy'sinin ana makinelerini veya hangi ana makinelerin Edge Microgateway proxy'lerini işlememesi gerektiğini kontrol etmek için aşağıdaki değişkenleri ayarlayabilirsiniz: HTTP_PROXY, HTTPS_PROXY ve NO_PROXY.
NO_PROXY'yi, Edge Microgateway'in proxy'sini kullanmaması gereken alan adlarının virgülle ayrılmış bir listesi olarak ayarlayabilirsiniz. Örneğin:
export NO_PROXY='localhost,localhost:8080'
HTTP_PROXY ve HTTPS_PROXY'yi, Edge Microgateway'in mesaj gönderebileceği HTTP proxy uç noktası olarak ayarlayın. Örneğin:
export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786'
Bu değişkenler hakkında daha fazla bilgi için https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables adresini ziyaret edin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Apigee Topluluğu'nda Edge Microgateway'i şirket güvenlik duvarının arkasında ayarlama
Microgateway'e duyarlı proxy'lerde joker karakterleri kullanma
edgemicro_* (Microgateway'e duyarlı) 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. /**/'nın desteklenmediğini unutmayın.
Önemli: Apigee, temel yolun ilk öğesi olarak joker karakter "*" kullanımını DESTEKLEMEZ. Örneğin, /*/ araması desteklenmez.
JWT anahtarlarını döndürme
Bir JWT'yi ilk oluşturduktan bir süre sonra, Edge şifrelenmiş KVM'de depolanan ortak/gizli anahtar çiftini değiştirmeniz gerekebilir. Yeni bir anahtar çifti oluşturma işlemine 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 talebi imzalamanın bir yolunu sunar. Bu talepler, JWT'nin 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. Edge Microgateway için bir OAuth jetonu oluşturduğunuzda JWT döndürülür. Daha sonra JWT'yi API çağrılarının yetkilendirme başlığında kullanabilirsiniz. Örneğin:
curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"
Yeni bir JWT oluşturma
edgemicro token komutunu veya bir API'yi kullanarak Edge Microgateway için JWT oluşturabilirsiniz. Örneğin:
edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
Bu komut, Apigee Edge'den API çağrılarını doğrulamak için kullanılabilecek bir JWT oluşturmasını ister. -i ve -s parametreleri, Apigee Edge kuruluşunuzdaki bir geliştirici uygulamasının tüketici kimliği ve gizli değerleridir.
Alternatif olarak, yönetim API'sini kullanarak da 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şunuzun adıdır (kuruluş yöneticisi olmanız gerekir).
- env, kuruluşunuzdaki bir ortamdır (ör. "test" veya "prod").
- client_id, daha önce oluşturduğunuz geliştirici uygulamasındaki tüketici kimliğidir.
- client_secret, daha önce oluşturduğunuz geliştirici uygulamasındaki Consumer Secret'tır.
Anahtar rotasyonu nedir?
Bir JWT'yi ilk oluşturduktan bir süre sonra, Edge şifrelenmiş KVM'de depolanan ortak/gizli anahtar çiftini değiştirmeniz gerekebilir. Yeni bir anahtar çifti oluşturma işlemine anahtar rotasyonu denir. Anahtarları döndürdüğünüzde yeni bir özel/ortak anahtar çifti oluşturulur ve Apigee Edge kuruluşunuzdaki/ortamınızdaki "microgateway" KVM'de depolanır. Ayrıca, eski ortak anahtar orijinal anahtar kimliği değeriyle birlikte saklanır.
EDGE, JWT oluşturmak için şifrelenmiş Kernel Tabanlı Sanal Makine'de depolanan bilgileri kullanır. Edge Microgateway'i ilk kez kurduğunuzda (yapılandırdığınızda) microgateway adlı bir KVM oluşturulur ve anahtarlarla doldurulur. KVM'deki anahtarlar, JWT'yi imzalamak ve şifrelemek için kullanılır.
KVM anahtarları şunlardır:
-
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şkilendirilir ve anahtar rotasyonunu desteklemek için kullanılır.
-
public_key1_kid: En yeni (en son oluşturulan) ortak anahtar kimliği. Bu anahtar, public_key1 değeriyle ilişkilendirilir ve anahtar rotasyonunu desteklemek için kullanılır. Bu değer, özel anahtarın kimliğiyle 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 eski ortak anahtar, süresi dolana (30 dakika sonra) kadar 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 rotasyonu işleminin nasıl yapılacağı 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 çalıştırmanız gerekir:
upgradekvm -o org -e env -u username
Bu komut hakkında daha fazla bilgi için KVM'yi yükseltme başlıklı makaleyi inceleyin.
Bir sonraki komut, Edge Microgateway'i yapılandırdığınızda Apigee kuruluşunuza dağıtılan edgemicro-oauth proxy'sini yükseltir. Bu proxy, jeton oluşturmak için gereken hizmetleri sağlar.
upgradeauth -o org -e env -u username
Bu komut hakkında daha fazla bilgi için edgemicro-auth proxy'sini yükseltme başlıklı makaleyi inceleyin.
Anahtarları döndürme
~/.edgemicro/org-env-config.yaml dosyanıza aşağıdaki satırı ekleyin. Bu satırda, mikro ağ geçidini kullanacak şekilde yapılandırdığınız kuruluş ve ortamı belirtmeniz gerekir:
jwk_public_keys: 'https://org-env.apigee.net/edgemicro-auth/jwkPublicKeys'
Anahtarları döndürmek için anahtar rotasyonu komutunu çalıştırın. (Bu komut hakkında daha fazla bilgi için Anahtarlara rotasyon uygulama başlıklı makaleyi inceleyin.)
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.0.2 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, anahtar kimliğini (kid) belirtir. Bu kimlik, belirli bir anahtarı eşleştirmek için kullanılır.
Edge Microgateway, anahtar rotasyonu sırasında bir anahtar kümesi arasından seçim yapmak için bu değeri kullanır. Daha fazla bilgi için JSON Web Key spesifikasyonunun 4.5. bölümüne bakın.
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 ağ geçidi daha sonra yetkilendirme jetonlarını doğrulamak için bu anahtarları kullanır. Jeton doğrulaması başarısız olursa mikro ağ geçidi, anahtar kümesinde daha eski bir anahtar olup olmadığını kontrol eder ve bu anahtarı dener. Döndürülen anahtarların biçimi JSON Web Key (JWK) şeklindedir. Bu biçim hakkında bilgiyi RFC 7517'de bulabilirsiniz.
{
"keys": [
{
"kty": "RSA",
"n": "nSl7R_0wKLiWi6cO3n8aOJwYGBtinq723Jgg8i7KKWTSTYoszOjgGsJf_MX4JEW1YCScwpE5o4o8ccQN09iHVTlIhk8CNiMZNPipClmRVjaL_8IWvMQp1iN66qy4ldWXzXnHfivUZZogCkBNqCz7VSC5rw2Jf57pdViULVvVDGwTgf46sYveW_6h8CAGaD0KLd3vZffxIkoJubh0yMy0mQP3aDOeIGf_akeZeZ6GzF7ltbKGd954iNTiKmdm8IKhz6Y3gLpC9iwQ-kex_j0CnO_daHl1coYxUSCIdv4ziWIeM3dmjQ5_2dEvUDIGG6_Az9hTpNgPE5J1tvrOHAmunQ",
"e": "AQAB",
"kid": "2"
},
{
"kty": "RSA",
"n": "8BKwzx34BMUcHwTuQtmp8LFRCMxbkKg_zsWD6eOMIUTAsORexTGJsTy7z-4aH0wJ3fT-3luAAUPLBQwGcuHo0P1JnbtPrpuYjaJKSZOeIMOnlryJCspmv-1xG4qAqQ9XaZ9C97oecuj7MMoNwuaZno5MvsY-oi5B_gqED3vIHUjaWCErd4reONyFSWn047dvpE6mwRhZbcOTkAHT8ZyKkHISzopkFg8CD-Mij12unxA3ldcTV7yaviXgxd3eFSD1_Z4L7ZRsDUukCJkJ-8qY2-GWjewzoxl-mAW9D1tLK6qAdc89yFem3JHRW6L1le3YK37-bs6b2a_AqJKsKm5bWw",
"e": "AQAB",
"kid": "1"
}
]
}İndirilen proxy'leri filtreleme
Edge Microgateway, varsayılan olarak Edge kuruluşunuzdaki "edgemicro_" adlandırma önekiyle 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 - proxyPattern öğesini edge_config altına 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'leri olmadan ürün belirtme
Apigee Edge'de API proxy'leri içermeyen bir API ürünü oluşturabilirsiniz. Bu ürün yapılandırması, söz konusu ürünle ilişkili bir API anahtarının kuruluşunuzda dağıtılan herhangi bir proxy ile çalışmasına olanak tanır. Edge Microgateway, 2.5.4 sürümünden itibaren bu ürün yapılandırmasını desteklemektedir.
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 eklentilerde sorun giderme ve hata ayıklama için kullanışlıdır.
- Edge Microgateway'i hata ayıklama modunda yeniden başlatın. Bunu yapmak için
DEBUG=*komutunun başınastartekleyin. Örneğin:DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed - 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 Microgateway kodunda adım adım ilerleyebilir, kesme noktaları ayarlayabilir, ifadeleri izleyebilir vb.
Hata ayıklama moduyla ilgili standart Node.js işaretlerini belirtebilirsiniz. Örneğin, --nolazy, zaman uyumsuz kodda hata ayıklamaya 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ı inceleyin. 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 istekte bulunan istemcilerin kimliğini doğrulamak için basit bir mekanizma sağlar. Edge Microgateway kimlik doğrulama proxy'si içeren bir Apigee Edge ürününden Tüketici Anahtarı (İstemci Kimliği olarak da adlandırılır) değerini kopyalayarak API anahtarı edinebilirsiniz.
Anahtarların önbelleğe alınması
API anahtarları, taşıyıcı jetonlarla değiştirilir ve bu jetonlar önbelleğe alınır. Gelen Edge Microgateway isteklerinde 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 başlıkta iletebilirsiniz. Varsayılan olarak,
hem başlık hem de sorgu parametresi adı x-api-key olur.
Sorgu parametresi örneği:
curl http://localhost:8000/foobar?x-api-key=JG616Gjz7xs4t0dvpvVsGdI49G34xGsz
Üstbilgi örneği:
curl http://localhost:8000/foobar -H "x-api-key:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
API anahtarı adını yapılandırma
Varsayılan olarak hem API anahtarı başlığı hem de sorgu parametresi için x-api-key adı kullanılı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ştirilir. x-api-key adı artık her iki durumda da çalışmayacak. Ayrıca 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, yanıt 200 durumu değilse oauth eklentisi yalnızca 4xx hata durum kodlarını döndürür. Bu davranışı, hataya bağlı olarak her zaman tam 4xx veya 5xx kodunu döndürecek şekilde değiştirebilirsiniz. (3.0.7 sürümünde yayınlandı)
Bu özelliği etkinleştirmek için Edge Microgateway yapılandırmanıza oauth.useUpstreamResponse: true özelliğini ekleyin. Örneğin:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false gracePeriod: 10 useUpstreamResponse: true
OAuth2 jeton güvenliğini kullanma
Bu bölümde, OAuth2 erişim jetonlarının ve yenileme jetonlarının nasıl alınacağı açıklanmaktadır. Mikro ağ geçidi üzerinden güvenli API çağrıları yapmak için erişim jetonları kullanılır. Yenileme jetonları, yeni erişim jetonları almak için kullanılır.
Erişim jetonu alma
Bu bölümde, erişim jetonu almak için edgemicro-auth proxy'sinin nasıl kullanılacağı açıklanmaktadır.
Ayrıca 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 gövde parametreleri olarak gönderme
URL'de kuruluşunuzun ve ortamınızın adlarını, Apigee Edge'deki bir geliştirici uygulamasından alınan tüketici kimliği ve tüketici gizli anahtarı değerlerini ise client_id ve client_secret gövde parametreleriyle değiştirin:
curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" \
-d '{"grant_type": "client_credentials", "client_id": "your_client_id", \
"client_secret": "your_client_secret"}' -H "Content-Type: application/json"
API 2: Kimlik bilgilerini Temel Kimlik Doğrulama üstbilgisinde gönderme
İstemci kimlik bilgilerini Temel Kimlik Doğrulama başlığı olarak, grant_type değerini ise form parametresi olarak gönderin. Bu komut biçimi, RFC 6749: The OAuth 2.0 Authorization Framework (OAuth 2.0 Yetkilendirme Çerçevesi) adlı dokümanda da ele alınmaktadı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 çıktı
API, bir JSON yanıtı döndürür.token ve access_token özellikleri arasında fark olmadığını unutmayın. İkisinden birini kullanabilirsiniz.
{ "token": "eyJraWQiOiIxIiwidHlwIjoi", "access_token": "eyJraWQiOiIxIiwid", "token_type": "bearer", "expires_in": "108000" }
Yenileme jetonu alma
Yenileme jetonu almak için
edgemicro-auth/token uç noktasına API çağrısı yapın. Bu API çağrısını password
izin türüyle YAPMALISINIZ. Aşağıdaki adımlarda süreç açıklanmaktadır.
/tokenAPI'si ile erişim ve yenileme jetonu alın. İzin türününpasswordolduğ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 bir yenileme jetonu döndürür. Yanıt şu şekilde görünür:
{ "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" }- Artık aynı API'nin
/refreshuç 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" }
Sürekli izleme
Forever, işlem çöktüğünde veya hata oluştuğunda Node.js uygulamasını otomatik olarak yeniden başlatan bir Node.js aracıdır. Edge Microgateway'de, Edge Microgateway'in kaç kez ve hangi aralıklarla yeniden başlatılacağını kontrol etmek için yapılandırabileceğiniz bir forever.json dosyası bulunur. Bu dosya, Forever'ı programatik olarak yöneten forever-monitor adlı bir Forever hizmetini yapılandırır.
forever.json dosyasını Edge Microgateway'in kök yükleme dizininde bulabilirsiniz. Edge Microgateway nereye yüklenir? başlıklı makaleyi inceleyin. Yapılandırma seçenekleri hakkında ayrıntılı bilgi için forever-monitor belgelerine bakın.
edgemicro forever komutu, forever.json dosyasının konumunu (-f işareti) belirtmenize ve Forever izleme sürecini başlatıp durdurmanıza (-a işareti) olanak tanıyan işaretler içerir. Ö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ı 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
Burada 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 adlandırma kuralı org-env-config.yaml şeklindedir.
TCP bağlantısı verilerinin arabelleğe alınmasını devre dışı bırakma
Edge Microgateway tarafından kullanılan TCP bağlantıları için veri arabelleğe almayı devre dışı bırakmak üzere nodelay yapılandırma özelliğini kullanabilirsiniz.
TCP bağlantıları, verileri göndermeden önce arabelleğe almak için varsayılan olarak 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ını da inceleyin.
nodelay özelliğini 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.
Aşağıdaki özellikler, Apigee Edge'e bağlantı gerektirdiğinden bağımsız modda çalışmaz:
- OAuth ve API anahtarı
- Kota
- Analytics
Öte yandan, özel eklentiler ve ani artış önleme özelliği, Apigee Edge'e bağlantı gerektirmediği için normal şekilde çalışır. Ayrıca, extauth adlı yeni bir eklenti, bağımsız moddayken JWT ile mikro ağ geçidine yapılan API çağrılarını yetkilendirmenize olanak tanır.
Ağ geçidini yapılandırma ve başlatma
Edge Microgateway'i bağımsız modda çalıştırmak için:
- Edge Microgateway'in 3.0.1 veya sonraki bir sürümünün yüklü olduğundan emin olun. Aksi takdirde, en son sürüme yükseltmek için aşağıdaki komutu yürütmeniz gerekir:
npm install -g edgemicro
Yardıma ihtiyacınız varsa Edge Microgateway'i yükleme başlıklı makaleyi inceleyin.
- Aşağıdaki gibi adlandırılmış bir yapılandırma dosyası oluşturun:
$HOME/.edgemicro/org_name-env_name-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 oluşturmak için değerler sağladığınız aşağıdaki
startkomutunu çalıştırın:edgemicro start -o org_name -e environment_name -a local_proxy_name \ -v local_proxy_version -t target_url -b base_path
Burada:
- your_org, yapılandırma dosyası adında kullandığınız "org" adıdır.
- your_environment, yapılandırma dosyasında kullandığınız "env" adıdır. adı.
- 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 temel yoludur. Bu değer eğik çizgiyle başlamalıdır. Kök temel yol için yalnızca 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" }extautheklentisifoo-bar-config.yamldosyasında olduğundan "missing_authorization" hatası alırsınız. Bu eklenti, API çağrısının Authorization (Yetkilendirme) üstbilgisinde bulunması gereken bir JWT'yi doğrular. Bir sonraki bölümde, API çağrılarının hatasız şekilde yapılmasını sağlayacak 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 alınacağı gösterilmektedir.
Bu uç nokta, Edge Microgateway'in standart kurulumunu ve yapılandırmasını yaptığınızda dağıtılır.
Apigee uç noktasından JWT'yi almak için önce standart Edge Microgateway kurulumunu yapmanız ve internete bağlı olmanız gerekir. Apigee uç noktası burada yalnızca örnek amaçlı olarak kullanılmaktadır ve zorunlu 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-authproxy'sini Apigee Edge'deki kuruluşunuza/ortamınıza dağıtmak için Edge Microgateway'in standart kurulumunu ve yapılandırmasını yapmanız gerekir. Bu adımı daha önce yaptıysanız tekrar yapmanı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/jwkPublicKeysuç noktasına yönlendirin. Örneğin:extauth: publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
-
Edge Microgateway'i daha önce yaptığınız gibi, yapılandırma dosyası adında kullandığınız kuruluş/ortam adlarını kullanarak 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 JWT jetonu alın.
edgemicro-auth/jwkPublicKeysuç noktası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'i yapılandırdığınız Apigee kuruluşunuzun adıdır.
- your_env, kuruluştaki bir ortamdır.
iseçeneği,edgemicro-authproxy'sini içeren bir ürünü olan geliştirici uygulamasının tüketici anahtarını belirtir.sseçeneği,edgemicro-authproxy'sini içeren bir ürüne sahip geliştirici uygulamasından alınan 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 yetkilendirme üstbilgisine eklenen jetonla aşağıdaki ş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'in Apigee Edge'e dağıtılması için microgateway'e duyarlı bir proxy gerekmez. Bunun yerine, mikro ağ geçidini başlatırken yerel proxy adı, temel yol ve hedef URL sağlayarak "yerel proxy" yapılandırırsınız. Mikro ağ geçidine yapılan API çağrıları daha sonra yerel proxy'nin hedef URL'sine gönderilir. Diğer tüm açılardan yerel proxy modu, Edge Microgateway'i normal modda çalıştırmakla tamamen aynı şekilde çalışır. Kimlik doğrulama, ani artışları önleme ve kota zorlama, özel eklentiler vb. aynı şekilde çalışır.
Kullanım alanı ve örnek
Yerel proxy modu, yalnızca tek bir proxy'yi Edge Microgateway örneğiyle ilişkilendirmeniz gerektiğinde kullanışlıdır. Örneğin, Edge Microgateway'i Kubernetes'e sidecar proxy olarak yerleştirebilirsiniz. Bu durumda, bir mikro ağ geçidi ve bir hizmet tek bir kapsülde çalışır ve mikro ağ geçidi, eşlik eden hizmetine giden ve bu hizmetten gelen trafiği yönetir. Aşağıdaki şekilde, Edge Microgateway'in Kubernetes kümesinde yardımcı proxy olarak işlev gördüğü bu mimari gösterilmektedir. Her mikro ağ geçidi örneği, yalnızca eşlik eden hizmetindeki tek bir uç noktayla iletişim kurar:

Bu mimari stilinin avantajlarından biri, Edge Microgateway'in Kubernetes kümesi gibi bir kapsayıcı ortamına dağıtılan bağımsız hizmetler için API yönetimi sağlamasıdır.
Yerel proxy modunu yapılandırma
Edge Microgateway'i yerel proxy modunda çalışacak şekilde yapılandırmak için aşağıdaki adımları uygulayın:
- Edge Microgateway'in 3.0.1 veya sonraki bir sürümünün yüklü olduğundan emin olun. Aksi takdirde, en son sürüme yükseltmek için aşağıdaki komutu yürütmeniz gerekir:
npm install -g edgemicro
Yardıma ihtiyacınız varsa Edge Microgateway'i yükleme başlıklı makaleyi inceleyin.
- Yerel yapılandırma ortamınızı, tipik bir Edge Microgateway kurulumunda olduğu gibi ayarlamak için
edgemicro initkomutunu çalıştırın. Ayrıca Edge Microgateway'i yapılandırma başlıklı makaleyi de inceleyin. edgemicro configurekomutunu, normal bir Edge Microgateway kurulum prosedüründe olduğu gibi çalıştırın. Örneğin:edgemicro configure -o your_org -e your_env -u your_apigee_username
Bu komut, edgemicro-auth politikasını Edge'e dağıtır ve mikro ağ geçidini başlatmak için ihtiyacınız olan bir anahtar ve gizli dizi döndürür. Yardıma ihtiyacınız varsa Edge Microgateway'i yapılandırma başlıklı makaleyi inceleyin.
- Apigee Edge'de bir API ürünü oluşturun ve aşağıdaki zorunlu yapılandırma şartlarını uygulayın (diğer tüm yapılandırmaları istediğiniz gibi yönetebilirsiniz):
- Ürüne edgemicro-auth proxy'sini eklemeniz gerekir. Bu proxy,
edgemicro configurekomutunu çalıştırdığınızda otomatik olarak dağıtıldı. - Kaynak yolu sağlamanız gerekir. Apigee, bu yolu ürüne eklemenizi önerir:
/**. Daha fazla bilgi için Kaynak yolunun davranışını yapılandırma başlıklı makaleyi inceleyin. Ayrıca Edge belgelerindeki API ürünleri oluşturma bölümüne de bakın.
- Ü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ğeriyle dışa aktarın.
export EDGEMICRO_LOCAL_PROXY=1
- Aşağıdaki
startkomutunu ç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_pathBurada:
- your_org, Apigee kuruluşunuzdur.
- your_environment, kuruluşunuzdaki bir ortamdır.
- your_key,
edgemicro configurekomutunu çalıştırdığınızda döndürülen anahtardır. - your_secret,
edgemicro configurekomutunu çalıştırdığınızda döndürülen gizli anahtardır. - local_proxy_name, oluşturulacak yerel proxy'nin adıdır.
- local_proxy_version, proxy'nin sürüm numarasıdır.
- target_url, proxy'nin hedefinin URL'sidir (proxy'nin çağıracağı hizmet).
- base_path, proxy'nin temel yoludur. Bu değer eğik çizgiyle başlamalıdır. Kök temel yol için yalnızca 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 belirtirseniz proxy'yi aşağıdaki gibi çağırabilirsiniz:
curl http://localhost:8000/echo
{
"error" : "missing_authorization",
"error_description" : "Missing Authorization header"
}Bu ilk API çağrısı, geçerli bir API anahtarı sağlamadığınız için hata verdi. 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 ş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":""
}