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é, měli byste vytvořit a ověřit projekt kódu Azure Functions v místním vývojovém prostředí. Azure Functions Core Tools poskytuje 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ů. Ujistěte se, že jste v horní části článku zvolili 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í.
Tato vývojová prostředí můžete použít k místnímu kódování funkcí 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. Umožňuje zkompilovat a nasadit kód funkce jazyka C# 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 nástroje „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 nástroje 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 nástroje 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 nástroje Core. 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ý 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 v jakékoli jiné 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í používaná nástroji Core Tools 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 se používají jenom v místním prostředí projektu. Při publikování projektu do Azure nezapomeňte do nastavení aplikace pro aplikaci funkcí přidat všechna požadovaná nastavení.
Důležité
local.settings.json
Vzhledem k tomu, že soubor může obsahovat tajné kódy, jako jsou připojovací řetězce, měli byste postupovat opatrně, abyste se zavázali ke správě 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 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 (: ). 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 prostředí Visual Studio IDE můžete změnit číslo portu tak, že přejdete do okna "Vlastnosti projektu - Ladění" a explicitně zadáte číslo portu v příkazu, který lze uvést v poli "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, měli byste uložit hodnotu připojovacího řetězce s ostatními připojeními v 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 |
dotnet dotnet-isolated node java powershell python |
Označuje cílový jazyk běhového prostředí 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á 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. |
Synchronizace nastavení
Při místním vývoji funkcí musí být v nastavení aplikace aplikace, do které je váš kód nasazený, všechna místní nastavení požadovaná vaší aplikací. 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í je potřeba vzít v úvahu chování triggerů a vazeb. Pro triggery HTTP můžete volat koncový bod HTTP na místním počítači pomocí http://localhost/
. U funkcí, které nejsou aktivované protokolem HTTP, existuje několik možností, jak spustit místně:
- Nejjednodušší způsob, jak otestovat vazby během místního vývoje, je použít připojovací řetězec, které cílí na živé služby Azure. Můžete cílit na živé služby tím, že do pole
Values
v souboru local.settings.json přidáte příslušná nastavení připojovacích řetězců. 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 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 můžete použít emulátor místního úložiště.
- Funkce triggeru jiného typu než HTTP můžete spustit 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 je snadné volat všechny koncové body 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, údaje o geografické poloze, dokonce i osobní údaje.
Svá data můžete zabezpečit tak, že zvolíte testovací nástroj HTTP, který funguje offline nebo místně, nesynchronizuje vaše data do cloudu a nevyžaduje přihlášení 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 rozšířením z Visual Studio Marketplace, jako například REST Client
- 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 při testování funkcí pomocí vazeb Azure Storage (Queue Storage, Blob Storage a Table Storage) použít místní emulátor Azurite, aniž byste se museli připojovat 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
AzureWebJobsStorage
nastavení jakoUseDevelopmentStorage=true
. V AzureAzureWebJobsStorage
musí 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.