Eklentileri kullanma

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Edge Microgateway v. 3.1.x

Kitle

Bu konu, Search Console'u kullanan mevcut eklentileri kullanmak isteyen Edge mikro ağ geçidiyle kurulur. Ayrıca, Çevik’te yüksek oranda tutma ve kota eklentileri (her ikisi de kuruluma dahildir). Yeni bir web sitesi geliştirmek isteyen daha fazla bilgi için Geliştirme özel eklentiler.

Edge Microgateway eklentisi nedir?

Eklentiler, Edge Microgateway'e işlev ekleyen bir Node.js modülüdür. Eklenti modülleri tutarlı bir kalıp izler ve Edge Microgateway tarafından bilinen bir konumda saklanır. mikro ağ geçidini kullanarak bunları otomatik olarak keşfedip yükleyebilirsiniz. Edge Mikro Ağ Geçidi, çeşitli mevcut Eklentiler ve ayrıca, Özel eklentiler geliştirme bölümünde açıklandığı gibi özel eklentiler de oluşturabilirsiniz.

Edge ile paket halinde sunulan mevcut eklentiler Mikro ağ geçidi

Yükleme sırasında Edge Microgateway ile sağlanan birçok mevcut eklenti sağlanır. Bu şunlardır:

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. Bkz. Ayar ve Edge Microgateway'i yapılandırma hakkında daha fazla bilgi edinin.
kota Hayır Edge Mikro Ağ Geçidi'ne yapılan isteklerde kotayı uygular. Depolama ve yönetim için Apigee Edge kullanıyor kotalar. Kota eklentisini kullanma başlıklı makaleyi inceleyin.
spikearrest Hayır Ani trafik artışlarına ve DoS saldırılarına karşı koruma sağlar. Sıçramalı durdurma eklentisini kullanma bölümüne bakın.
başlık-büyük harf Hayır Geliştiricilerin özel eklentiler yazmasına yardımcı olmak için tasarlanmış, yorum eklenmiş örnek bir proxy. Bkz. Edge Microgateway örnek eklentisi.
accumulate-request Hayır İstek verilerini bir sonraki işleyiciyi eklemesi gerekir. tek, birikmiş istek içerik nesnesi.
accumulate-response Hayır Verileri bir sonraki hedefe iletmeden önce yanıt verilerini tek bir nesnede toplar. işleyiciyi eklemesi gerekir. tek, toplanmış yanıt içeriği nesnesi.
dönüştürme-büyük-harf Hayır İstek veya yanıt verilerini dönüştürür. Bu eklenti, en iyi uygulamayı temsil ediyor dönüşüm eklentisinin uygulanmasıdır. Örnek eklenti basit bir dönüşüm işlemi (istek veya yanıt verilerini büyük harfe dönüştürür); ama belirli bir zamanda programatik XML'den JSON'ye gibi diğer türlerde dönüşümler gerçekleştirebilirsiniz.
json2xm Hayır İstek veya yanıt verilerini kabul etme veya içerik türü başlıklarına göre dönüştürür. Örneğin, daha fazla bilgi için eklentiye bakın belgelerine göz atın.
kota-belleği Hayır Edge Mikro Ağ Geçidi'ne yapılan isteklerde kotayı uygular. Kotaları yerel olarak depolar ve yönetir hafızada bulabilirsiniz.
sağlık denetimi Hayır Edge Mikro Ağ Geçidi işlemi hakkında bilgi döndürür. Bu bilgiler arasında bellek kullanımı, CPU kullanımı, vb. bulabilirsiniz. Eklentiyi kullanmak için Edge'inizde /healthcheck URL'sini çağırın. Mikro ağ geçidi örneği. Bu eklenti, Google'dan e-posta güncellemeleri ve kendi durum denetimi eklentinizi uygulayın.

Mevcut eklentiler nerede bulunur?

Edge Microgateway ile paketlenen mevcut eklentiler burada bulunur. [prefix] npm ön ek dizinidir. Bkz. Bu dizini bulamıyorsanız Edge Microgateway nerede yüklüdür?

[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins

Eklenti ekleme ve yapılandırma

Eklentileri eklemek ve yapılandırmak için şu kalıbı uygulayın:

  1. Edge Mikro Ağ Geçidi'ni durdurun.
  2. Bir Edge Microgateway yapılandırma dosyası açın. Ayrıntılar için bkz. Seçenekler için yapılandırma değişiklikleri yapma başlıklı makaleyi inceleyin.
  3. Eklentiyi, yapılandırma dosyasının plugins:sequence öğesine aşağıdaki gibi ekleyin. Eklentiler bu listede göründükleri sırayla yürütü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
  1. Eklentiyi yapılandırın. Bazı eklentiler, yapılandırma dosyası. Örneğin, ani artış durdurmasını yapılandırmak için aşağıdaki dizeyi ekleyebilirsiniz. eklentisidir. Sıçramalı durdurma eklentisini kullanma bölümüne bakın. konulu videomuzu izleyin.
    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
    
  1. Dosyayı kaydedin.
  2. Düzenlediğiniz yapılandırma dosyasına bağlı olarak Edge Microgateway'i yeniden başlatın veya yeniden yükleyin.

Eklentiye özel yapılandırma

Yapılandırma dosyasında belirtilen eklenti parametrelerini geçersiz kılmak için bu dizindeki eklentiye özel yapılandırma:

[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins/config

Burada [prefix], npm ön ek dizinidir. Bkz. Bu dizini bulamıyorsanız Edge Microgateway nerede yüklüdür?

plugins/<plugin_name>/config/default.yaml Örneğin, Arkadaş Bitkiler projesinin plugins/spikearrest/config/default.yaml içinde engellenecek ve bunlar diğer tüm yapılandırma ayarlarınızı kontrol edin.

spikearrest:
   timeUnit: hour   
   allow: 10000   
   buffersize: 0

Sıçramalı durdurma eklentisini kullanma

Ani artış durdurma eklentisi, ani trafik artışlarına karşı koruma sağlar. İstek sayısını azaltır bir Edge Microgateway örneği tarafından işlenir.

Ani artış durdurma eklentisi

Eklenti ekleme ve yapılandırma başlıklı makaleye bakın.

Şunun için örnek yapılandırma: ani artış önleme

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

Şunun için yapılandırma seçenekleri: ani artış önleme

  • timeUnit: Ani artış yürütme penceresinin ne sıklıkta sıfırlandığı. Geçerli değerler saniye veya dakikadır.
  • allow: timeUnit sırasında izin verilen maksimum istek sayısı. Görüntüleyin Ayrıca birden fazla Edge Micro kullanıyorsanız bilgi edinin.
  • bufferSize: (isteğe bağlı, varsayılan = 0), bufferSize > 0, ani artış durdurma bu istek sayısını bir arabellekte depolar. Bir sonraki yürütme "penceresi" olduğunda en az bir defa arabelleğe alınan istekler öncelikle işleme alınır. Ayrıca bkz. Bir arabellek seçin.

Ani artış önleme nasıl çalışır?

Ani artış önlemeyi, trafikteki ani artışlardan ziyade genel olarak trafikteki ani artışlara karşı korumanın bir yolu olarak Bu yöntem, trafiği belirli sayıda istekle sınırlandırmanın bir yoludur. API'leriniz ve arka ucunuz belirli bir trafik miktarına bakarsınız ve artış durdurma politikası, trafiği genel miktarlara istediğiniz zaman kapatabilirsiniz.

Çalışma zamanı artışı durdurma davranışı, normal değerden beklediğinizden farklı saniye başına veya saniye başına değerler girebilirsiniz.

Örneğin, şu şekilde dakikada 30 istek olarak bir hız belirttiğinizi varsayalım:

spikearrest:
   timeUnit: minute
   allow: 30

Test sırasında, gönderilen istek 30 saniyede 1 saniye içinde gönderilebilir. bir dakika içinde. Ancak politika bu şekilde zorunlu kılınmaz. Bir düşünün, 30 1 saniyelik süre içindeki istekler bazı ortamlarda ani artış olarak değerlendirilebilir.

Peki, sonrasında tam olarak ne olur? Ani artış benzeri davranışı önlemek için yükselme durdurma, izin verilen ayarlarınızı aşağıdaki gibi daha küçük aralıklara bölerek trafiğinizi artırın:

Dakika başına ücretler

Dakika başına ücretler, izin verilen saniye aralıklarıyla isteklere dönüştürülür. Örneğin, 30 Dakikadaki istek sayısı şu şekilde ayarlanır:

60 saniye (1 dakika) / 30 = 2 saniyelik aralıklar veya her 2 saniyede bir yaklaşık 1 isteğe izin verilir. CEVAP saniye içindeki ikinci istek başarısız olur. Ayrıca, bir dakika içindeki 31. istek başarısız olur.

Saniye başına fiyatlar

Saniye başına hızlar, 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 yaklaşık 1 isteğe izin verilir her 100 milisaniyede bir . 100 ms içindeki ikinci bir istek başarısız olur. Ayrıca son 30 gün içinde ikincisi 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ış durdurma aşağıdaki hata mesajını HTTP 503 durumuyla döndürür:

{"error": "spike arrest policy violated"}

Tampon ekleme

Politikaya tampon ekleyebilirsiniz. Tamponu 10’a ayarladığınızı varsayalım. Ani artış hızını aştığınızda API'nin hemen hata döndürmediğini görürsünüz limit. Bunun yerine istekler arabelleğe alınır (belirtilen sayıya kadar) ve arabelleğe alınan istekler bir sonraki uygun yürütme penceresi kullanılabilir olduğunda işlenir. Varsayılan bufferSize 0'dır.

Birden fazla Edge Micro kullanıyorsanız işlem

İzin verilen isteklerin sayısı, bir kontrol gerçekleştirirken kontrol edilen Edge Mikro çalışan işlemlerinin sayısına bağlıdır. çalışıyor. Ani artış durdurma, çalışan işlemi başına izin verilen istek sayısını hesaplar. Varsayılan olarak Edge Micro işlemlerinin sayısı, Edge Micro'nın çalıştığı makinedeki yüklendi. Bununla birlikte, Edge Micro'yı başlattığınızda çalışan işlemlerinin sayısını yapılandırabilirsiniz. start komutundaki --processes seçeneğini kullanabilirsiniz. Örneğin, artış durdurmanın belirli bir dönemde 100 istekte tetiklenmesini istiyorsanız ve Edge'i başlatırsanız --processes 4 seçeneğine sahip mikro ağ geçidi, ardındanallow: 25 artış durdurması yapılandırması. Özetle, genel kural allow yapılandırmasını ayarlamaktır. parametresini "istenen artış durdurma sayısı / işlem sayısı" değerine ekleyin.

Kota eklentisini kullanma

Kota, bir uygulamanın API'ye göndermesine izin verilen istek mesajı sayısını belirtir devam edebilir. Bir uygulama kota sınırına ulaştığında API çağrıları reddedilir. Ayrıca bkz. artış durdurması ve kota gibi.

Kota eklentisini ekleme

Eklenti ekleme ve yapılandırma başlıklı makaleye bakın.

Apigee'de ürün yapılandırması Kenar

Kotaları, API ürünlerini yapılandırdığınız Apigee Edge kullanıcı arayüzünde yapılandırırsınız. Bilmeniz gerekenler mikro ağ geçidine duyarlı proxy'yi içeren ve kotayla sınırlamak istediğiniz ürünün hangisi olduğunu öğrenebilirsiniz. Bu ürününün bir geliştirici uygulamasına eklenmesi gerekir. anahtarlarının sayısını geride bırakırsak kota, bu API çağrılarına uygulanır.

  1. Apigee Edge kurumsal hesabınıza giriş yapın.
  2. Edge kullanıcı arayüzünde, mikro ağ geçidine duyarlı proxy ile ilişkilendirilmiş ürünü açın. kotayı uygulamak istiyorsunuz.
    1. Kullanıcı arayüzünde, Yayınla menüsünden Ürünler'i seçin.
    2. Kotayı uygulamak istediğiniz API'yi içeren ürünü açın.
    3. Düzenle'yi tıklayın.
    4. Kota alanında kota aralığını belirtin. Örneğin, her 100 istek bir dakika Veya her 2 saatte bir 50.000 istek.

  1. Kaydet'i tıklayın.
  2. Ürünün bir geliştirici uygulamasına eklendiğinden emin olun. Bu uygulamadaki anahtarları kullanarak kimliği doğrulanmış API çağrılarına karşılık gelir.

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 eklentisini yapılandırmak için yapılandırma dosyanıza quotas öğesini ekleyin. aşağıdaki örnekte gösterildiği gibi:

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
  quotas:
    bufferSize:
      hour: 20000
      minute: 500
      month: 1
      default: 10000
    useDebugMpId: true
    failOpen: true
...
Option Açıklama
buffersize (Tam sayı) Belirtilen zaman aralığı için ayarlanacak arabellek boyutu. İzin verilen süre birimler şunları içerir: hour, minute, day, week, month ve default.
failOpen Bu özellik etkinleştirildiğinde bir kota işleme hatası oluşursa veya "kota geçerliyse" Edge'e gönderilen istek, uzak kota sayaçlarını güncelleyemiyorsa bir sonraki başarılı uzak kotaya kadar yalnızca yerel sayılara göre işlenir senkronizasyon gerçekleşir. Her iki durumda da quota-failed-open işareti istek nesnesini oluşturur.

Kotayı etkinleştirmek için "fail open" (açılamadı) özelliğini kullanıyorsanız, aşağıdaki yapılandırmayı ayarlayın:

edgemicro:
  ...
  quotas:
    failOpen: true
...
useDebugMpId MP'nin günlüğe kaydedilmesini etkinleştirmek için bu işareti true olarak ayarlayın (mesaj işlemcisi) kimliği kota yanıtlarında.

Bu özelliği kullanmak için aşağıdaki yapılandırmayı ayarlamanız gerekir:

edgemicro:
  ...
  quotas:
    useDebugMpId: true
  ...

useDebugMpId ayarlandığında, Edge'den alınan kota yanıtları MP kimliğini içerir ve Edge Microgateway tarafından günlüğe kaydedilir. Örneğin:

{
    "allowed": 20,
    "used": 3,
    "exceeded": 0,
    "available": 17,
    "expiryTime": 1570748640000,
    "timestamp": 1570748580323,
    "debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
}
useRedis true olarak ayarlanırsa eklenti, kota yedekleme deposu için Redis kullanır. Ayrıntılar için Kota için Redis yedekleme deposu kullanma bölümüne bakın.

Kota için Redis yedekleme deposu kullanma

Kota için bir Redis yedekleme deposu kullanmak üzere Senkronize edici özelliği. Aşağıda, Redis'i kullanmak için gereken temel yapılandırma verilmiştir. kota depolama:

edgemicro:
  redisHost: localhost
  redisPort: 6379
  redisDb: 2
  redisPassword: codemaster

quotas:
  useRedis: true
edgemicro.redis* parametreleriyle ilgili ayrıntılar için Senkronize ediciyi kullanma başlıklı makaleye bakın.

Kota eklentisini test etme

Kota aşıldığında istemciye şu mesaj var:

{"error": "exceeded quota"}

Aralarındaki fark nedir? ile kota arasındaki fark nedir?

Elinizdeki iş için doğru aracı seçmek önemlidir. Kota politikaları yapılandırması Bir istemci uygulamasının kurs boyunca API'ye göndermesine izin verilen istek mesajlarının sayısı bir saat, gün, hafta veya ay olabilir. Kota politikası, istemci uygulamalarında tüketim sınırlarını şu şekilde zorunlu kılar: gelen istekleri sayan dağıtılmış bir sayaç yönetimi.

Geliştiriciler ve iş ortaklarıyla iş sözleşmeleri veya HDS'ler uygulamak için kota politikası kullanın. çok daha iyidir. Örneğin, bir kota bir web sitesinin trafiğini sınırlamak için hem de ücretsiz bir hizmet sunarken, ödeme yapan müşteriler için tam erişim olanağı sunuyor.

API trafiğindeki ani artışlara karşı koruma sağlamak için artış durdurma özelliğini kullanın. Ani artış noktası genellikle olası DDoS veya diğer kötü amaçlı saldırıları önlemek için kullanılır.