Kihagyás

03

2. Modul / 2. lépés: Azure Function App létrehozása (Legfrissebb Portal verzió)

Elmélet: Az Azure Functions (a "Serverless" vagy kiszolgálónélküli számítástechnika) lényege, hogy nem kell szervereket vagy K8s podokat menedzselned egy egyszerű feladathoz. Csak megírod a kódot (a "függvényt"), és az Azure gondoskodik a futtatásról, amikor egy esemény bekövetkezik. A klasszikus Consumption plan havi 1 millió ingyenes futtatást ad.

A létrehozás lépései:

  1. A felső keresősávba írd be: Function App, és kattints a megjelenő ikonra.
  2. Kattints a + Create gombra.
  3. A felugró választóképernyőn (Select a hosting plan) válaszd a klasszikus Consumption opciót (Windows - már nem ez a támogatott, de tanuláshoz most ezt használjuk), majd kattints a Select gombra.

Kezdjünk végigmenni a füleken a megadott sorrendben:

1. Basics (Alapok) fül * Subscription: A te előfizetésed (pl. Free Trial). * Resource Group: Válaszd a már meglévő rg-azure-training csoportot. * Function App name: Egy globálisan egyedi név kell (csak kisbetűk, számok, kötőjelek). Legyen mondjuk functraining-[neved]-[szam] (pl. functraining-abcd-123). * Runtime stack: Válaszd a Node.js-t (egyszerűen tudunk majd vele a böngészőből kísérletezni). * Version: Hagyd az alapértelmezett LTS (Long Term Support) verzión (pl. 20 LTS). * Region: Válaszd a West Europe régiót (vagy amit eddig használtál). * Operating System: Hagyd úgy, ahogy a rendszer felkínálja vagy fixálja. Kattints a Next: Networking > gombra.

2. Networking fül * Enable public access: Hagyd bekapcsolva (On), hogy könnyen hozzáférjünk és tesztelhessük. Kattints a Next: Monitoring > gombra.

3. Monitoring fül * Enable Application Insights: Alapértelmezetten "Yes" szokott lenni. Ez az Azure monitorozó eszköze. A Free tierben is van belőle ingyenes keret, nyugodtan hagyhatod bekapcsolva, hasznos a logok (naplófájlok) olvasásához. Kattints a Next: Durable Functions > gombra.

4. Durable Functions fül * Ezt a részt hagyhatod az alapértelmezett vagy kikapcsolt állapoton. (Ez haladó állapotmegőrző funkciókhoz kell, most nem használjuk). Kattints a Next: Deployment > gombra.

5. Deployment fül * Continuous deployment: Hagyd kikapcsolva (Disable). Nem kötünk be most GitHub Actions-t. Kattints a Next: Authentication > gombra.

6. Authentication fül * Hagyd alapértelmezetten (vagy "Unauthenticated" állapoton), nem kell most bejelentkezést kikényszeríteni a függvény futtatásához. Kattints a Next: Tags > gombra.

7. Tags fül * Ezt átugorhatjuk. Kattints a Next: Review + create > gombra.

8. Review + create fül * Várd meg, amíg a rendszer leellenőrzi a beállításokat (zöld pipa). Ha minden rendben, kattints a Create gombra.

A rendszer most felépíti a serverless környezetet. Amikor a képernyőn megjelenik a "Your deployment is complete" felirat, a "Go to resource" gombra kattintva tudsz belépni a Function App felületére, hogy megírhassuk az első kódodat.

Ha az alábbi hibát dobta Create gomb megnyomásakor:

Validation failed for a resource. Check 'Error.Details[0]' for more information. (Code: ValidationForResourceFailed)

Operation cannot be completed without additional quota. Additional details - Location: Current Limit (Dynamic VMs): 0 Current Usage: 0 Amount required for this deployment (Dynamic VMs): 1 (Minimum) New Limit that you should request to enable this deployment: 1. Note that if you experience multiple scaling operations failing (in addition to this one) and need to accommodate the aggregate quota requirements of these operations, you will need to request a higher quota limit than the one currently displayed. (Code: SubscriptionIsOverQuotaForSku)

Mi történt itt? A hibaüzenet (SubscriptionIsOverQuotaForSku és Dynamic VMs: 0) azt jelenti, hogy abban a régióban, amit kiválasztottál (valószínűleg a West Europe), a Microsoft biztonsági és kapacitási okokból 0-ra korlátozta a fiókodban azoknak az erőforrásoknak a számát, amiket a Serverless (Consumption) plan használna a háttérben. Az utóbbi időben annyira leterheltek lettek bizonyos adatközpontok, hogy az ingyenes fiókoknál így védekeznek a túlterhelés (vagy a kriptobányász visszaélések) ellen.

A megoldás szerencsére nagyon egyszerű: nem a Microsoft Supportnak kell könyörögni kvótanövelésért, hanem egyszerűen át kell tennünk a Function Appot egy másik régióba, ahol van szabad kapacitás az ingyenes fiókoknak is.

A hiba elhárításának lépései:

  1. A jelenlegi létrehozási képernyőn alul (vagy felül a füleken) kattints vissza egészen a Basics (Alapok) fülre.
  2. Keresd meg a Region (Régió) legördülő menüt.
  3. A West Europe helyett válassz egy másik, nagy kapacitású régiót! A tapasztalatok alapján az alábbiaknál szinte biztosan van szabad kvóta:
  4. North Europe (Írország - ez van hozzánk a legközelebb a másik után)
  5. East US (Kelet-USA - ez a Microsoft "zászlóshajó" adatközpontja, itt szinte mindig minden azonnal elérhető)
  6. Central US
  7. Ha átállítottad a régiót mondjuk North Europe-ra, kattints ismét a bal alsó sarokban a kék Review + create gombra (a többi fülön megmaradtak a beállításaid).
  8. Várd meg a zöld pipát, majd kattints a Create gombra.

Mivel ez a Function App csak a kód futtatásáért felel, az sem baj, ha fizikailag a Storage Accountod (amit korábban csináltunk) West Europe-ban van, a Function pedig North Europe-ban. Egy éles (production) rendszernél a milliszekundumos késleltetés miatt érdemes egy helyre tenni őket, de a mi tanulási folyamatunkban ez most tökéletesen fog működni.