Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Edge Microgateway 2.4.x sürümü
Kitle
Bu konu, mikro ağ geçidiyle yüklenmiş mevcut eklentileri kullanmak isteyen Edge Microgateway operatörlerine yöneliktir. Ayrıca, artış durdurma ve kota eklentileri ayrıntılı olarak tartışılır (her ikisi de kuruluma dahildir). Yeni eklentiler geliştirmek isteyen bir geliştiriciyseniz Özel eklentiler geliştirme bölümünü inceleyin.
Edge Mikro Geçit eklentisi nedir?
Eklenti, Edge Mikro Ağ Geçidi'ne işlev ekleyen bir Node.js modülüdür. Eklenti modülleri tutarlı bir düzende tutulur ve Edge Microgateway tarafından bilinen bir konumda depolanır. Böylece mikro ağ geçidi, bunları otomatik olarak keşfedip yükleyebilir. Edge Microgateway, mevcut birkaç eklenti içerir. Özel eklentiler geliştirme bölümünde açıklandığı gibi özel eklentiler de oluşturabilirsiniz.
Edge Microgateway ile birlikte sunulan mevcut eklentiler
Kurulum sırasında Edge Microgateway ile birlikte mevcut birçok eklenti sağlanır. Bunlardan bazıları:
Eklenti | Varsayılan olarak etkindir | Açıklama |
---|---|---|
analiz | Evet | Analiz verilerini Edge Microgateway'den Apigee Edge'e gönderir. |
oauth | Evet | Edge Mikro Ağ Geçidi'ne OAuth jetonu ve API Anahtarı doğrulaması ekler. Edge Mikro Ağ Geçidi'ni kurma ve yapılandırma sayfasını inceleyin. |
kota | Hayır | Edge Mikro Ağ Geçidi isteklerinde kotayı zorunlu kılar. Kotaları depolamak ve yönetmek için Apigee Edge'i kullanır. Kota eklentisini kullanma bölümünü inceleyin. |
araştırma | Hayır | Trafik artışlarına ve DoS saldırılarına karşı koruma sağlar. Sıçramayı durdurma eklentisini kullanma bölümünü inceleyin. |
üstbilgi-büyük harf | Hayır | Geliştiricilerin özel eklentiler yazmalarına yardımcı olmak üzere hazırlanmış bir rehber olarak hazırlanmış, yorumlanmış, örnek bir proxy. Edge Microgateway örnek eklentisi bölümüne bakın. |
topla-istek | Hayır | Verileri eklenti zincirinde bir sonraki işleyiciye iletmeden önce istek verilerini tek bir nesnede toplar. Tek bir toplanmış istek içeriği nesnesi üzerinde çalışması gereken dönüştürme eklentileri yazmak için yararlıdır. |
toplanmış-yanıt | Hayır | Verileri eklenti zincirinde bir sonraki işleyiciye iletmeden önce yanıt verilerini tek bir nesnede toplar. Birikmiş tek bir yanıt içeriği nesnesi üzerinde çalışması gereken dönüştürme eklentileri yazmak için yararlıdır. |
büyük-harf-dönüştür | Hayır | İstek veya yanıt verilerini dönüştürür. Bu eklenti, bir dönüşüm eklentisinin en iyi uygulamasını temsil eder. Örnek eklenti, sıradan bir dönüştürme işlemi gerçekleştirir (istek veya yanıt verilerini büyük harfe dönüştürür). Ancak XML'den JSON'a dönüştürme gibi diğer dönüşüm türlerini gerçekleştirmek için kolayca uyarlanabilir. |
json2xml | Hayır | Kabul veya içerik türü üstbilgilerine göre istek veya yanıt verilerini dönüştürür. Ayrıntılı bilgi için GitHub'daki eklenti dokümanlarına bakın. |
kota-bellek | Hayır | Edge Mikro Ağ Geçidi isteklerinde kotayı zorunlu kılar. Yerel bellekteki kotaları depolar ve yönetir. |
healthcheck | Hayır | Edge Microgateway süreciyle (bellek kullanımı, cpu kullanımı vb.) ilgili bilgileri döndürür. Eklentiyi kullanmak için Edge Microgateway örneğinizde /healthcheck URL'sini çağırın. Bu eklenti, kendi durum denetimi eklentinizi uygulamak için kullanabileceğiniz bir örnek olarak tasarlanmıştır. |
Mevcut eklentiler nerede bulunur?
Edge Microgateway ile birlikte sunulan mevcut eklentiler burada bulunur. Burada [prefix]
, npm
ön ek dizinidir.
Edge Microgateway nerede kurulu? bölümüne göz atın.
[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins
Eklenti ekleme ve yapılandırma
Eklentileri eklemek ve yapılandırmak için şu düzeni uygulayın:
- Edge Mikro Ağ Geçidi'ni durdurun.
- Bir Edge Microgateway yapılandırma dosyasını açın. Ayrıntılar için Yapılandırma değişiklikleri yapma bölümüne bakın.
- Eklentiyi, yapılandırma dosyasının
plugins:sequence
öğesine aşağıdaki şekilde ekleyin. Eklentiler bu listede göründükleri sırayla çalıştırılır.
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - plugin-name
- Eklentiyi yapılandırın. Bazı eklentilerin, yapılandırma dosyasında yapılandırabileceğiniz isteğe bağlı parametreleri vardır. Örneğin, ani artış durdurma eklentisini yapılandırmak için aşağıdaki dizeyi ekleyebilirsiniz. Daha fazla bilgi için Sıçrama önleme eklentisini kullanma bölümüne bakın.
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - spikearrest spikearrest: timeUnit: minute allow: 10
- Dosyayı kaydedin.
- Düzenlediğiniz yapılandırma dosyasına bağlı olarak, Yapılandırma değişiklikleri yapma bölümünde açıklandığı gibi Edge Mikro Ağ Geçidi'ni yeniden başlatın veya yeniden yükleyin.
Eklentiye özel yapılandırma
Bu dizinde eklentiye özel bir yapılandırma oluşturarak yapılandırma dosyasında belirtilen eklenti parametrelerini geçersiz kılabilirsiniz:
[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins/config
Burada [prefix]
, npm
ön ek dizinidir.
Edge Microgateway nerede kurulu? bölümüne göz atın.
plugins/<plugin_name>/config/default.yaml
. Örneğin, bu engellemeyi plugins/spikearrest/config/default.yaml
içine yerleştirebilirsiniz ve bu blok diğer yapılandırma ayarlarını geçersiz kılar.
spikearrest: timeUnit: hour allow: 10000 buffersize: 0
Sıçrama durdurma eklentisini kullanma
Bu bölümde, artış durdurma eklentisi açıklanmaktadır.
Ani artış durdurma hakkında
Spike Arrest, trafikteki ani artışlara karşı koruma sağlar. Edge Microgateway örneği tarafından işlenen istek sayısını kısıtlar. Daha fazla bilgi için Ani artış yakalaması nasıl çalışır? başlıklı makaleyi inceleyin. Ani artış durdurma ile kota arasındaki fark nedir? bölümüne de bakın.
Çivi durdurma eklentisi ekleme
Eklentilere ilişkin temel adımlar için Eklenti ekleme ve yapılandırma başlıklı makaleye bakın.
Ani artış durdurması için örnek yapılandırma
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - spikearrest spikearrest: timeUnit: minute allow: 10 bufferSize: 5
Ani artış durması için yapılandırma seçenekleri
- timeUnit: Ani durdurma yürütme aralığının ne sıklıkta sıfırlandığı. Geçerli değerler saniye veya dakikadır.
- allow: timeUnit sırasında izin verilecek maksimum istek sayısı.
- bufferSize: (isteğe bağlı, varsayılan = 0) bufferSize > 0 ise artış durdurma bu sayıda istek sayısını bir arabellekte depolar. Bir sonraki yürütme "window"u gerçekleşir gerçekleşmez, ilk olarak arabelleğe alınan istekler işlenir. Tampon ekleme konusuna da bakın.
Ani artış yakalaması nasıl çalışır?
Ani artış durdurmasını, trafiği belirli bir sayıda istekle sınırlamanın bir yolu yerine, genel olarak trafik artışlarına karşı korumanın bir yolu olarak düşünebilirsiniz. API'leriniz ve arka ucunuz belirli bir miktarda trafiği yönetebilir. Ani artış durdurma politikası ise trafiği istediğiniz genel miktarlarda azaltmanıza yardımcı olur.
Çalışma zamanı artış durdurma davranışı, girdiğiniz dakika veya saniye başına değişmez değerlerden görmeyi bekleyebileceğinizden farklıdır.
Örneğin, aşağıdaki gibi dakikada 30 istek hızı belirlediğinizi varsayalım:
spikearrest: timeUnit: minute allow: 30
Testlerde, bir dakika içinde geldiği sürece 1 saniyede 30 istek gönderebileceğinizi düşünebilirsiniz. Ancak politika, ayarı bu şekilde zorunlu kılmaz. Düşünsenize, 1 saniyelik süre içinde 30 istek, bazı ortamlarda küçük bir ani artış olarak kabul edilebilir.
Peki, tam olarak ne olacak? Ani artış benzeri davranışları önlemek için ayarlarınızı aşağıdaki gibi daha kısa aralıklara bölerek izin verilen trafiği yumuşatır:
Dakika başına fiyatlar
Dakika başına fiyatlar, izin verilen saniye aralıklarına dönüştürülür. Örneğin, dakika başına 30 istek şu şekilde yumuşatılır:
60 saniye (1 dakika) / 30 = 2 saniyelik aralıklar veya her 2 saniyede yaklaşık 1 isteğe izin verilir. 2 saniye içinde yapılan ikinci istek başarısız olur. Ayrıca, bir dakika içinde gerçekleşen 31. istek başarısız olur.
Saniye başına fiyatlar
Saniye başına fiyatlar, milisaniyelik aralıklarla izin verilen isteklere dönüştürülür. Örneğin, 10 istek/saniye şu şekilde yumuşatılır:
1.000 milisaniye (1 saniye) / 10 = 100 milisaniyelik aralıklar veya her 100 milisaniyede yaklaşık 1 isteğe izin verilir. 100 ms. içindeki ikinci bir istek başarısız olur. Ayrıca, bir saniye içinde 11. istek başarısız olur.
Sınır aşıldığında
İstek sayısı belirtilen zaman aralığı içinde sınırı aşarsa ani artış uyarısı, HTTP 503 durumu ile şu hata mesajını döndürür:
{"error": "spike arrest policy violated"}
Arabellek ekleme
Politikaya tampon ekleyebilirsiniz. Tamponu 10 olarak ayarladığınızı varsayalım. Ani artış durdurma sınırını aştığınızda API'nin hemen hata döndürmediğini görürsünüz. Bunun yerine, istekler belirtilen sayıya kadar arabelleğe alınır (belirtilen sayıya kadar) ve arabelleğe alınan istekler bir sonraki uygun yürütme aralığı kullanılabilir olur olmaz işlenir. Varsayılan bufferSize 0'dır.
Kota eklentisini kullanma
Bu bölümde kota eklentisi açıklanmaktadır.
Kota eklentisi hakkında
Kota, bir uygulamanın saat, gün, hafta veya ay boyunca bir API'ye göndermesine izin verilen istek mesajı sayısını belirtir. Bir uygulama kota sınırına ulaştığında sonraki API çağrıları reddedilir. Ani artış durdurma ve kota arasındaki fark nedir? bölümünü de inceleyin.
Kota eklentisini ekleme
Eklentilere ilişkin temel adımlar için Eklenti ekleme ve yapılandırma başlıklı makaleye bakın.
Apigee Edge'de ürün yapılandırması
Kotaları, API ürünlerini yapılandırdığınız Apigee Edge kullanıcı arayüzünde yapılandırırsınız. Hangi ürünün, kotayla sınırlandırmak istediğiniz mikro ağ geçidine duyarlı proxy'yi içerdiğini bilmeniz gerekir. Bu ürün, bir geliştirici uygulamasına eklenmelidir. Geliştirici uygulamasında anahtarlar kullanılarak kimliği doğrulanan API çağrıları yaptığınızda kota, bu API çağrılarına uygulanır.
- Apigee Edge kurumsal hesabınıza giriş yapın.
- Edge kullanıcı arayüzünde, kotayı uygulamak istediğiniz mikro ağ geçidi duyarlı proxy ile ilişkili ürünü açın.
- Kullanıcı arayüzündeki Yayınla menüsünden Ürünler'i seçin.
- Kotayı uygulamak istediğiniz API'yi içeren ürünü açın.
- Düzenle'yi tıklayın.
- Kota alanında kota aralığını belirtin. Örneğin, dakikada 100 istek. Veya 2 saatte bir 50.000 istek.
- Kaydet'i tıklayın.
- Ürünün bir geliştirici uygulamasına eklendiğinden emin olun. Kimliği doğrulanmış API çağrıları yapmak için bu uygulamadaki anahtarlara ihtiyacınız olacak.
Kota için örnek yapılandırma
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - quota
Kota için yapılandırma seçenekleri
Kota eklentisi için ek yapılandırma seçenekleri yoktur.
Kota eklentisini test etme
Kota aşıldığında istemciye aşağıdaki mesajla birlikte bir HTTP 403 durumu döndürülür:
{"error": "exceeded quota"}
Ani artış durdurma ile kota arasındaki fark nedir?
Elinizdeki iş için doğru aracı seçmek önemlidir. Kota politikaları; bir istemci uygulamasının saat, gün, hafta veya ay boyunca bir API'ye göndermesine izin verilen istek mesajı sayısını yapılandırır. Kota politikası, gelen istekleri sayan dağıtılmış bir sayacı koruyarak istemci uygulamalarında tüketim sınırları uygular.
Operasyonel trafik yönetimi yerine geliştiriciler ve iş ortaklarıyla iş sözleşmelerini veya HDS'leri zorunlu kılmak için bir kota politikası kullanın. Örneğin kota, ödeme yapan müşterilere tam erişime izin verirken ücretsiz bir hizmet için trafiği sınırlandırmak için kullanılabilir. Ayrıca bkz. Kota eklentisini kullanma.
API trafiğindeki ani artışlardan korunmak için artış durdurma özelliğini kullanın. Genellikle ani artış önleme özelliği olası DDoS saldırılarını veya diğer kötü amaçlı saldırıları önlemek için kullanılır.