Megosztás a következőn keresztül:


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

Amikor csak lehetséges, helyi fejlesztési környezetben kell létrehoznia és ellenőriznie az Azure Functions-kódprojektet. Az Azure Functions Core Tools az Azure Functions helyi futtatókörnyezeti verzióját biztosítja, amely integrált fejlesztéshez, hibakereséshez és üzembe helyezéshez integrálható népszerű fejlesztői eszközökkel. 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ókat a csatolt IDE-specifikus útmutatókban találja.

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. Ügyeljen arra, hogy a cikk tetején válassza ki az előnyben részesített nyelvet.

Jótanács

Minden helyi fejlesztés az Azure Functions Core Toolsra támaszkodik, amely biztosítja a Functions-futtatókörnyezetet a helyi környezetben történő hibakereséshez.

Ezeket a fejlesztési környezeteket használhatja a függvények helyi kódjához 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. Lehetővé teszi a C# függvénykód fordítását és üzembe helyezését az Azure-ban .NET-osztálytárként. 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 Az Azure Functions Core Tools biztosítja az alapvető futtatókörnyezetet és a függvények létrehozásához szükséges sablonokat, amelyek lehetővé teszik a helyi fejlesztést. 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 Az Azure Functions Core Tools biztosítja az alapvető futtatókörnyezetet és a függvények létrehozásához szükséges sablonokat, amelyek lehetővé teszik a helyi fejlesztést. 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 Az Azure Functions Core Tools biztosítja az alapvető futtatókörnyezetet és a függvények létrehozásához szükséges sablonokat, amelyek lehetővé teszik a helyi fejlesztést. 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 Az Azure Functions Core Tools biztosítja az alapvető futtatókörnyezetet és a függvények létrehozásához szükséges sablonokat, amelyek lehetővé teszik a helyi fejlesztést. 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. Mindegyik a Core Toolst 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 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 Core Tools által helyi futtatáskor 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. A fájl beállításai local.settings.json csak akkor használhatók, ha a projektet helyileg futtatja. Amikor közzéteszi a projektet az Azure-ban, mindenképpen 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 titkokat, például kapcsolati sztringeket tartalmazhat, óvatosan járjon el, amikor a forráskód kezelőbe commitál. 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épkulcsgal 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 a függvénykódban hoz létre egy SqlConnection értéket, a kapcsolati sztring értéket a többi kapcsolattal együtt kell tárolnia a portál Alkalmazásbeállítások lapján.

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 Core Tools 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. Ezt a beállítást a Core Tools hozza létre 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.

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

A függvények helyi fejlesztésekor az alkalmazás által igényelt helyi beállításoknak meg kell jelenniük annak a függvényalkalmazásnak az alkalmazásbeállításaiban is, amelyre a kód telepítve van. 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, figyelembe kell vennie az eseményindítók és kötések 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ében több lehetőség is van a helyi futtatásra:

  • A helyi fejlesztés során a kötések tesztelésének legegyszerűbb módja az élő Azure-szolgáltatásokat célzó kapcsolati sztring használata. Az élő szolgáltatásokat úgy célozhatja meg, hogy hozzáadja a megfelelő kapcsolati sztring beá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 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.
  • A tárolóalapú eseményindítókhoz használhat helyi tárolóemulátort.
  • A nem HTTP-eseményindító függvényeket manuálisan is futtathatja 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 szükséges helyben futtatnia a Core Tools (func.exe) által biztosított gazdagépet. További információ: Azure Functions Core Tools.

HTTP-teszteszközök

A fejlesztés során egyszerűen meghívhatja bármelyik függvényvégpontot 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őt személyes adatok is.

Az adatok biztonságossá tételéhez válasszon olyan HTTP-teszteszközt, amely offline vagy helyileg működik, nem szinkronizálja az adatokat a felhőbe, és nem igényli az online fiókba való bejelentkezést. 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 kellene csatlakoznia. 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.