Místní psaní kódu a testování funkcí Azure Functions
I když jste schopni vyvíjet a testovat Azure Functions v [Azure Portal,]mnoho vývojářů dává přednost místnímu vývojovému prostředí. Functions usnadňuje použití 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. Vaše místní funkce se mohou 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 služby Functions.
Tento článek obsahuje odkazy na konkrétní vývojová prostředí pro váš preferovaný jazyk. Poskytuje také několik sdílených pokynů pro místní vývoj, například práci slocal.settings.js v souboru.
Místní vývojová prostředí
Způsob, jakým vyvíjíte funkce na místním počítači, závisí na vašem jazyce 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 jazyka C# (.NET 5.0) JavaScript PowerShell Python |
Rozšíření Azure Functions pro VS Code přidává do služby functions podporu VS Code. Vyžaduje nástroje Core Tools. Podporuje vývoj v systémech Linux, 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 jazyka 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 systémech Linux, macOS a Windows. Všechna prostředí spoléhají na nástroje Core Tools pro místní modul runtime Služby Functions. |
| Visual Studio 2019 | Jazyk C# (knihovna tříd) Izolovaný proces jazyka C# (.NET 5.0) |
Nástroje Azure Functions jsou součástí sady nástrojů Pro vývoj pro Azure Visual Studio 2019 a novějších verzích. Umožňuje zkompilovat funkce v knihovně tříd a publikovat .dll do Azure. Zahrnuje 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 systémech Linux, 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é
Nemíchejte místní vývoj s vývojem portálu ve stejné aplikaci Function App. Při vytváření a publikování funkcí z místního projektu byste neměli chtít spravovat nebo 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 pomocí předdefinovaných šablon Functions vytvářet nové funkce. Každý z nich používá nástroje Core Tools, abyste mohli testovat a ladit funkce proti skutečnému modulu runtime Služby Functions na vlastním počítači stejně jako jakoukoli jinou aplikaci. Projekt aplikace funkcí můžete také publikovat z jakéhokoli z těchto prostředí do Azure.
Soubor místního nastavení
V local.settings.jsv souboru jsou uložená nastavení a nastavení aplikací používaná místními vývojových nástroji. Nastavení souboru local.settings.json se používají jenom v případě, že projekt používáte místně.
Důležité
Vzhledem k local.settings.jsmůže obsahovat tajné kódy, jako jsou připojovací řetězce, nikdy byste je neměli ukládat ve vzdáleném úložišti. Nástroje, které podporují functions, poskytují způsoby synchronizace nastavení v souboru local.settings.json s nastavením aplikace v aplikaci funkcí, do které je projekt nasazený.
Místní soubor 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í jsou podporována při místním spuštění projektů:
| Nastavení | Popis |
|---|---|
IsEncrypted |
Pokud je toto nastavení nastavené na true , všechny hodnoty se zašifrují pomocí klíče místního počítače. Používá se s func settings příkazy . Výchozí hodnota je false. Pokud soubor obsahuje tajné kódy, local.settings.jsnapříklad připojovací řetězce služby, může být zašifrovat soubor v místním počítači. Hostitel automaticky dešifruje nastavení při spuštění. Před func settings decrypt pokusem o čtení místně šifrovaných nastavení použijte příkaz . |
Values |
Kolekce nastavení aplikace, která se používají, když je projekt spuštěný místně. Tyto páry klíč-hodnota (řetězec-řetězec) odpovídají nastavení aplikace v aplikaci funkcí v Azure, například [AzureWebJobsStorage] . Mnoho triggerů a vazeb má vlastnost, která odkazuje na nastavení aplikace připojovacího řetězce, například Connection pro trigger úložiště objektů blob. Pro tyto vlastnosti budete potřebovat 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 nebo pole JSON. Názvy nastavení nemůže obsahovat dvojtečku ( : ) ani dvojité podtržení ( __ ). Dvojité podtržení jsou rezervované pro modul runtime a dvojtečka je vyhrazená pro podporu injektáže závislostí. |
Host |
Nastavení této části přizpůsobte hostitelský proces Functions při místním spuštění projektů. Tato nastavení jsou oddělená od nastavení host.js, která platí také při spouštění projektů v Azure. |
LocalHttpPort |
Nastaví výchozí port používaný při spuštění místního hostitele služby Functions ( a func host start func run ). Možnost --port příkazového řádku má přednost před tímto nastavením. Pokud například používáte integrované vývojové prostředí (IDE) Visual Studio, můžete změnit číslo portu tak, že přejdete do okna vlastnosti Project -> Debug a explicitně zadáte číslo portu v příkazu, který lze zadat v poli host start --port <your-port-number> Argumenty aplikace. |
CORS |
Definuje původ povolený pro sdílení prostředků mezi zdroji (CORS). Počátek se dodává jako seznam oddělený čárkami bez mezer. Podporuje se hodnota se zástupným znakem ( ), * která umožňuje požadavky z jakéhokoli původu. |
CORSCredentials |
Pokud je nastavená true na , umožňuje withCredentials požadavky. |
ConnectionStrings |
Kolekce. Tuto kolekci nepoužívejte pro připojovací řetězce používané vazbami funkcí. Tuto kolekci používají pouze architektury, které obvykle získání připojovacích řetězců z oddílu ConnectionStrings konfiguračního souboru, například Entity Framework. Připojovací řetězce v tomto objektu se přidávají do prostředí s typem poskytovatele System.Data.SqlClient. Položky v této kolekci nejsou publikované do Azure s jinými nastaveními aplikace. Tyto hodnoty musíte explicitně přidat do Connection strings kolekce nastavení vaší aplikace funkcí. Pokud vytváříte v kódu funkce , měli byste hodnotu připojovacího řetězce uložit s ostatními připojeními v části Nastavení SqlConnection na portálu. |
Při místním spuštění můžete do pole zahrnout Values 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žaduje se při použití jiných triggerů než HTTP. Další informace najdete v [AzureWebJobsStorage] referenčních informacích.Pokud máte místně Azure Storage Emulator a nastavíte na [ AzureWebJobsStorage] , nástroje Core Tools používají UseDevelopmentStorage=true emulátor. Emulátor je užitečný během vývoje, ale před nasazením byste měli otestovat skutečné připojení úložiště. |
AzureWebJobs.<FUNCTION_NAME>.Disabled |
true|false |
Pokud chcete zakázat funkci při místním spuštění, přidejte do "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" kolekce , kde je název <FUNCTION_NAME> funkce. Další informace najdete v tématu Zakázání funkcí v Azure Functions |
FUNCTIONS_WORKER_RUNTIME |
dotnetnodejavapowershellpython |
Označuje cílový jazyk modulu runtime Functions. Vyžadováno pro verzi 2. x a vyšší z modulu runtime Functions. Toto nastavení je vygenerováno pro váš projekt pomocí základních nástrojů. Další informace najdete v FUNCTIONS_WORKER_RUNTIME referenčních informacích. |
FUNCTIONS_WORKER_RUNTIME_VERSION |
~7 |
Indikuje, že se má používat PowerShell 7 při místním spuštění. Pokud není nastavená, použije se PowerShell Core 6. Toto nastavení se používá jenom v případě, že je spuštěný místně. Při spuštění v Azure se verze modulu runtime PowerShellu určuje podle powerShellVersion nastavení konfigurace lokality, 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 naleznete 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čích se systémem Mac, Linux nebo Windows naleznete v článku Visual Studio Code začínáme pro preferovaný jazyk:
- Další informace o vývoji funkcí z příkazového řádku nebo terminálu najdete v tématu věnovaném práci s Azure Functions Core Tools.