Greitas įvadas į „Azure“ funkcijų tarpinius serverius

Šiame straipsnyje aptarsime „Azure Function Proxy“. Jie teikia „atvirkštinio tarpinio serverio funkcionalumą“ Azure funkcijoms. „Azure“ funkcijų tarpiniai serveriai yra gana panašūs į „Azure“ API valdymą.  

Šį įrašą daugiausia įkvėpė Matthew Henderson iš „Microsoft Azure Function Team“. Savo tinklaraščio įraše „Azure Functions Proxies“ viešoji peržiūra Matthew paaiškina priežastis, kodėl „Microsoft“ sugalvojo „Azure Function Proxies“ ideologiją.

Kas yra „Azure“ funkcijų tarpiniai serveriai?

Pagrindinė „Azure Function Proxies“ idėja yra ta, kad jie leidžia mums apibrėžti vieną API paviršių kelioms funkcijų programoms. Dabar bet kuri funkcijos programa gali apibrėžti galinį tašką, kuris yra kitos API atvirkštinis tarpinis serveris. Galutinis taškas gali būti funkcijos programa arba visa kita.

Ar ieškote nebaigto įrankio, kad galėtumėte valdyti ir stebėti „Azure“ funkcijas? Išbandykite šį čia nemokamai.

„Azure Function Proxy“ diegimo priežastis

Kai kuriems vartotojams sunku valdyti didelius sprendimus naudojant vienos funkcijos programą. Yra daugybė organizacijų, naudojančių „Azure Function“ savo mikro paslaugų architektūroje su diegimu tarp atskirų komponentų. Šiuo atveju kiekviena funkcijos programa turi savo prieglobą, todėl yra daugybė skirtingų funkcijų programų, kurias reikia sekti.

Mes taip pat galėtume turėti keletą funkcijų programų kartu su kita API, tačiau jos gali būti skirtinguose regionuose. Taigi galų gale mes perduodame daug šio sudėtingumo savo klientui ar vartotojų sistemai.

„Azure Function“ įgaliotieji gelbsti pateikdami vieningą URI (Uniform Resource Identifier), kurį klientas iš tikrųjų gali vartoti. Tuo tarpu mes galime abstrahuoti visas skirtingas funkcijų programas ar kitas API ir tai taip pat leistų mums kurti savo API greičiau.

Paaiškinimas

„Azure“ funkcijų įgaliotiniai

Aukščiau pateiktoje sprendimo architektūros diagramoje turime „Azure“ funkcijų tarpinį serverį, po kurio esančia „Azure“ funkcijų ir paslaugų magistralės eilė informacijai saugoti. Kitame diagramos gale turime duomenų leidėjus. Šios diskusijos tikslais tarkime, kad „Power Equipment“ sugeneruoja žymos įvykį ir per tarpinį serverį persiunčia jį „Azure Functions“.

Iš pradžių sukuriame funkcijų programą pasirinkdami funkcijos parinktį iš „Azure“ portalo. Tarkime, mes sukuriame C # HTTP trigerį, kuriame HTTP trigerio funkcija yra iškviesti funkciją su HTTP užklausa.

Dabar mes kuriame dvi funkcijas: viena yra „PostTag“, kuri reprezentuoja mūsų įrašą, jei norime sukurti žymą. Funkcijos „PostTag“ kodas yra toks:

Skelbimo žyma

Tada mes sukuriame kitą funkciją, vadinamą „GetTag“, su kodu, nurodytu taip:

Gauti žymą

Mes naudojame „GetTag“, kad ištrauktume pranešimą iš eilės, o paskutinė žymos vertė grąžinama klientui.

Mes galime pasirinkti toliau nurodytą nuorodą, kad gautume abiejų funkcijų URL. Ši nuoroda suteiks mums saugos prieigos raktą.

Norėdami gauti funkcijos URL

Šiuo metu pereiname prie „Funkcijos programos nustatymų“ ir įgaliname „Azure“ funkcijų tarpinius serverius, kurių naujausia tarpinio vykdymo laiko versija yra 0,2. Vadinasi, „Funkcijų programų kūrime“ pasirenkame parinktį „Naujas tarpinis serveris“, kuri leidžia mums sukurti du įgaliojimus. Jie yra „Proxy GetTag“ ir „Proxy PostTag“. Tarpinės funkcijos yra šios:

  • Tarpinio serverio URL
  • Maršruto šablonas
  • Vidinis URL

Tarpinio serverio URL nurodytas URL ir maršruto šablonas yra tas pats tiek „GetTag“, tiek „PostTag“ įvykyje. Tarpinio serverio „GetTag“ užpakalinis URL bus susijęs su „GetTag“ įvykiu, tačiau „Proxy PostTag“ jis bus susijęs su įvykiu „PostTag“.

Apvyniojimas

„Azure Function“ tarpiniai serveriai yra puikus būdas pajuokuoti ir išbandyti „Azure Functions“ galinį tašką dar prieš prasidedant faktiškam vidiniam programos kūrimui. Be to, jie gali būti naudojami net gamyboje, kai reikia nukreipti vieną URI į kitą.

Norėčiau padaryti išvadą, kad „Azure Function Proxy“ yra viena patraukliausių ir pereina prie rinkos funkcijų, kurias pateikė „Azure Functions“ komanda.

Šis tinklaraštis iš pradžių buvo paskelbtas „Serverless360“.