Az Azure Functions helyi kódolása és tesztelése

Amikor csak lehetséges, hozzon létre és ellenőrizze az Azure Functions-kódprojektet egy helyi fejlesztési környezetben. A Azure Functions Core Tools (v4) vagy a Azure Functions CLI (v5) használatával beszerezheti a Azure Functions helyi futtatókörnyezeti verzióját, amely integrálható a népszerű fejlesztési eszközökkel az integrált fejlesztéshez, hibakereséshez és üzembe helyezéshez. A helyi függvények akár élő Azure-szolgáltatásokhoz is csatlakozhatnak.

Ez a cikk megosztott útmutatást nyújt a helyi fejlesztéshez, például a local.settings.json fájllal való munkához. Emellett a fejlesztési környezetre vonatkozó útmutatásra is hivatkozik.

Jótanács

A függvények helyi fejlesztésével kapcsolatos részletes információkért tekintse meg a csatolt IDE-specifikus útmutatókat.

Helyi fejlesztési környezetek

A helyi számítógépen a függvények fejlesztésének módja a nyelvtől és az eszközhasználati beállításoktól függ. Válassza ki a kívánt nyelvet a cikk tetején.

Jótanács

Minden helyi fejlesztés a helyi Azure Functions futtatókörnyezetre és eszközökre (func CLI) támaszkodik, hogy a Functions-gazdagépet helyi környezetben hibakereséshez biztosítsa.

Ezeket a fejlesztői környezeteket használva helyileg kódelheti a függvényeket az előnyben részesített nyelven:

Környezet Leírás
Visual Studio Az Azure Functions-eszközöket a Visual StudioAzure-fejlesztési számítási feladatai tartalmazzák. C# függvénykódját .NET-osztálytárként fordíthatja le és helyezheti üzembe az Azure-ban. Tartalmazza a helyi teszteléshez szükséges alapvető eszközöket. További információ: Az első C#-függvény létrehozása az Azure-ban a Visual Studióval.
Visual Studio Code A Visual Studio Code Azure Functions-bővítménye függvénytámogatást ad a Visual Studio Code-hoz. Az alapvető eszközökre van szükség. Támogatja a linuxos, macOS- és Windows-alapú fejlesztést. További információ: Az első függvény létrehozása a Visual Studio Code használatával.
Parancssor vagy terminál Azure Functions helyi futtatókörnyezetet és a helyi fejlesztést lehetővé tevő eszközöket biztosít. Támogatja a linuxos, macOS- és Windows-alapú fejlesztést. További információ: C#-függvény létrehozása az Azure-ban a parancssorból.
Környezet Leírás
Maven A Maven archetípus a Core Tools használatával teszi lehetővé a Java-függvények fejlesztését. Támogatja a linuxos, macOS- és Windows-alapú fejlesztést. További információ: Az első függvény létrehozása Java és Maven használatával.
Visual Studio Code A Visual Studio Code Azure Functions-bővítménye függvénytámogatást ad a Visual Studio Code-hoz. Az alapvető eszközökre van szükség. Támogatja a linuxos, macOS- és Windows-alapú fejlesztést. További információ: Az első függvény létrehozása a Visual Studio Code használatával.
IntelliJ IDEA A Maven archetype és a Core Tools segítségével az IntelliJ használatával fejlesztheti a függvényeket. További információ: Az első Java-függvény létrehozása az Azure-ban az IntelliJ használatával.
Eclipse A Maven archetípusa és a Core Tools segítségével az Eclipse használatával fejlesztheti a függvényeket. További információ: Az első Java-függvény létrehozása az Azure-ban az Ecplise használatával.
Környezet Leírás
Visual Studio Code A Visual Studio Code Azure Functions-bővítménye függvénytámogatást ad a Visual Studio Code-hoz. Az alapvető eszközökre van szükség. Támogatja a linuxos, macOS- és Windows-alapú fejlesztést. További információ: Az első függvény létrehozása a Visual Studio Code használatával.
Parancssor vagy terminál Azure Functions helyi futtatókörnyezetet és a helyi fejlesztést lehetővé tevő eszközöket biztosít. Támogatja a linuxos, macOS- és Windows-alapú fejlesztést. További információ: Node.js függvény létrehozása az Azure-ban a parancssorból.
Környezet Leírás
Visual Studio Code A Visual Studio Code Azure Functions-bővítménye függvénytámogatást ad a Visual Studio Code-hoz. Az alapvető eszközökre van szükség. Támogatja a linuxos, macOS- és Windows-alapú fejlesztést. További információ: Az első függvény létrehozása a Visual Studio Code használatával.
Parancssor vagy terminál Azure Functions helyi futtatókörnyezetet és a helyi fejlesztést lehetővé tevő eszközöket biztosít. Támogatja a linuxos, macOS- és Windows-alapú fejlesztést. További információ: PowerShell-függvény létrehozása az Azure-ban a parancssorból.
Környezet Leírás
Visual Studio Code A Visual Studio Code Azure Functions-bővítménye függvénytámogatást ad a Visual Studio Code-hoz. Az alapvető eszközökre van szükség. Támogatja a linuxos, macOS- és Windows-alapú fejlesztést. További információ: Az első függvény létrehozása a Visual Studio Code használatával.
Parancssor vagy terminál Azure Functions helyi futtatókörnyezetet és a helyi fejlesztést lehetővé tevő eszközöket biztosít. Támogatja a linuxos, macOS- és Windows-alapú fejlesztést. További információ: Python-függvény létrehozása az Azure-ban a parancssorból.

Ezen helyi fejlesztési környezetek mindegyike lehetővé teszi függvényalkalmazás-projektek létrehozását, és előre definiált függvénysablonok használatával új függvényeket hozhat létre. Minden környezet a helyi Azure Functions futtatókörnyezetet és eszközöket használja, hogy a függvényeket ugyanúgy tesztelhesse és hibakeresést végezze el a saját gépén, mint bármely más alkalmazásban. A függvényalkalmazás-projektet ezen környezetek bármelyikéből közzéteheti az Azure-ban.

Helyi futtatókörnyezet és eszközök

Fontos

Az Azure Functions CLI (v5) jelenleg előnézetben van. Ez az előzetes verzió még nem támogatja a Java-t és a PowerShell-t. Ha jelenleg nem támogatott nyelvekkel dolgozhatsz, használd továbbra is a Azure Functions Core Tools v4-t.

A func.exe két változata létezik helyi Azure Functions fejlesztéshez:

v4 v5
API név Azure Functions Core Tools Azure Functions CLI
Támogatotti szint Általános rendelkezésre állás (GA) Preview
Telepítési lábnyom Teljes bináris, amely tartalmazza az összes parancsot és képességet minden anyanyelvhez. Kis alap telepítés, plusz nyelvenként szükséges feladatok és egyéb funkciók, amelyeket szükség szerint hozzáadsz. A gazda saját számítási feladatként érkezik, így a CLI újbóli letöltése nélkül megkapja a gazda legújabb verzióját.
Használja, amikor... Minden fejlesztési munkafolyamathoz teljes körű ga-támogatásra van szüksége. Egyszerű, számítási feladatalapú élményt szeretne az új funkciókkal, például gyorsútmutató-sablonokkal és profilokkal, amelyek szinkronban tartják a helyi környezetet a Azure üzemeltetési terv konfigurációjával.

Helyi projektfájlok

A Functions-projektkönyvtár a projekt gyökérmappájában található alábbi fájlokat tartalmazza, nyelvtől függetlenül:

Fájlnév Leírás
host.json További információ: host.json hivatkozás.
local.settings.json A helyi Functions-futtatókörnyezet által használt beállítások, beleértve az alkalmazásbeállításokat is. További információ: helyi beállítások fájlja.
.gitignore Megakadályozza, hogy a local.settings.json fájl véletlenül közzé legyen téve egy Git-adattárban. További információ: helyi beállítások fájlja.
.vscode\extensions.json A Projektmappa Visual Studio Code-ban való megnyitásakor használt beállításfájl.

A projekt más fájljai a nyelvtől és az adott függvénytől függenek. További információkért tekintse meg a nyelv fejlesztői útmutatóját.

Local settings file (Helyi beállításfájl)

A local.settings.json fájl tárolja a helyi fejlesztési eszközök által használt alkalmazásbeállításokat és beállításokat. Csak a projekt helyi futtatásakor használja a local.settings.json fájl beállításait. Amikor közzéteszi a projektet az Azure-ban, adja hozzá a szükséges beállításokat a függvényalkalmazás alkalmazásbeállításaihoz.

Fontos

Mivel a local.settings.json fájl titkos kódokat , például kapcsolati sztringeket tartalmazhat, körültekintően véglegesítse a forrásvezérlőben. A Functionst támogató eszközök lehetővé teszik a local.settings.json fájl beállításainak szinkronizálását abban a függvényalkalmazásban, amelyre a projektet üzembe helyezik.

A local.settings.json fájl struktúrája a következő:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<language worker>",
    "AzureWebJobsStorage": "<connection-string>",
    "MyBindingConnection": "<binding-connection-string>",
    "AzureWebJobs.HttpExample.Disabled": "true"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  },
  "ConnectionStrings": {
    "SQLConnectionString": "<sqlclient-connection-string>"
  }
}

Ezek a beállítások támogatottak a projektek helyi futtatásakor:

Beállítás Leírás
IsEncrypted Ha ez a beállítás be van állítva true, a rendszer minden értéket helyi gépkulcs használatával titkosít. A func settings parancsokkal használható. Az alapértelmezett érték false. Érdemes lehet titkosítani a local.settings.json fájlt a helyi számítógépen, ha érzékeny adatokat tartalmaz, mint például szolgáltatáskapcsolati karakterláncokat. A gazdagép futás közben automatikusan dekódolja a beállításokat. A helyileg titkosított beállítások olvasása előtt használja a func settings decrypt parancsot.
Values A projekt helyi futtatásakor használt alkalmazásbeállítások gyűjteménye. Az Azure-beli függvényalkalmazásban az alkalmazás beállításait ezek a kulcs-érték párok (szöveg-szöveg) határozzák meg, mint például AzureWebJobsStorage. Számos eseményindító és kötés rendelkezik olyan tulajdonságokkal, amelyek egy kapcsolati sztring alkalmazásbeállításra hivatkoznak, például Connection a Blob Storage-eseményindítóhoz. Ezekhez a tulajdonságokhoz a tömbben Values definiált alkalmazásbeállításra van szükség. A gyakran használt beállítások listáját a következő táblázatban találja.
Az értékeknek sztringeknek kell lenniük, nem pedig JSON-objektumoknak vagy tömböknek. A beállításnevek nem tartalmazhatnak dupla aláhúzást (__), és nem tartalmazhatnak kettőspontot (:). A kettős aláhúzásos karakterek a futtatókörnyezet által vannak lefoglalva, és a kettőspont a függőséginjektálás támogatására van fenntartva.
Host Az ebben a szakaszban található beállítások testre szabják a Functions-gazdagép folyamatát, amikor helyileg futtat projekteket. Ezek a beállítások eltérnek a host.json beállításaitól, amelyek az Azure-beli projektek futtatásakor is érvényesek.
LocalHttpPort Beállítja a helyi Functions-gazdagép (func host start és func run) futtatásakor használt alapértelmezett portot. A --port parancssori beállítás elsőbbséget élvez ezzel a beállítással szemben. Ha például a Visual Studio IDE-ben fut, módosíthatja a portszámot a "Project Properties – Debug" (Projekttulajdonságok –> Hibakeresés) ablakra lépve, és explicit módon megadhatja a portszámot egy host start --port <your-port-number> olyan parancsban, amely az "Alkalmazásargumentumok" mezőben adható meg.
CORS Meghatározza a forrásközi erőforrásmegosztáshoz (CORS) engedélyezett forrásokat. A forrásokat vesszővel elválasztott listaként, szóközök nélkül adja meg. A helyettesítő karakterek (*) értéke támogatott, ami lehetővé teszi a kéréseket bármilyen forrásból.
CORSCredentials Ha be van állítva true, engedélyezi a withCredentials kéréseket.
ConnectionStrings Gyűjtemény. Ne használja ezt a gyűjteményt a függvények kötéseihez szükséges kapcsolati karakterláncok tárolására. Ezt a gyűjteményt csak olyan keretrendszerek használják, amelyek általában a kapcsolati sztringeket egy konfigurációs fájl ConnectionStrings szakaszából kapják, például az Entity Framework. Az objektumban található kapcsolati sztringek a System.Data.SqlClient szolgáltatótípussal vannak hozzáadva a környezethez. A gyűjtemény elemei nem jelennek meg az Azure-ban más alkalmazásbeállításokkal. Ezeket az értékeket explicit módon kell hozzáadnia a Connection strings függvényalkalmazás beállításainak gyűjteményéhez. Ha egy SqlConnection-t hoz létre a függvénykódjában, a kapcsolat karakterlánc értékét a többi kapcsolattal együtt tárolja a portál Alkalmazásbeállítások-ban.

A következő alkalmazásbeállítások vehetők fel a Values tömbbe, amikor helyileg futtatják:

Beállítás Értékek Leírás
AzureWebJobsStorage Tárfiók kapcsolati karakterlánc vagy
UseDevelopmentStorage=true
Tartalmazza az Azure Storage-fiók kapcsolati sztringjét. HTTP-nek nem megfelelő eseményindítók használatakor szükséges. További információkért lásd a AzureWebJobsStorage hivatkozást.
Ha az Azurite Emulator helyileg van telepítve, és be van állítva AzureWebJobsStorageUseDevelopmentStorage=true, a helyi Functions-gazdagép az emulátort használja. További információ: Local Storage Emulator.
AzureWebJobs.<FUNCTION_NAME>.Disabled true|false Ha helyileg szeretne letiltani egy függvényt, adja hozzá "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" a gyűjteményhez, ahol <FUNCTION_NAME> a függvény neve szerepel. További információ: Függvények letiltása az Azure Functionsben.
FUNCTIONS_WORKER_RUNTIME dotnet
dotnet-isolated
node
java
powershell
python
A Functions-futtatókörnyezet célnyelvét jelzi. A Functions-futtatókörnyezet 2.x és újabb verziójához szükséges. A func init parancs létrehozza ezt a beállítást a projekthez. További információkért tekintse meg a FUNCTIONS_WORKER_RUNTIME hivatkozást.
FUNCTIONS_WORKER_RUNTIME_VERSION ~7 Azt jelzi, hogy a PowerShell 7-et használja helyi futtatáskor. Ha nincs beállítva, a Rendszer a PowerShell Core 6-ot használja. Ezt a beállítást csak helyi futtatáskor használja a rendszer. A PowerShell-futtatókörnyezet verzióját a powerShellVersion webhelykonfigurációs beállítás határozza meg, amikor az Azure-ban fut, amely a portálon állítható be.

Ha szeretné megtudni, hogyan használhatja a values tömb értékeit környezeti változóként a függvénykódban, tekintse meg a környezeti változókat a fejlesztői útmutatóban.

Ha szeretné megtudni, hogyan használhatja a values tömb értékeit környezeti változóként a függvénykódban, tekintse meg a környezeti változókat a fejlesztői útmutatóban.

Ha szeretné megtudni, hogyan használhatja a values tömb értékeit környezeti változóként a függvénykódban, tekintse meg a környezeti változókat a fejlesztői útmutatóban.

Ha szeretné megtudni, hogyan használhatja a values tömb értékeit környezeti változóként a függvénykódban, tekintse meg a környezeti változókat a fejlesztői útmutatóban.

Beállítások szinkronizálása

Amikor helyileg fejleszti a függvényeket, adja meg az alkalmazás által megkövetelt helyi beállításokat annak a függvényalkalmazásnak az alkalmazásbeállításai között, ahol a kódot üzembe helyezi. Előfordulhat, hogy le kell töltenie az aktuális beállításokat a függvényalkalmazásból a helyi projektbe. Bár manuálisan is konfigurálhatja az alkalmazásbeállításokat az Azure Portalon, az alábbi eszközök lehetővé teszik az alkalmazásbeállítások szinkronizálását a projekt helyi beállításaival is:

Eseményindítók és kötések

Amikor helyileg fejleszti a függvényeket, vegye figyelembe az eseményindító és a bindelés viselkedését. HTTP-eseményindítók esetén meghívhatja a HTTP-végpontot a helyi számítógépen a használatával http://localhost/. A nem HTTP által aktivált függvények esetén több lehetőséget is használhat a helyi futtatáshoz:

  • Az élő Azure-szolgáltatásokat célzó kapcsolati sztringekkel tesztelheti a kötéseket a helyi fejlesztés során. Adja hozzá a megfelelő kapcsolati sztringbeállításokat a Values local.settings.json fájl tömbjében. Ha ezt teszi, a tesztelés során végzett helyi végrehajtások hatással lehetnek a gyártási szolgáltatásokra. Ehelyett fontolja meg külön élő szolgáltatások beállítását a fejlesztés és tesztelés során, majd váltson a különböző szolgáltatásokra az éles üzem során.
  • Tárolóalapú eseményindítókhoz használjon helyi tárolóemulátort.
  • A nem HTTP-eseményindító függvények manuális futtatása speciális rendszergazdai végpontok használatával. További információ: Nem HTTP-aktivált függvény manuális futtatása.

A helyi tesztelés során helyben kell futtatnia a Functions helyi futtatókörnyezete (func.exe) által biztosított gazdafolyamatot. További információ: Azure Functions Core Tools vagy Azure Functions CLI.

HTTP-teszteszközök

A fejlesztés során bármelyik függvényvégpontot meghívhatja egy webböngészőből, ha támogatják a HTTP GET metódust. A hasznos adatokat támogató egyéb HTTP-metódusok, például a POST vagy a PUT esetében azonban http-teszteszközt kell használnia ezeknek a HTTP-kéréseknek a függvényvégpontokhoz való létrehozásához és elküldéséhez.

Figyelemfelhívás

Olyan esetekben, amikor a kéréseknek bizalmas adatokat kell tartalmazniuk, mindenképpen használjon olyan eszközt, amely védi az adatokat, és csökkenti a bizalmas adatok nyilvános felfedésének kockázatát. A védeni kívánt bizalmas adatok közé tartozhatnak a hitelesítő adatok, titkos kódok, hozzáférési jogkivonatok, API-kulcsok, földrajzi helyadatok és személyes adatok.

Az adatok biztonságossá tételéhez válasszon egy http-teszteszközt, amely offline vagy helyileg működik, nem szinkronizálja az adatokat a felhőbe, és nem követeli meg, hogy online fiókba jelentkezzen be. Bizonyos eszközök bizonyos biztonsági funkciók implementálásával megvédhetik az adatokat a véletlen expozíciótól.

Ne használjon olyan eszközöket, amelyek központilag tárolják a HTTP-kérések előzményeit (beleértve a bizalmas adatokat is), ne kövesse az ajánlott biztonsági eljárásokat, és ne tartsa tiszteletben az adatvédelmi szempontokat.

Fontolja meg az alábbi eszközök egyikének használatát a HTTP-kérések függvényvégpontokra történő biztonságos küldéséhez:

Helyi tárolóemulátor

A helyi fejlesztés során a helyi Azurite emulátort használhatja a függvények Azure Storage-kötésekkel (Queue Storage, Blob Storage és Table Storage) való teszteléséhez anélkül, hogy távoli tárolási szolgáltatásokhoz csatlakozna. Az Azurite integrálható a Visual Studio Code-tal és a Visual Studióval, és a parancssorból is futtathatja az npm használatával. További információ: Az Azurite emulátor használata helyi Azure Storage-fejlesztéshez.

A local.settings.json fájl gyűjteményében az Values alábbi beállítás azt jelzi, hogy a helyi Functions-gazdagép az Azurite-ot használja az alapértelmezett AzureWebJobsStorage kapcsolathoz:

"AzureWebJobsStorage": "UseDevelopmentStorage=true"

Ezzel a beállítási értékkel, bármelyik AzureWebJobsStorage kapcsolatot használó Azure Storage-eseményindító vagy kötés az Azurite-hoz kapcsolódik, amikor helyben fut. Tartsa szem előtt ezeket a szempontokat a tárolóemuláció helyi végrehajtás során történő használatakor:

  • Telepítenie és futtatnia kell az Azurite-t.
  • Azt javasoljuk, hogy teszteljen egy tényleges tárolási kapcsolaton keresztül az Azure-szolgáltatásokhoz, mielőtt közzétesz az Azure-ban.
  • A projekt közzétételekor ne tegye közzé a AzureWebJobsStorage beállítást UseDevelopmentStorage=true. Az Azure-ban a AzureWebJobsStorage beállításnak mindig annak a tárfióknak a kapcsolati karakterlánca kell lennie, amelyet a függvényalkalmazás használ. További információ: AzureWebJobsStorage.