Gyakorlat – Azure Functions-projekt létrehozása
A bevásárlólista-webalkalmazáshoz szükség van egy API-ra. Ebben a gyakorlatban egy Azure Functions-projekt használatával hozhatja létre és futtathatja az API-t. Innen egy új függvénnyel bővítheti az API-t a Visual Studio Code Azure Functions-bővítményével.
Ebben a gyakorlatban a következő lépéseket kell elvégeznie:
- Hozzon létre egy ágat a webalkalmazás módosításának előkészítésekor.
- Ismerkedjen meg az Azure Functions-projektel.
- Hozza létre a HTTP GET függvényt.
- A termékek lekéréséhez cserélje le a függvényindító kódot a logikára.
- Konfigurálja a webalkalmazást ÚGY, hogy HTTP-kéréseket proxyzjon az API-nak.
- Futtassa az API-t és a webalkalmazást.
A függvényalkalmazás beszerzése
Most vegyen fel egy API-t, és csatlakoztassa az előtér-alkalmazáshoz. Az api-starter mappa egy hiányos Azure Functions-projektet tartalmaz. Szóval, fejezzük be most.
API-ág létrehozása
Az alkalmazás módosítása előtt érdemes létrehozni egy új ágat a módosításokhoz. Az alkalmazás API-jának befejezésére készül, így most itt az ideje, hogy létrehozzon egy ágat.
A Visual Studio Code-ban nyissa meg a parancspalettát az F1 billentyű lenyomásával.
Adja meg és válassza a Git: Checkout to....
Válassza az Új ág létrehozása lehetőséget.
Adja meg az api-t az új ágnévhez, és nyomja le az Enter billentyűt.
Ezzel létrehozta az api git-ágat.
Az Azure Functions API befejezése
Az API befejezéséhez először a kezdő API-kódot egy API nevű mappába kell áthelyeznie. A Static Web Apps-példány létrehozásakor megadta a api_location mappanevét.
A Visual Studio Code-ban nyissa meg a parancspalettát az F1 billentyű lenyomásával.
Adja meg és válassza a Terminál: Új terminál létrehozása (aktív munkaterületen) lehetőséget.
Győződjön meg arról, hogy a projekt gyökérmappájában van.
Futtassa a következő Git-parancsot az api-starter mappa api-ra való átnevezéséhez.
git mv api-starter api
Nyissa meg a parancskatalógust az F1 billentyűvel.
Adja meg és válassza a Git: Az összes véglegesítése lehetőséget.
Írja be a véglegesítési üzenet API-t , és nyomja le az Enter billentyűt.
Most megjelenik egy API-mappa a Visual Studio Code Explorerben. Az api mappa tartalmazza az Azure Functions-projektet, valamint három függvényt.
Mappa és fájl | Metódus | Útvonal |
---|---|---|
api/products-post | POST | products |
api/products-put | PUT | products/:id |
api/products-delete | Törlés... | products/:id |
A GET HTTP-függvény létrehozása
Az API tartalmaz útvonalakat a termékek a bevásárlólistához való kezeléséhez, de nem tartalmaz a termékek beolvasásához szükséges útvonalat. Most vizsgáljuk meg.
A Visual Studio Code Azure Functions-bővítményének telepítése
Azure Functions-alkalmazásokat a Visual Studio Code Azure Functions-bővítményével hozhat létre és kezelhet.
Nyissa meg a Visual Studio Marketplace-t, és telepítse a Visual Studio Code Azure Functions-bővítményét .
Amikor a Bővítmény lap betöltődik a Visual Studio Code-ban, válassza a Telepítés lehetőséget.
A telepítés befejezése után válassza az Újratöltés lehetőséget.
Feljegyzés
Mindenképpen telepítse az Azure Functions Core Toolst, amely lehetővé teszi az Azure Functions helyi futtatását.
A függvény létrehozása
Most kiterjesztheti az Azure-függvényalkalmazást egy függvénnyel a termékek beszerzéséhez.
A Visual Studio Code-ban nyissa meg a parancspalettát az F1 billentyű lenyomásával.
Adja meg és válassza ki az Azure Functions: Függvény létrehozása lehetőséget.
Amikor a rendszer függvény létrehozására kéri, válassza a HTTP-eseményindítót.
Adja meg a products-get függvény nevét.
Hitelesítési szintként válassza a Névtelen lehetőséget.
Feljegyzés
A függvényalkalmazás az api mappában található, amely elválasztja az egyes webalkalmazás-projektektől. Az összes előtér-keretrendszereket használó webalkalmazás ugyanazt az API-t hívja meg. Eldöntheti, hogyan strukturálja az alkalmazást, azonban ebben a mintában célszerűbb külön-külön megtekinteni őket.
A HTTP-metódus és az útvonalvégpont konfigurálása
Fontos megjegyezni, hogy az api/products-get mappa tartalmazza a function.json fájlt. Ez a fájl tartalmazza a függvény konfigurációját.
A konvenció alapján az útvonal végpontja ugyanazzal a névvel rendelkezik, mint a függvényt tartalmazó mappa. Mivel a függvény a products-get mappában jön létre, az útvonalvégpont alapértelmezés szerint termékek lekéréseként jön létre. Azonban azt szeretné, hogy a végpont neve legyen products.
A függvény konfigurálása:
Nyissa meg az api/products-get/function.json fájlt.
Figyelje meg, hogy a metódusok mind
GET
aPOST
.Módosítsa a metódustömböt úgy, hogy csak a kéréseket engedélyezze
GET
.Adjon hozzá egy bejegyzést
"route": "products"
a metódustömb után.
Így a függvény a products lapra irányuló HTTP GET
-kérelem esetén aktiválódik. A function.json fájlnak most az alábbi kódhoz hasonlóan kell kinéznie:
{
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": ["get"],
"route": "products"
},
{
"type": "http",
"direction": "out",
"name": "res"
}
]
}
A függvény logikájának frissítése
Az api/products-get mappában található index.js fájl azt a logikát tartalmazza, amely akkor fut le, amikor az útvonalra vonatkozó HTTP-kérelmet küld.
A termékek beszerzéséhez frissítenie kell a logikát. A JavaScript-modulban /shared/product-data.js adatelérési logika található. A product-data
modul elérhetővé teszi a getProducts
függvényt a termékek bevásárlólistához való beolvasásához.
Most módosítsa a függvény végpontját úgy, hogy az a termékeket adja vissza:
Nyissa meg az api/products-get/index.js fájlt.
Cserélje le a tartalmát a következő kódra:
const data = require('../shared/product-data'); module.exports = async function (context, req) { try { const products = data.getProducts(); context.res.status(200).json(products); } catch (error) { context.res.status(500).send(error); } };
A függvény lekéri a termékeket, és sikeres esetben 200-os állapotkóddal adja vissza őket.
Forrásközi erőforrásmegosztás (CORS) konfigurálása helyileg
Az Azure Static Web Appsben való közzétételkor nem kell aggódnia a CORS miatt. Az Azure Static Web Apps automatikusan konfigurálja az alkalmazást úgy, hogy az egy fordított proxyval tudjon kommunikálni az Azure-beli API-val. Ha azonban helyileg futtatja, konfigurálnia kell a CORS-t ahhoz, hogy lehetővé tegye a webalkalmazás és az API közötti kommunikációt.
Most arra kell utasítania az Azure Functions szolgáltatást, hogy engedélyezze a webalkalmazás számára, hogy HTTP-kérelmeket küldjön az API-nak a számítógépen.
Hozzon létre egy api/local.settings.json nevű fájlt.
Adja hozzá a következő tartalmat a fájlhoz:
{ "Host": { "CORS": "http://localhost:4200" } }
{ "Host": { "CORS": "http://localhost:3000" } }
{ "Host": { "CORS": "http://localhost:5000" } }
{ "Host": { "CORS": "http://localhost:8080" } }
Feljegyzés
A local.settings.json fájl szerepel a .gitignore fájlban, amely megakadályozza ennek a fájlnak a leküldését a GitHubra. Ennek az az oka, hogy ebben a fájlban olyan titkos kulcsokat tárolhat, amelyeket nem szeretne a GitHubon tárolni. Ezért kellett létrehoznia a fájlt, amikor létrehozta az adattárat a sablonból.
Az API futtatása
Eljött az ideje, hogy megtekintse a webalkalmazás és az Azure Functions-projekt együttműködését. Először futtassa az Azure Functions-projektet helyileg a következő lépésekkel:
Feljegyzés
Mindenképpen telepítse az Azure Functions Core Toolst, amely lehetővé teszi az Azure Functions helyi futtatását.
Nyisson meg egy git-terminált, és lépjen az API mappába:
cd api
Futtassa helyileg az Azure Functions alkalmazást:
npm install
npm start
A webalkalmazás futtatása
Az API fut. Most konfigurálnia kell az előtér-alkalmazást arra, hogy az az API-nak küldje el a HTTP-kérelmét. Az előtérbeli alkalmazás egy porton fut, az API pedig egy másik porton (7071). Minden előtér-keretrendszer konfigurálható úgy, hogy a HTTP-kérelmeket biztonságosan továbbítsa egy portra egy proxy használatával.
A proxyport konfigurálása
Konfigurálja a proxyt az előtér-alkalmazáshoz a következő lépésekkel:
Nyissa meg az angular-app/proxy.conf.json fájlt.
Keresse meg a
target: 'http://localhost:7071'
beállítást.Figyelje meg, hogy a cél portja a 7071-re mutat.
Nyissa meg a react-app/package.json fájlt.
Keresse meg a
"proxy": "http://localhost:7071/",
beállítást.Figyelje meg, hogy a proxy portja a 7071-re mutat.
Nyissa meg a svelte-app/rollup.config.js fájlt.
Keresse meg a kódsort
const api = 'http://localhost:7071/api';
.Figyelje meg, hogy az API portja a 7071-esre mutat.
Nyissa meg a vue-app/vue.config.js fájlt.
Keresse meg a
target: 'http://localhost:7071',
beállítást.Figyelje meg, hogy a cél portja a 7071-re mutat.
Az előtérbeli webalkalmazás futtatása
Az API már fut a 7071-es porton. Most, amikor futtatja a webalkalmazást, az a HTTP-kéréseit az API-nak küldi el. Futtassa a webalkalmazást a következő lépésekkel:
Nyisson meg egy második Git-terminálpéldányt.
Ezután adja meg ezt a parancsot, hogy a kívánt előtér-keretrendszer mappájába lépjen:
cd angular-app
cd react-app
cd svelte-app
cd vue-app
Futtassa az előtérbeli ügyfélalkalmazást:
npm start
npm start
npm run dev
npm run serve
Az alkalmazás megnyitása a böngészőben
Eljött az ideje, hogy megtekintse a helyileg futó alkalmazást a Azure Functions API-val.
- Nyissa meg a következő címet:
http://localhost:4200
.
- Nyissa meg a következő címet:
http://localhost:3000
.
- Nyissa meg a következő címet:
http://localhost:5000
.
- Nyissa meg a következő címet:
http://localhost:8080
.
- Elkészítette az alkalmazást, és most helyileg fut, és HTTP GET-kéréseket küld az API-nak. Most állítsa le a futó alkalmazást és API-t a Ctrl-C billentyűkombináció lenyomásával a terminálokon.
Következő lépések
Az alkalmazás helyileg működik, a következő lépés pedig az alkalmazás közzététele az API-val.