Memperkenalkan Pengurus API InterSystems (+ webinar)

Kami baru-baru ini mengeluarkan Pengurus API InterSystems (IAM), komponen baharu Platform Data IRIS InterSystems yang menyediakan keterlihatan, kawalan dan pengurusan trafik API web merentas infrastruktur IT.

Dalam artikel ini, saya akan menunjukkan kepada anda cara menyediakan IAM dan menunjukkan beberapa daripada banyak keupayaan yang tersedia untuk anda dengan IAM. Pengurus API InterSystems membolehkan anda:

  • Pantau API, fahami siapa yang menggunakan API, API mana yang paling popular dan yang mana memerlukan penambahbaikan.
  • Kawal siapa yang menggunakan API dan hadkan penggunaan API daripada sekatan akses mudah kepada sekatan berasaskan permintaan - anda mempunyai kawalan tersuai dan boleh bertindak balas dengan cepat terhadap perubahan corak penggunaan API.
  • API selamat menggunakan mekanisme keselamatan terpusat seperti OAuth2.0, LDAP atau Pengesahan Token Kunci.
  • Permudahkan untuk pembangun pihak ketiga dan berikan mereka pengalaman API yang unggul dengan membuka portal pembangun khusus.
  • Skalakan API dan pastikan kependaman respons yang minimum.

Pengurusan API adalah penting untuk peralihan kepada SOA atau seni bina perkhidmatan mikro, memudahkan penyepaduan antara perkhidmatan individu (mikro), menjadikannya tersedia kepada semua pengguna luaran dan dalaman. Akibatnya, API baharu menjadi lebih mudah untuk dibuat, diselenggara dan digunakan.

Jika anda sudah menggunakan InterSystems IRIS, anda boleh menambah pilihan IAM pada lesen anda. Pilihan IAM adalah percuma untuk pelanggan InterSystems IRIS, tetapi anda mesti meminta kunci lesen baharu daripada InterSystems untuk mula menggunakan IAM.

Jika anda belum lagi menggunakan InterSystems IRIS dan merancang untuk mencuba Pengurus API InterSystems, sila hubungi InterSystems.

Bermula dan Pemasangan

Pelanggan InterSystems boleh memuat turun pengedaran IAM dari tapak web WRC bahagian "Pengagihan Perisian" dan jalankan sebagai bekas Docker. Keperluan sistem minimum:

Pada mulanya, anda perlu memuat turun imej Docker (Penting! Arkib dengan WRC bukan imej Docker, anda perlu membongkarnya, terdapat imej Docker di dalamnya):

docker load -i iam_image.tar

Perintah ini akan menjadikan imej IAM tersedia untuk digunakan kemudian pada pelayan anda. IAM berjalan sebagai bekas yang berasingan, jadi anda boleh menskalakannya secara bebas daripada InterSystems IRIS. Menjalankan IAM memerlukan akses kepada InterSystems IRIS untuk memuat turun lesen.

Sediakan InterSystems IRIS:

  • Dayakan aplikasi web /api/IAM
  • Dayakan pengguna IAM
  • Tukar kata laluan pengguna IAM

Sekarang mari kita mulakan bekas IAM. Dalam arkib anda akan menemui skrip iam-setup untuk Windows dan Unix (dan Mac). Skrip ini akan membantu anda menetapkan pembolehubah persekitaran dengan betul, membenarkan bekas IAM mewujudkan sambungan dengan InterSystems IRIS. Berikut ialah contoh skrip yang dijalankan pada Mac:

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

Seperti yang anda lihat, nama imej penuh, alamat IP, port InterSystems IRIS dan kata laluan untuk pengguna IAM adalah semua yang anda perlukan untuk bermula.

Daripada menjalankan skrip, anda boleh menetapkan pembolehubah persekitaran secara manual:

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

Pelancaran

Sekarang mari kita lancarkan IAM dengan menjalankan arahan:

docker-compose up -d

Perintah ini mengatur bekas IAM dan memastikan semuanya berjalan dengan betul. Status bekas disemak menggunakan arahan:

docker ps

Buka antara muka pentadbir dalam penyemak imbas anda localhost:8002.

Memperkenalkan Pengurus API InterSystems (+ webinar)

Ia kosong buat masa ini kerana ia adalah nod baharu sepenuhnya. Mari kita ubah itu. IAM menyokong konsep ruang kerja untuk membahagikan API kepada modul dan/atau arahan. Pergi ke ruang kerja "lalai" yang akan kami gunakan untuk percubaan kami.

Memperkenalkan Pengurus API InterSystems (+ webinar)

Bilangan permintaan untuk ruang kerja ini masih sifar, tetapi anda akan mendapat idea tentang konsep asas IAM dalam menu di sebelah kiri. Dua elemen pertama: Perkhidmatan dan Laluan adalah yang paling penting:

  • Perkhidmatan ialah API yang kami ingin berikan akses kepada pengguna. Oleh itu, API REST dalam InterSystems IRIS ialah Perkhidmatan, seperti, sebagai contoh, API Google jika anda mahu menggunakannya.
  • Laluan memutuskan kepada Perkhidmatan yang mana permintaan masuk harus dimajukan. Setiap Laluan mempunyai set syarat tertentu, dan jika ia dipenuhi, permintaan akan dihantar ke Perkhidmatan yang sepadan. Sebagai contoh, Laluan boleh memadankan IP, domain pengirim, kaedah HTTP, bahagian URI atau gabungan contoh ini.

Perkhidmatan

Mari buat Perkhidmatan IRIS InterSystems, dengan nilai berikut:

Bidang
Nilai
ОписаниС

nama
iris
Nama Perkhidmatan

tuan rumah
IP
InterSystems IRIS pelayan hos atau ip

pelabuhan
52773
Port web pelayan InterSystems IRIS

jalan
/api/atelier
Laluan akar

protokol
http
Protokol

Biarkan nilai yang tinggal sebagai lalai. Klik butang Create dan tuliskan ID Perkhidmatan yang dibuat.

Laluan

Sekarang mari kita buat laluan:

Bidang
Nilai
ОписаниС

jalan
/api/atelier
Laluan akar

protokol
http
Protokol

service.id
panduan daripada 3
Perkhidmatan (ID daripada langkah sebelumnya)

Biarkan nilai yang tinggal sebagai lalai. Klik butang Create dan tuliskan ID Laluan yang dibuat. Secara lalai, IAM mendengar permintaan masuk pada port 8000. Sekarang permintaan dihantar ke http://localhost:8000 dan bermula dengan /api/atelier dialihkan ke InterSystems IRIS.

Ujian

Mari cuba buat permintaan dalam klien REST (saya menggunakan Postman).

Memperkenalkan Pengurus API InterSystems (+ webinar)

Mari hantar permintaan GET ke http://localhost:8000/api/atelier/ (jangan lupa / pada akhir) dan menerima maklum balas daripada InterSystems IRIS. Setiap permintaan melalui IAM yang mengumpulkan metrik:

  • Kod status HTTP.
  • Kelewatan.
  • Pemantauan (jika dikonfigurasikan).

Saya membuat beberapa permintaan lagi (termasuk dua permintaan kepada titik akhir yang tidak wujud seperti /api/atelier/est/), hasilnya dapat dilihat dengan serta-merta dalam papan pemuka:

Memperkenalkan Pengurus API InterSystems (+ webinar)

Bekerja dengan pemalam

Memandangkan kami mempunyai Laluan yang dikonfigurasikan, kami boleh mengurus API kami. Kami boleh menambah ciri yang akan melengkapkan perkhidmatan kami.

Cara paling biasa untuk menukar gelagat API ialah menambah pemalam. Pemalam mengasingkan kefungsian individu dan boleh disambungkan kepada IAM sama ada secara global atau hanya kepada entiti individu, seperti Pengguna (kumpulan pengguna), Perkhidmatan atau Laluan. Kami akan mulakan dengan menambahkan pemalam Had Kadar pada Laluan. Untuk mewujudkan sambungan antara pemalam dan laluan, kami memerlukan pengecam unik (ID) laluan.

Mengehadkan bilangan permintaan

Klik Pemalam dalam menu bar sisi kiri. Anda boleh melihat semua pemalam aktif pada skrin ini, tetapi memandangkan pelayan IAM ini baharu, belum ada pemalam aktif lagi. Jadi teruskan ke langkah seterusnya dengan mengklik "Pemalam Baharu".

Pemalam yang kami perlukan adalah dalam kategori "Kawalan Trafik" dan dipanggil "Penghadan Kadar". Pilihnya. Terdapat beberapa tetapan yang boleh anda tetapkan di sini, tetapi kami hanya mengambil berat tentang dua medan:

Bidang
Nilai
ОписаниС

id_laluan
ID
ID Laluan

config.minit
5
Bilangan permintaan seminit

Itu sahaja. Pemalam dikonfigurasikan dan aktif. Harap maklum bahawa kita boleh memilih selang masa yang berbeza, seperti seminit, sejam atau sehari. Tetapan boleh digabungkan (contohnya, 1000 permintaan setiap jam dan pada masa yang sama 100 permintaan seminit). Saya memilih minit kerana ia memudahkan untuk menyemak kefungsian pemalam.

Jika anda menghantar permintaan yang sama sekali lagi dalam Posman, anda akan melihat bahawa respons dikembalikan dengan 2 pengepala tambahan:

  • XRateLimit-Limit-minit: 5
  • XRateLimit-Baki-minit: 4

Ini memberitahu pelanggan bahawa ia boleh membuat sehingga 5 permintaan seminit dan boleh membuat 4 lagi permintaan dalam slot masa semasa.

Memperkenalkan Pengurus API InterSystems (+ webinar)

Jika anda membuat permintaan yang sama berulang kali, anda akhirnya akan kehabisan kuota yang tersedia dan sebaliknya menerima kod status HTTP 429 dengan badan respons berikut:

Memperkenalkan Pengurus API InterSystems (+ webinar)

Tunggu sebentar dan anda akan dapat menyerahkan permintaan sekali lagi.

Ini adalah mekanisme mudah yang membolehkan anda:

  • Lindungi bahagian belakang daripada lonjakan beban.
  • Beritahu pelanggan berapa banyak permintaan yang boleh mereka buat.
  • Wangkan API.

Anda boleh menetapkan nilai untuk selang masa yang berbeza dan dengan itu melancarkan trafik API dalam tempoh masa tertentu. Katakan anda membenarkan 600 permintaan setiap jam pada Laluan tertentu. Secara purata terdapat 10 permintaan seminit. Tetapi tiada apa yang menghalang pelanggan daripada menyelesaikan semua 600 permintaan dalam minit pertama dalam satu jam. Mungkin ini yang anda perlukan. Anda mungkin mahu mencapai beban yang lebih sekata dalam tempoh sejam. Dengan menetapkan nilai medan config.minute Nilai 20 memastikan pengguna anda membuat tidak lebih daripada 20 permintaan seminit dan 600 permintaan setiap jam. Ini membolehkan lonjakan kecil pada selang satu minit berbanding aliran purata penuh 10 permintaan seminit, tetapi pengguna tidak boleh menggunakan kuota setiap jam selama satu minit. Kini mereka memerlukan sekurang-kurangnya 30 minit untuk menggunakan semua permintaan mereka. Pelanggan akan menerima pengepala tambahan untuk setiap selang masa yang ditentukan, contohnya:

Pengepala HTTP
Nilai

X-RateLimit-Limit-jam
600

X-RateLimit-Baki-jam
595

X-RateLimit-Had-minit
20

X-RateLimit-Baki-minit
16

Sudah tentu, terdapat banyak cara berbeza untuk mengkonfigurasi had pertanyaan bergantung pada perkara yang anda ingin capai.

Penemuan

Saya akan selesaikan di sini, saya rasa terdapat bahan yang mencukupi untuk artikel pertama tentang Pengurus API InterSystems. Kami hanya menggunakan satu daripada lebih 40 pemalam. Terdapat banyak lagi perkara menarik yang boleh anda lakukan dengan IAM:

  • Tambahkan mekanisme pengesahan pusat untuk semua API anda.
  • Skalakan beban menggunakan pengimbang beban merentas berbilang Perkhidmatan.
  • Tambahkan fungsi baharu dan pembetulan pepijat pada khalayak ujian sebelum kemas kini penuh.
  • Menyediakan pembangun dalaman dan luaran dengan portal web khusus yang mendokumentasikan semua API.
  • Cache meminta untuk mengurangkan masa tindak balas dan mengurangkan beban pada bahagian belakang sistem.

rujukan

Webinar

Kami menjemput anda ke webinar "Pengurusan API dengan Pengurusan API InterSystems", yang akan berlangsung pada 21 November jam 10:00 waktu Moscow (GMT+3).
Pengurus API InterSystems (IAM) ialah komponen baharu Platform Data IRIS InterSystems yang menyediakan pemantauan, kawalan dan pengurusan trafik ke/dari API web dalam infrastruktur IT. Di webinar kami akan menunjukkan keupayaan utama Pengurusan API InterSystems:

  • Alat pemantauan trafik API.
  • Kawalan trafik API, termasuk kawalan lebar jalur, mengehadkan bilangan panggilan API, mengekalkan senarai senarai alamat IP yang dibenarkan dan ditolak, dsb.
  • Alat konfigurasi keselamatan API.
  • Portal pembangun untuk menerbitkan dokumentasi API interaktif.
  • Satu titik akses kepada API.

Webinar ini bertujuan untuk arkitek, pembangun dan pentadbir sistem.

Pendaftaran diperlukan!

Sumber: www.habr.com

Tambah komen