Az InterSystems API Manager bemutatása (+ webinárium)

Nemrég kiadtuk az InterSystems API Managert (IAM), az InterSystems IRIS Data Platform új összetevőjét, amely az IT-infrastruktúrán keresztül biztosítja a webes API-forgalom láthatóságát, vezérlését és kezelését.

Ebben a cikkben bemutatom, hogyan állíthatja be az IAM-et, és bemutatok néhányat az IAM által elérhető számos lehetőség közül. Az InterSystems API Manager lehetővé teszi, hogy:

  • Figyelje az API-t, értse meg, ki használja az API-t, mely API-k a legnépszerűbbek, és melyek azok, amelyek fejlesztésre szorulnak.
  • Szabályozza, hogy ki használja az API-t, és korlátozza az API-használatot az egyszerű hozzáférési korlátozásoktól a kérésalapú korlátozásokig – egyéni vezérléssel rendelkezik, és gyorsan reagálhat a változó API-fogyasztási mintákra.
  • Biztonságos API-k olyan központi biztonsági mechanizmusokkal, mint az OAuth2.0, LDAP vagy Key Token Authentication.
  • Egy dedikált fejlesztői portál megnyitásával könnyítse meg a harmadik féltől származó fejlesztők dolgát, és biztosítson számukra kiváló API-élményt.
  • Méretezze az API-t, és biztosítsa a minimális válaszkésést.

Az API-kezelés elengedhetetlen a SOA-ra vagy mikroszolgáltatás-architektúrára való átálláshoz, leegyszerűsítve az egyes (mikro)szolgáltatások közötti integrációt, elérhetővé téve azokat minden külső és belső fogyasztó számára. Ennek eredményeként az új API-k könnyebben létrehozhatók, karbantarthatók és fogyaszthatók.

Ha már használja az InterSystems IRIS-t, hozzáadhatja az IAM opciót a licencéhez. Az IAM opció ingyenes az InterSystems IRIS ügyfelei számára, de az IAM használatának megkezdéséhez új licenckulcsot kell kérnie az InterSystemstől.

Ha még nem használja az InterSystems IRIS-t, és az InterSystems API Manager kipróbálását tervezi, lépjen kapcsolatba az InterSystems-szel.

Első lépések és telepítés

Az InterSystems ügyfelei letölthetik az IAM-terjesztést a webhelyről WRC a „Szoftverterjesztés” szakaszt, és Docker-tárolóként fut. Minimális rendszerkövetelmények:

Kezdetben le kell tölteni a Docker image-t (Fontos! A WRC-s archívum nem Docker image, ki kell csomagolni, van benne egy Docker kép):

docker load -i iam_image.tar

Ez a parancs elérhetővé teszi az IAM-képet későbbi használatra a kiszolgálón. Az IAM külön tárolóként fut, így az InterSystems IRIS-től függetlenül méretezheti. Az IAM futtatásához hozzáférés szükséges az InterSystems IRIS-hez a licenc letöltéséhez.

Az InterSystems IRIS beállítása:

  • Engedélyezze a webalkalmazást /api/IAM
  • Felhasználó engedélyezése IAM
  • Felhasználói jelszó módosítása IAM

Most indítsuk el az IAM tárolót. Az archívumban találsz szkripteket iam-setup Windows és Unix (és Mac) számára. Ezek a parancsfájlok segítenek a környezeti változók helyes beállításában, lehetővé téve az IAM-tároló számára, hogy kapcsolatot létesítsen az InterSystems IRIS-szel. Íme egy példa a Macen futó szkriptre:

source ./iam-setup.sh 
Welcome to the InterSystems IRIS and InterSystems API Manager (IAM) setup script.
This script sets the ISC_IRIS_URL environment variable that is used by the IAM container to get the IAM license key from InterSystems IRIS.
Enter the full image repository, name and tag for your IAM docker image: intersystems/iam:0.34-1-1
Enter the IP address for your InterSystems IRIS instance. The IP address has to be accessible from within the IAM container, therefore, do not use "localhost" or "127.0.0.1" if IRIS is running on your local machine. Instead use the public IP address of your local machine. If IRIS is running in a container, use the public IP address of the host environment, not the IP address of the IRIS container. xxx.xxx.xxx.xxx               
Enter the web server port for your InterSystems IRIS instance: 52773
Enter the password for the IAM user for your InterSystems IRIS instance: 
Re-enter your password: 
Your inputs are:
Full image repository, name and tag for your IAM docker image: intersystems/iam:0.34-1-1
IP address for your InterSystems IRIS instance: xxx.xxx.xxx.xxx
Web server port for your InterSystems IRIS instance: 52773
Would you like to continue with these inputs (y/n)? y
Getting IAM license using your inputs...
Successfully got IAM license!
The ISC_IRIS_URL environment variable was set to: http://IAM:****************@xxx.xxx.xxx.xxx:52773/api/iam/license
WARNING: The environment variable is set for this shell only!
To start the services, run the following command in the top level directory: docker-compose up -d
To stop the services, run the following command in the top level directory: docker-compose down
URL for the IAM Manager portal: http://localhost:8002

Amint látja, a kezdéshez csak a teljes képnévre, IP-címre, InterSystems IRIS-portra és az IAM-felhasználó jelszavára van szüksége.

A parancsfájl futtatása helyett manuálisan is beállíthat környezeti változókat:

ISC_IAM_IMAGE=intersystems/iam:0.34-1-1
ISC_IRIS_URL=http://IAM:<PASS>@<IP>:<PORT>/api/iam/license

dob

Most indítsuk el az IAM-et a parancs futtatásával:

docker-compose up -d

Ez a parancs rendezi az IAM-tárolókat, és biztosítja, hogy minden megfelelően működjön. A tárolók állapota a következő paranccsal ellenőrizhető:

docker ps

Nyissa meg az adminisztrációs felületet a böngészőjében localhost:8002.

Az InterSystems API Manager bemutatása (+ webinárium)

Egyelőre üres, mert ez egy teljesen új csomópont. Változtassunk ezen. Az IAM támogatja a munkaterületek koncepcióját az API-k modulokra és/vagy parancsokra való felosztására. Lépjen az "alapértelmezett" munkaterületre, amelyet a kísérleteinkhez fogunk használni.

Az InterSystems API Manager bemutatása (+ webinárium)

Az erre a munkaterületre vonatkozó kérések száma továbbra is nulla, de a bal oldali menüből képet kaphat az alapvető IAM-fogalmakról. Az első két elem: a szolgáltatások és az útvonalak a legfontosabbak:

  • A szolgáltatás az az API, amelyhez hozzáférést szeretnénk biztosítani a fogyasztóknak. Így az InterSystems IRIS REST API-ja egy szolgáltatás, akárcsak például a Google API, ha használni szeretné.
  • Az Útvonal dönti el, hogy a bejövő kéréseket melyik Szolgáltatáshoz kell továbbítani. Minden Útvonal meghatározott feltételekkel rendelkezik, és ha ezek teljesülnek, a kérés elküldésre kerül a megfelelő szolgáltatásnak. Például egy útvonal egyezhet az IP-címmel, a feladó tartományával, a HTTP metódusokkal, az URI részeivel vagy e példák kombinációjával.

Szolgáltatás

Hozzon létre egy InterSystems IRIS szolgáltatást a következő értékekkel:

Mező
Érték
Leírás

név
írisz
szolgáltatás neve

vendéglátó
IP
InterSystems IRIS szerver gazdagép vagy ip

kikötő
52773
InterSystems IRIS szerver webportja

ösvény
/api/atelier
Gyökérút

protokoll
http
Jegyzőkönyv

A fennmaradó értékeket hagyja alapértelmezettként. Kattintson a gombra Create és írja le a létrehozott Szolgáltatás azonosítóját.

útvonal

Most hozzunk létre egy útvonalat:

Mező
Érték
Leírás

ösvény
/api/atelier
Gyökérút

protokoll
http
Jegyzőkönyv

szolgáltatás.id
útmutató 3-tól
Szolgáltatás (azonosító az előző lépésből)

A fennmaradó értékeket hagyja alapértelmezettként. Kattintson a gombra Create és írja le a létrehozott Útvonal azonosítóját. Alapértelmezés szerint az IAM a 8000-es porton figyeli a bejövő kéréseket http://localhost:8000 és azzal kezdve /api/atelier átirányítják az InterSystems IRIS-be.

tesztelés

Próbáljunk meg egy kérést létrehozni egy REST kliensben (ezt használom Postás).

Az InterSystems API Manager bemutatása (+ webinárium)

Küldjünk GET kérést a címre http://localhost:8000/api/atelier/ (ne felejtsd el / végén), és választ kap az InterSystems IRIS-től. Minden kérés IAM-on megy keresztül, amely mérőszámokat gyűjt:

  • HTTP állapotkód.
  • Késleltetés.
  • Monitoring (ha be van állítva).

Tettem még néhány kérést (köztük két kérést nem létező végpontokhoz, például /api/atelier/est/), az eredmények azonnal láthatóak az irányítópulton:

Az InterSystems API Manager bemutatása (+ webinárium)

Munka pluginekkel

Most, hogy beállítottunk egy útvonalat, kezelhetjük API-nkat. Olyan funkciókat adhatunk hozzá, amelyek kiegészítik szolgáltatásunkat.

Az API viselkedésének megváltoztatásának legáltalánosabb módja egy beépülő modul hozzáadása. A beépülő modulok elkülönítik az egyes funkciókat, és az IAM-hez globálisan vagy csak egyedi entitásokhoz kapcsolódhatnak, mint például egy felhasználó (felhasználók csoportja), a szolgáltatás vagy az útvonal. Kezdjük azzal, hogy hozzáadjuk a Rate Limiting plugint az útvonalhoz. A bővítmény és az útvonal közötti kapcsolat létrehozásához szükségünk van az útvonal egyedi azonosítójára (ID).

A kérelmek számának korlátozása

Kattintson a Plugins elemre a bal oldalsáv menüjében. Ezen a képernyőn láthatja az összes aktív bővítményt, de mivel ez az IAM-kiszolgáló új, még nincsenek aktív bővítmények. Tehát folytassa a következő lépéssel az „Új beépülő modul” gombra kattintva.

A szükséges bővítmény a „Traffic Control” kategóriába tartozik, és a „Díjkorlátozás” nevet viseli. Válassza ki. Itt jó néhány beállítást beállíthat, de csak két mezővel foglalkozunk:

Mező
Érték
Leírás

route_id
ID
Útvonalazonosító

config.minute
5
Kérések száma percenként

Ez minden. A bővítmény be van állítva és aktív. Vegye figyelembe, hogy különböző időintervallumokat választhatunk, például egy percet, egy órát vagy egy napot. A beállítások kombinálhatók (például 1000 kérés óránként és ugyanakkor 100 kérés percenként). Azért választottam a percet, mert így könnyen ellenőrizhető a bővítmény működése.

Ha újra elküldi ugyanazt a kérést a Postmanban, látni fogja, hogy a válasz 2 további fejléccel érkezik:

  • XRateLimit-Limit-minute: 5
  • XRateLimit-Felmaradó perc: 4

Ez közli az ügyféllel, hogy percenként legfeljebb 5 kérést tud lebonyolítani, és további 4 kérést tud benyújtani az aktuális időrésben.

Az InterSystems API Manager bemutatása (+ webinárium)

Ha újra és újra elküldi ugyanazt a kérést, akkor végül kifogy a rendelkezésre álló kvóta, és ehelyett egy 429-es HTTP-állapotkódot kap a következő választörzsel:

Az InterSystems API Manager bemutatása (+ webinárium)

Várjon egy percet, és újra beküldheti a kérelmeket.

Ez egy kényelmes mechanizmus, amely lehetővé teszi, hogy:

  • Védje a hátteret a túlfeszültségtől.
  • Mondja el az ügyfeleknek, hogy hány kérést tehetnek.
  • Pénzt szerezhet az API-ból.

Különböző időintervallumokhoz állíthat be értékeket, és így kiegyenlítheti az API-forgalmat egy bizonyos időtartam alatt. Tegyük fel, hogy óránként 600 kérést engedélyez egy adott útvonalon. Percenként átlagosan 10 kérés érkezik. De semmi sem akadályozza meg az ügyfelet abban, hogy az óra első percében mind a 600 kérést teljesítse. Talán erre van szüksége. Érdemes egyenletesebb terhelést elérni egy óra leforgása alatt. A mező értékének beállításával config.minute A 20-as érték biztosítja, hogy a felhasználók percenként legfeljebb 20 kérést és óránként 600 kérést küldjenek. Ez lehetővé teszi az egyperces intervallumon belüli kis kiugrásokat a percenkénti 10 kérés teljes átlagához képest, de a felhasználók nem használhatják fel az óránkénti kvótát egy percig. Most legalább 30 percre lesz szükségük az összes kérés felhasználásához. Az ügyfelek minden meghatározott időintervallumhoz további fejléceket kapnak, például:

HTTP fejléc
Érték

X-RateLimit-Limit-óra
600

X-RateLimit-Fennmaradó óra
595

X-RateLimit-Limit-minute
20

X-RateLimit-Fennmaradó perc
16

Természetesen sokféleképpen konfigurálhatja a lekérdezési korlátokat attól függően, hogy mit szeretne elérni.

Álláspontja

Itt fejezem be, szerintem van elég anyag az InterSystems API Managerről szóló első cikkhez. A több mint 40 plugin közül csak egyet használtunk. Az IAM-mel még sok érdekes dolgot tehet:

  • Adjon hozzá egy központi hitelesítési mechanizmust az összes API-jához.
  • Méretezze a terhelést egy terheléselosztó segítségével több szolgáltatás között.
  • A teljes frissítés előtt adjon hozzá új funkciókat és hibajavításokat a tesztközönséghez.
  • Biztosítson belső és külső fejlesztők számára egy dedikált webportált, amely dokumentálja az összes API-t.
  • A gyorsítótárazási kérések csökkentik a válaszidőt és csökkentik a rendszer háttérrendszerének terhelését.

referenciák

Webinar

Meghívjuk Önt az „API Management with InterSystems API Management” webináriumra, amelyre november 21-én, moszkvai idő szerint 10:00-kor kerül sor (GMT+3).
Az InterSystems API Manager (IAM) az InterSystems IRIS Data Platform új összetevője, amely az IT infrastruktúrán belül biztosítja a webes API-kba irányuló és onnan érkező forgalom figyelését, vezérlését és kezelését. A webináriumon bemutatjuk az InterSystems API Management legfontosabb képességeit:

  • API forgalomfigyelő eszközök.
  • API forgalomszabályozás, beleértve a sávszélesség-szabályozást, az API-hívások számának korlátozását, az IP-címek engedélyezett és tiltott listáinak karbantartását stb.
  • API biztonsági konfigurációs eszközök.
  • Fejlesztői portál interaktív API-dokumentáció közzétételéhez.
  • Egyetlen hozzáférési pont az API-hoz.

A webinárium építészeknek, fejlesztőknek és rendszergazdáknak szól.

Regisztráció szükséges!

Forrás: will.com

Hozzászólás