Kihagyás

05

Egy kis elmélet, mielőtt teszteljük: Ha megnézed a kódot (valószínűleg egy module.exports = async function (context, myBlob) kezdetű függvényt látsz), észrevehetsz valami zseniálisat: nincs benne semmilyen csatlakozási kód. Nincs Storage SDK beimportálva, nincsenek jelszavak vagy connection stringek a kódba égetve.

Az Azure Functions "Binding" (kötés) rendszere ezt a háttérben elintézi. Amikor egy fájl beesik a tárhelyre, a platform felébreszti a kódodat, és magát a fájl tartalmát egyszerűen odaadja a myBlob változóban, a nevét pedig a context.bindingData.name változóban. Neked már csak a tiszta üzleti logikával kell foglalkoznod (pl. átméretezni egy képet, vagy kiolvasni egy CSV-t).

Jöhet a varázslat: Teszteljük le!

Hogy lásd, hogyan működik ez az eseményvezérelt (event-driven) architektúra a valóságban, feltöltünk egy fájlt, és megnézzük, ahogy a kód reagál rá.

  1. Nyissuk ki a naplót: A kódszerkesztő képernyőjén, legalul van egy kis fül, amire az van írva: Logs (vagy a képernyő tetején egy "Test/Run" melletti gomb). Kattints rá, hogy felnyíljon a terminál ablak. Várj pár másodpercet, amíg kiírja, hogy csatlakozott (pl. Connected to log stream).
  2. Új böngészőlap: Ne zárd be ezt az ablakot! Nyiss egy új lapot a böngésződben, és lépj be újra az Azure Portalra.
  3. Keresd meg a mappát: Az új lapon menj be az rg-azure-training erőforráscsoportodba, válaszd ki a Storage account-odat (satraining...), bal oldalon kattints a Containers menüre, majd lépj be az uploads nevű mappába.
  4. Fájlfeltöltés: Kattints a felső menüben az Upload (Feltöltés) gombra. Tallózz be a saját gépedről egy bármilyen, pici fájlt (egy üres .txt dokumentum, vagy egy kis kép tökéletes), és töltsd fel.
  5. Azonnali ellenőrzés: Amint a feltöltés sikeres, válts vissza a másik böngészőlapra, ahol a Function logját figyeled!

Ha minden jól ment, pár másodpercen belül meg kell jelennie egy üzenetnek a fekete terminálablakban (valami ilyesminek: Blob trigger function processed blob...), kiírva a feltöltött fájlod nevét és a méretét bájtban.

A feladat során a logon nem jelent meg semmi, ez elő szokott fordulni az Azure Logs esetében, viszont a funkció jól működött, egyéb kipróbálható Function: Http trigger ahol az Authorization level be kell állítani Anonymus-ra, hogy böngészőből meg tudjuk hívni.