Gyakorlat – Azure Functions-projekt létrehozása
A bevásárlólista-webalkalmazásnak API-ra van szüksége. 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 letöltése
Most vegyen fel egy API-t, és csatlakoztassa az előtér-alkalmazáshoz. A api-starter mappa egy hiányos Azure Functions-projektet tartalmaz. Szóval, fejezzük be most.
API-ág létrehozása
Mielőtt módosítanál egy alkalmazást, célszerű új ágat létrehozni a módosításokhoz. Az alkalmazás API-jának befejezésére készül, ezért most érdemes létrehozni egy ágat.
A Visual Studio Code-ban nyissa meg a parancspalettát az F1 billentyű lenyomásával.
Válassza a Git: Checkout to... parancsot.
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.
Most hozta létre az api git ágat.
Az Azure Functions API befejezése
Az API befejezéséhez először a kezdő API-kódot egy nevű apimappá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 található.
Futtassa a következő git parancsot a
api-startermappaapiátnevezéséhez.git mv api-starter apiNyissa meg a parancskatalógust az F1 billentyű lenyomásával.
Lépjen be és válassza a Git: Az összes véglegesítése.
Í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 | Módszer | Útvonal |
|---|---|---|
| api/products-post | POSZT | products |
| api/products-put | HELYEZ | products/:id |
| api/products-delete | TÖRÖL | products/:id |
A HTTP GET függvény létrehozása
Az API-nak vannak útvonalai a bevásárlólista termékeinek manipulálására, de nem rendelkezik a termékek lekérésére szolgáló útvonalsal. Adjunk hozzá most.
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.
Jegyzet
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.
Jegyzet
A Functions alkalmazás a api mappában található, amely elválasztja az egyes webalkalmazás-projektektől. Az előtérbeli keretrendszereket használó összes webalkalmazás ugyanarra az API-ra indít hívásokat. Eldöntheti, hogyan strukturálja az alkalmazást, de ebben a mintában segít elkülöníteni őket.
A HTTP-metódus és az útvonalvégpont konfigurálása
Figyelje meg, hogy az api/products-get mappa tartalmazza a fájltfunction.json. Ez a fájl tartalmazza a függvény konfigurációját.
Az útvonalvégpont neve megegyezik a függvényt tartalmazó mappával konvenció szerint. 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. Azt szeretné azonban, hogy a végpont termékek legyenek.
A függvény konfigurálása:
Nyissa meg az api/products-get/function.jsonfájlt.
Figyelje meg, hogy a metódusok lehetővé teszik
GETésPOSTis.Módosítsa a metódustömböt úgy, hogy csak
GETkéréseket engedélyezze.Adjon hozzá egy
"route": "products"bejegyzést a metódustömb után.
Most a függvény a GET irányuló HTTP-kéréskor aktiválódik. A function.json a következő 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énylogika frissítése
A mappában api/products-get fájl olyan logikát tartalmaz, amely akkor fut, amikor HTTP-kérelmet küld az útvonalra.
A termékek beszerzéséhez frissítenie kell a logikát. A JavaScript-modulban /shared/product-data.jsadatelérési logika található. A product-data modul egy getProducts függvényt tesz elérhetővé a bevásárlólista termékeinek lekéréséhez.
Most módosítsa a függvényvégpontot a termékek visszaadásához:
Nyissa meg az api/products-get/index.jsfájlt.
A tartalmat cserélje 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, hogy fordított proxy használatával kommunikáljon az Azure-beli API-val. Helyi futtatáskor azonban konfigurálnia kell a CORS-t, hogy a webalkalmazás és az API kommunikálhasson.
Most kérje meg az Azure Functionst, hogy engedélyezze a webalkalmazásnak, hogy HTTP-kéréseket küldjön az API-nak a számítógépen.
Hozzon létre egy api/local.settings.jsonnevű 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" } }
Jegyzet
A local.settings.json fájl szerepel a .gitignore fájlban, ami megakadályozza, hogy a fájl le legyen küldve a GitHubra. A fájl azért szerepel a .gitignore-ban , mert olyan titkos kulcsokat tárolhat benne, amelyeket nem szeretne a GitHubon tárolni. Ez a listaelem az oka annak, hogy létre kellett hoznia a fájlt, amikor létrehozta az adattárat a sablonból.
Az API futtatása
Most ideje megnézni, hogy a webalkalmazás és az Azure Functions-projekt együttműködik-e. Kezdje az Azure Functions-projekt helyi futtatásával az alábbi lépésekkel:
Jegyzet
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 nyissa meg a
apimappát:cd apiFuttassa helyileg az Azure Functions alkalmazást:
npm installnpm start
A webalkalmazás futtatása
Az API fut. Most konfigurálnia kell az előtérbeli alkalmazást, hogy http-kérést küldjön az API-nak. 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 biztonságosan proxyzhassa a HTTP-kéréseket egy porton.
A proxyport konfigurálása
Konfigurálja az előtérbeli alkalmazás proxyját az alábbi lépésekkel:
Nyissa meg az angular-app/proxy.conf.jsonfá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.jsonfá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.jsfájlt.
Keresse meg a
const api = 'http://localhost:7071/api';számú kódsort.Figyelje meg, hogy az API portja a 7071-esre mutat.
Nyissa meg a vue-app/vue.config.jsfá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. Az alábbi lépések követésével futtassa a webalkalmazást:
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-appcd react-appcd svelte-appcd vue-appFuttassa a front-end kliensalkalmazást:
npm startnpm startnpm run devnpm run serve
Tallózz az alkalmazásodra
Itt az ideje, hogy az alkalmazás helyileg fusson az Azure Functions API-val.
- Menjen a
http://localhost:4200.
- Menjen a
http://localhost:3000.
- Menjen a
http://localhost:5000.
- Menjen a
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.