Místní psaní kódu a testování funkcí Azure Functions
I když můžete vyvíjet a testovat Azure Functions v Azure Portal, mnoho vývojářů preferuje místní vývojové prostředí. Když používáte Functions, používání oblíbeného editoru kódu a vývojových nástrojů k vytváření a testování funkcí na místním počítači bude jednodušší. Místní funkce se můžou připojit k živým službám Azure a můžete je ladit na místním počítači pomocí úplného modulu runtime Functions.
Tento článek obsahuje odkazy na konkrétní vývojová prostředí pro váš upřednostňovaný jazyk. Poskytuje také některé sdílené pokyny pro místní vývoj, jako je například práce se souborem local.settings.json.
Místní vývojová prostředí
Způsob, jakým vyvíjíte funkce v místním počítači, závisí na jazyku a předvolbách nástrojů. Prostředí v následující tabulce podporují místní vývoj:
Prostředí | Jazyky | Description |
---|---|---|
Visual Studio Code | Jazyk C# (knihovna tříd) Izolovaný proces C# (.NET 5.0) JavaScript PowerShell Python |
Rozšíření Azure Functions pro VS Code přidává podporu functions do VS Code. Vyžaduje nástroje Core Tools. Podporuje vývoj v Linuxu, macOS a Windows při použití verze 2.x nástrojů Core Tools. Další informace najdete v tématu Vytvoření první funkce pomocí Visual Studio Code. |
Příkazový řádek nebo terminál | Jazyk C# (knihovna tříd) Izolovaný proces C# (.NET 5.0) JavaScript PowerShell Python |
Azure Functions Core Tools poskytuje základní modul runtime a šablony pro vytváření funkcí, které umožňují místní vývoj. Verze 2.x podporuje vývoj v Linuxu, macOS a Windows. Všechna prostředí využívají Nástroje Core Tools pro místní modul runtime Functions. |
Visual Studio 2019 | Jazyk C# (knihovna tříd) Izolovaný proces C# (.NET 5.0) |
Nástroje Azure Functions jsou součástí vývojové úlohy AzureVisual Studio 2019 a novějších verzích. Umožňuje zkompilovat funkce v knihovně tříd a publikovat .dll do Azure. Obsahuje nástroje Core Tools pro místní testování. Další informace najdete v tématu Vývoj Azure Functions pomocí Visual Studio. |
Maven (různé) | Java | Archetyp Maven podporuje nástroje Core Tools, které umožňují vývoj funkcí v Javě. Verze 2.x podporuje vývoj v Linuxu, macOS a Windows. Další informace najdete v tématu Vytvoření první funkce pomocí Javy a Mavenu. Podporuje také vývoj pomocí Eclipse a IntelliJ IDEA. |
Důležité
Nepromíchejte místní vývoj s vývojem portálu ve stejné aplikaci funkcí. Když vytváříte a publikujete funkce z místního projektu, neměli byste se pokoušet udržovat ani upravovat kód projektu na portálu.
Každé z těchto místních vývojových prostředí umožňuje vytvářet projekty aplikací funkcí a používat předdefinované šablony funkcí k vytváření nových funkcí. Každý používá nástroje Core Tools, abyste mohli testovat a ladit funkce proti skutečnému modulu runtime Functions na vlastním počítači stejně jako jakékoli jiné aplikace. Projekt aplikace funkcí můžete také publikovat z libovolného z těchto prostředí do Azure.
Soubor místního nastavení
Soubor local.settings.json ukládá nastavení a nastavení aplikace používané místními vývojářskými nástroji. Nastavení v souboru local.settings.json se používají jenom při místním spuštění projektu.
Důležité
Protože soubor local.settings.json může obsahovat tajné kódy, jako jsou připojovací řetězce, neměli byste ho nikdy uložit do vzdáleného úložiště. Nástroje, které podporují funkce, poskytují způsoby synchronizace nastavení v souboru local.settings.json s nastavením aplikace v aplikaci funkcí, do které je projekt nasazený.
Soubor místního nastavení má tuto strukturu:
{
"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>"
}
}
Tato nastavení se podporují při místním spouštění projektů:
Nastavení | Popis |
---|---|
IsEncrypted |
Pokud je toto nastavení nastavené na true , všechny hodnoty se šifrují pomocí klíče místního počítače. Používá se s func settings příkazy. Výchozí hodnota je false . Soubor local.settings.json můžete chtít zašifrovat na místním počítači, když obsahuje tajné kódy, jako jsou připojovací řetězce služby. Hostitel automaticky dešifruje nastavení při spuštění. func settings decrypt Před pokusem o čtení místně šifrovaného nastavení použijte příkaz. |
Values |
Kolekce nastavení aplikací používaná při místním spuštění projektu Tyto páry klíč-hodnota (řetězec) odpovídají nastavení aplikace ve vaší aplikaci funkcí v Azure, například AzureWebJobsStorage . Mnoho triggerů a vazeb má vlastnost, která odkazuje na nastavení aplikace připojovacího řetězce, jako je Connection trigger úložiště objektů blob. Pro tyto vlastnosti potřebujete nastavení aplikace definované v Values poli. Seznam běžně používaných nastavení najdete v následující tabulce. Hodnoty musí být řetězce, nikoli objekty JSON nebo pole. Názvy nastavení nesmí obsahovat dvojité podtržení ( __ ) a nemělo by obsahovat dvojtečku (: ). Znaky dvojitého podtržení jsou vyhrazeny modulem runtime a dvojtečka je vyhrazena pro podporu injektáže závislostí. |
Host |
Nastavení v této části při místním spouštění projektů přizpůsobte proces hostitele Functions. Tato nastavení jsou oddělená od nastavení host.json, která platí také při spouštění projektů v Azure. |
LocalHttpPort |
Nastaví výchozí port použitý při spuštění místního hostitele functions (func host start a func run ). Možnost --port příkazového řádku má přednost před tímto nastavením. Například při spuštění v integrovaném vývojovém prostředí (IDE) Visual Studio můžete změnit číslo portu tak, že přejdete do okna "Project Vlastnosti –> Ladění" a explicitně zadáte číslo portu v host start --port <your-port-number> příkazu, který lze zadat do pole Argumenty aplikace. |
CORS |
Definuje zdroje povolené pro sdílení prostředků mezi zdroji (CORS). Původy jsou zadány jako seznam oddělený čárkami bez mezer. Je podporována hodnota se zástupnými znaky (*), která umožňuje požadavky z libovolného původu. |
CORSCredentials |
Pokud je tato možnost nastavená na true , povolí withCredentials požadavky. |
ConnectionStrings |
Kolekce. Tuto kolekci nepoužívejte pro připojovací řetězce používané vazbami funkcí. Tuto kolekci používají jenom architektury, které obvykle získávají připojovací řetězce z ConnectionStrings oddílu konfiguračního souboru, jako je Entity Framework. Připojovací řetězce v tomto objektu se přidají do prostředí s typem zprostředkovatele System.Data.SqlClient. Položky v této kolekci se nepublikují do Azure s jiným nastavením aplikace. Tyto hodnoty musíte explicitně přidat do Connection strings kolekce nastavení aplikace funkcí. Pokud vytváříte SqlConnection kód funkce, měli byste hodnotu připojovacího řetězce uložit s ostatními připojeními v Nastavení aplikace na portálu. |
Při spuštění místně je možné do Values
pole zahrnout následující nastavení aplikace:
Nastavení | Hodnoty | Popis |
---|---|---|
AzureWebJobsStorage |
Storage připojovací řetězec účtu neboUseDevelopmentStorage=true |
Obsahuje připojovací řetězec pro účet úložiště Azure. Vyžadováno při použití jiných triggerů než HTTP. Další informace najdete v referenčních informacích AzureWebJobsStorage .Pokud máte místně nainstalovanou Emulator Azurite a nastavíte AzureWebJobsStorage ji na UseDevelopmentStorage=true , Core Tools používá emulátor. Emulátor je užitečný při vývoji, ale před nasazením byste měli otestovat skutečné připojení k úložišti. |
AzureWebJobs.<FUNCTION_NAME>.Disabled |
true |false |
Pokud chcete funkci zakázat při místním spuštění, přidejte "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" ji do kolekce, kde <FUNCTION_NAME> je název funkce. Další informace najdete v tématu Jak zakázat funkce v Azure Functions. |
FUNCTIONS_WORKER_RUNTIME |
dotnet node java powershell python |
Označuje cílový jazyk modulu runtime Functions. Vyžaduje se pro modul runtime Functions verze 2.x a vyšší. Toto nastavení se vygeneruje pro váš projekt nástrojem Core Tools. Další informace najdete v referenčních informacích FUNCTIONS_WORKER_RUNTIME . |
FUNCTIONS_WORKER_RUNTIME_VERSION |
~7 |
Označuje použití PowerShellu 7 při místním spuštění. Pokud není nastavená, použije se PowerShell Core 6. Toto nastavení se používá pouze při místním spuštění. Verze modulu runtime PowerShellu je určena powerShellVersion nastavením konfigurace webu, když běží v Azure, která se dá nastavit na portálu. |
Další kroky
- Další informace o místním vývoji kompilovaných funkcí jazyka C# pomocí Visual Studio 2019 najdete v tématu Vývoj Azure Functions pomocí Visual Studio.
- Další informace o místním vývoji funkcí pomocí VS Code na počítači se systémem Mac, Linux nebo Windows najdete v článku začínáme s Visual Studio kódem pro preferovaný jazyk:
- Další informace o vývoji funkcí z příkazového řádku nebo terminálu najdete v tématu Práce s nástroji Azure Functions Core Tools.