Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Kdykoli je to možné, vytvořte a ověřte projekt kódu Azure Functions v místním vývojovém prostředí. Pomocí nástrojů Azure Functions Core Tools získáte místní verzi modulu runtime služby Azure Functions, která se integruje s oblíbenými vývojářskými nástroji pro integrovaný vývoj, ladění a nasazení. Vaše místní funkce se můžou dokonce připojit k živým službám Azure.
Tento článek obsahuje některé sdílené pokyny pro místní vývoj, jako je například práce se souboremlocal.settings.json. Odkazuje také na pokyny specifické pro vývojové prostředí.
Návod
Podrobné informace o tom, jak vyvíjet funkce místně, najdete v článcích s pokyny pro konkrétní propojené integrované vývojové prostředí (IDE).
Místní vývojová prostředí
Způsob, jakým vyvíjíte funkce na místním počítači, závisí na jazyku a předvolbách nástrojů. V horní části článku zvolte preferovaný jazyk.
Návod
Veškerý místní vývoj využívá nástroje Azure Functions Core Tools k zajištění modulu runtime Functions pro ladění v místním prostředí.
Pomocí těchto vývojových prostředí můžete kódovat funkce místně ve vašem upřednostňovaném jazyce:
| Prostředí | Popis |
|---|---|
| Visual Studio | Nástroje Azure Functions jsou součástí pracovní zátěže Azure pro vývoj v prostředí Visual Studio. Kód funkce jazyka C# můžete zkompilovat a nasadit do Azure jako knihovnu tříd .NET. Obsahuje nástroje Core Tools pro místní testování. Další informace najdete v tématu Vytvoření první funkce jazyka C# v Azure pomocí sady Visual Studio. |
| Visual Studio Code | Rozšíření Azure Functions pro Visual Studio Code přidává podporu funkcí do editoru Visual Studio Code. Vyžaduje sadu nástrojů Core Tools. Podporuje vývoj v systémech Linux, macOS a Windows. Další informace najdete v tématu Vytvoření první funkce pomocí editoru Visual Studio Code. |
| Příkazový řádek nebo terminál | Azure Functions Core Tools poskytuje základní modul runtime a šablony pro vytváření funkcí, které umožňují místní vývoj. Podporuje vývoj v systémech Linux, macOS a Windows. Další informace najdete v tématu Vytvoření funkce jazyka C# v Azure z příkazového řádku. |
| Prostředí | Popis |
|---|---|
| Maven | Archetyp Maven používá nástroje Core Tools k povolení vývoje funkcí Java. Podporuje vývoj v systémech Linux, macOS a Windows. Další informace najdete v tématu Vytvoření první funkce pomocí Javy a Mavenu. |
| Visual Studio Code | Rozšíření Azure Functions pro Visual Studio Code přidává podporu funkcí do editoru Visual Studio Code. Vyžaduje sadu nástrojů Core Tools. Podporuje vývoj v systémech Linux, macOS a Windows. Další informace najdete v tématu Vytvoření první funkce pomocí editoru Visual Studio Code. |
| IntelliJ IDEA | Archetyp Maven a Nástroje Core Tools umožňují vyvíjet funkce pomocí IntelliJ. Další informace najdete v tématu Vytvoření první funkce Java v Azure pomocí IntelliJ. |
| Eclipse | Archetyp Maven a Nástroje Core Tools umožňují vyvíjet funkce pomocí Eclipse. Další informace najdete v tématu Vytvoření první funkce Java v Azure pomocí Ecplise. |
| Prostředí | Popis |
|---|---|
| Visual Studio Code | Rozšíření Azure Functions pro Visual Studio Code přidává podporu funkcí do editoru Visual Studio Code. Vyžaduje sadu nástrojů Core Tools. Podporuje vývoj v systémech Linux, macOS a Windows. Další informace najdete v tématu Vytvoření první funkce pomocí editoru Visual Studio Code. |
| Příkazový řádek nebo terminál | Azure Functions Core Tools poskytuje základní modul runtime a šablony pro vytváření funkcí, které umožňují místní vývoj. Podporuje vývoj v systémech Linux, macOS a Windows. Další informace najdete v tématu Vytvoření funkce Node.js v Azure z příkazového řádku. |
| Prostředí | Popis |
|---|---|
| Visual Studio Code | Rozšíření Azure Functions pro Visual Studio Code přidává podporu funkcí do editoru Visual Studio Code. Vyžaduje sadu nástrojů Core Tools. Podporuje vývoj v systémech Linux, macOS a Windows. Další informace najdete v tématu Vytvoření první funkce pomocí editoru Visual Studio Code. |
| Příkazový řádek nebo terminál | Azure Functions Core Tools poskytuje základní modul runtime a šablony pro vytváření funkcí, které umožňují místní vývoj. Podporuje vývoj v systémech Linux, macOS a Windows. Další informace najdete v tématu Vytvoření funkce PowerShellu v Azure z příkazového řádku. |
| Prostředí | Popis |
|---|---|
| Visual Studio Code | Rozšíření Azure Functions pro Visual Studio Code přidává podporu funkcí do editoru Visual Studio Code. Vyžaduje sadu nástrojů Core Tools. Podporuje vývoj v systémech Linux, macOS a Windows. Další informace najdete v tématu Vytvoření první funkce pomocí editoru Visual Studio Code. |
| Příkazový řádek nebo terminál | Azure Functions Core Tools poskytuje základní modul runtime a šablony pro vytváření funkcí, které umožňují místní vývoj. Podporuje vývoj v systémech Linux, macOS a Windows. Další informace najdete v tématu Vytvoření funkce Pythonu v Azure z příkazového řádku. |
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é prostředí používá Nástroje Core Tools, abyste mohli otestovat a ladit funkce proti skutečnému modulu runtime Functions na vlastním počítači stejně jako jakoukoli jinou aplikaci. Projekt aplikace funkcí můžete publikovat také z libovolného z těchto prostředí do Azure.
Místní soubory projektu
Adresář projektu Functions obsahuje následující soubory v kořenové složce projektu bez ohledu na jazyk:
| Název souboru | Popis |
|---|---|
| host.json | Další informace najdete v host.json referenčních informacích. |
| local.settings.json | Nastavení, která Nástroje Core Tools používají při místním spuštění, včetně nastavení aplikace. Další informace najdete v souboru místních nastavení. |
| .gitignore | Zabrání náhodnému publikování souboru local.settings.json do úložiště Git. Další informace najdete v souboru místních nastavení. |
| .vscode\extensions.json | Soubor nastavení použitý při otevírání složky projektu v editoru Visual Studio Code. |
Jiné soubory v projektu závisí na vašem jazyce a konkrétních funkcích. Další informace najdete v příručce pro vývojáře pro váš jazyk.
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 local.settings.json souboru používejte jenom při místním spuštění projektu. Když projekt publikujete do Azure, přidejte do nastavení aplikace pro aplikaci funkcí všechna požadovaná nastavení.
Důležité
local.settings.json Protože soubor může obsahovat tajnosti, například připojovací řetězce, buďte opatrní při jeho vložení do správy zdrojového kódu. Nástroje, které podporují funkci, poskytují způsoby synchronizace nastavení v local.settings.json souboru s nastavením aplikace v aplikaci funkcí, do které je projekt nasazený.
Soubor local.settings.json 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 v místním počítači můžete chtít zašifrovat, pokud obsahuje tajné kódy, jako jsou připojovací řetězec 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í aplikace 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 pro připojovací řetězec, jako je Connectiontrigger ú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 (:). Znak dvojitého podtržení je vyhrazen modulu runtime a dvojtečka je rezervována pro podporu vkládání závislostí. |
Host |
Nastavení v této části přizpůsobuje proces hostu Functions, když spouštíte projekty místně. 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 IDE Visual Studio můžete změnit číslo portu tak, že otevřete okno Vlastnosti projektu – Ladění a explicitně zadáte požadované číslo portu v příkazovém řádku. Tento příkaz můžete zadat do pole Argumenty aplikace. |
CORS |
Definuje původy povolené pro sdílení prostředků mezi různými zdroji (CORS). Původy jsou uvedeny jako čárkami oddělený seznam bez mezer. Hodnota se zástupným znakem (*) je podporovaná, což 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í pouze architektury, které obvykle získávají připojovací řetězec 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ými nastaveními aplikace. Tyto hodnoty musíte explicitně přidat do Connection strings kolekce nastavení vaší aplikace funkcí. Pokud vytváříte SqlConnection ve svém kódu funkce, uložte hodnotu pro připojovací řetězec s ostatními připojeními do Nastavení aplikace na portálu. |
Následující nastavení aplikace je možné zahrnout do Values pole při místním spuštění:
| Nastavení | Hodnoty | Popis |
|---|---|---|
AzureWebJobsStorage |
řetězec připojení účtu úložiště neboUseDevelopmentStorage=true |
Obsahuje připojovací řetězec pro účet úložiště Azure. Vyžaduje se při použití triggerů jiných než HTTP. Další informace najdete v referenčních informacích AzureWebJobsStorage .Pokud máte místně nainstalovaný emulátor Azurite a nastavíte AzureWebJobsStorage na UseDevelopmentStorage=true, Core Tools používá emulátor. Další informace naleznete v tématu Emulátor místního úložiště. |
AzureWebJobs.<FUNCTION_NAME>.Disabled |
true|false |
Pokud chcete zakázat funkci 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 Postup zakázání funkcí ve službě Azure Functions. |
FUNCTIONS_WORKER_RUNTIME |
dotnetdotnet-isolatednodejavapowershellpython |
Označuje cílový jazyk běhového prostředí Functions. Vyžaduje se pro modul runtime Functions verze 2.x a vyšší. Nástroje Core Tools vygenerují toto nastavení pro váš projekt. 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á jenom při místním spuštění. Verze modulu runtime PowerShellu je určená powerShellVersion nastavením konfigurace webu při spuštění v Azure, která se dá nastavit na portálu. |
Informace o použití hodnot z values pole jako proměnných prostředí v kódu funkce najdete v tématu Proměnné prostředí v příručce pro vývojáře.
Informace o použití hodnot z values pole jako proměnných prostředí v kódu funkce najdete v tématu Proměnné prostředí v příručce pro vývojáře.
Informace o použití hodnot z values pole jako proměnných prostředí v kódu funkce najdete v tématu Proměnné prostředí v příručce pro vývojáře.
Informace o použití hodnot z values pole jako proměnných prostředí v kódu funkce najdete v tématu Proměnné prostředí v příručce pro vývojáře.
Synchronizace nastavení
Při místním vývoji funkcí zahrňte všechna místní nastavení vyžadovaná aplikací do nastavení aplikace aplikace, do které nasadíte svůj kód. Možná budete také muset stáhnout aktuální nastavení z aplikace funkcí do místního projektu. Nastavení aplikace můžete na webu Azure Portal nakonfigurovat ručně, ale následující nástroje také umožňují synchronizovat nastavení aplikace s místním nastavením v projektu:
Triggery a vazby
Při místním vývoji funkcí zvažte chování spouštěčů a vazeb. Pro triggery HTTP můžete volat koncový bod HTTP na místním počítači pomocí http://localhost/. Pro funkce, které nejsou aktivované protokolem HTTP, použijte k místnímu spuštění několik možností:
- Připojovací řetězce, které cílí na živé služby Azure, můžete použít k testování vazeb během místního vývoje. Do pole v
Valuessouboru local.settings.json přidejte odpovídající nastavení připojovacího řetězce. Když to uděláte, můžou místní spuštění během testování ovlivnit vaše produkční služby. Místo toho zvažte nastavení samostatných živých služeb, které se mají použít při vývoji a testování, a pak v produkčním prostředí přepněte na různé služby. - Pro triggery založené na úložišti použijte emulátor místního úložiště.
- Spouštět funkce triggeru jiného typu než HTTP ručně pomocí speciálních koncových bodů správce Další informace najdete v tématu Ruční spuštění funkce, která není aktivovaná protokolem HTTP.
Během místního testování musíte spustit hostitele poskytovaného nástroji Core Tools (func.exe) místně. Další informace najdete v tématu Azure Functions Core Tools.
Testovací nástroje HTTP
Během vývoje můžete volat libovolný koncový bod funkce z webového prohlížeče, když podporují metodu HTTP GET. Pro jiné metody HTTP, které podporují datové části, jako je POST nebo PUT, ale musíte k vytvoření a odeslání těchto požadavků HTTP do koncových bodů funkce použít testovací nástroj HTTP.
Upozornění
V situacích, kdy vaše požadavky musí obsahovat citlivá data, nezapomeňte použít nástroj, který chrání vaše data a snižuje riziko zveřejnění citlivých dat veřejnosti. Mezi citlivá data, která byste měli chránit, patří: přihlašovací údaje, tajné kódy, přístupové tokeny, klíče rozhraní API, data geografické polohy a osobní údaje.
Udržujte svá data v bezpečí výběrem testovacího nástroje HTTP, který funguje offline nebo místně, nesynchronizuje vaše data do cloudu a nevyžaduje, abyste se přihlásili k online účtu. Některé nástroje můžou také chránit vaše data před náhodným vystavením implementací konkrétních funkcí zabezpečení.
Vyhněte se používání nástrojů, které centrálně ukládají historii požadavků HTTP (včetně citlivých informací), nedodržují osvědčené postupy zabezpečení ani nerespektují obavy týkající se ochrany osobních údajů dat.
Zvažte použití jednoho z těchto nástrojů k bezpečnému odesílání požadavků HTTP do koncových bodů funkce:
- Visual Studio Code s příponou souboru .http ze sady Visual Studio Marketplace, jako je například klient REST
- Visual Studio podporuje soubory .http počínaje verzí 17.8.
- PowerShell Invoke-RestMethod
- Microsoft Edge – nástroj konzoly sítě
- Bruno
- curl
Emulátor místního úložiště
Během místního vývoje můžete použít místní emulátor Azurite při testování funkcí pomocí vazeb Azure Storage (Queue Storage, Blob Storage a Table Storage) bez připojení ke vzdáleným službám úložiště. Azurite se integruje se sadou Visual Studio Code a sadou Visual Studio a můžete ji také spustit z příkazového řádku pomocí npm. Další informace najdete v tématu Použití emulátoru Azurite pro místní vývoj ve službě Azure Storage.
Následující nastavení v Values kolekci souboru local.settings.json říká místnímu hostiteli Functions, aby pro výchozí AzureWebJobsStorage připojení používal Azurite:
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
S touto hodnotou nastavení se všechny triggery nebo vazby Azure Storage, které používají AzureWebJobsStorage jako připojení, při místním spuštění připojují k Azurite. Při použití emulace úložiště během místního spouštění mějte na paměti tyto aspekty:
- Musíte mít nainstalovaný a spuštěný Azurite.
- Před publikováním do Azure byste měli otestovat skutečné připojení úložiště ke službám Azure.
- Při publikování projektu nepublikujte
AzureWebJobsStoragenastavení jakoUseDevelopmentStorage=true. V AzureAzureWebJobsStoragemusí být toto nastavení vždy připojovací řetězec účtu úložiště používaného vaší aplikační funkcí. Další informace najdete na webuAzureWebJobsStorage.
Související články
- Další informace o místním vývoji funkcí pomocí sady Visual Studio najdete v tématu Vývoj Funkcí Azure pomocí sady Visual Studio.
- Další informace o místním vývoji funkcí pomocí nástroje Visual Studio Code na počítači se systémem Mac, Linux nebo Windows najdete v tématu Vývoj funkcí Azure Functions pomocí editoru Visual Studio Code.
- 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.