Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När det är möjligt bör du skapa och verifiera ditt Azure Functions-kodprojekt i en lokal utvecklingsmiljö. Azure Functions Core Tools tillhandahåller en lokal körningsversion av Azure Functions som integreras med populära utvecklingsverktyg för en integrerad utveckling, felsökning och distributioner. Dina lokala funktioner kan till och med ansluta till Live Azure-tjänster.
Den här artikeln innehåller några delade riktlinjer för lokal utveckling, till exempel att arbeta med filenlocal.settings.json. Den länkar också till miljöspecifik vägledning för utveckling.
Tips/Råd
Du hittar detaljerad information om hur du utvecklar funktioner lokalt i de länkade IDE-specifika vägledningsartiklarna.
Lokala utvecklingsmiljöer
Hur du utvecklar funktioner på din lokala dator beror på dina språk - och verktygsinställningar. Se till att välja önskat språk överst i artikeln.
Tips/Råd
All lokal utveckling är beroende av Azure Functions Core Tools för att tillhandahålla körning av funktioner för felsökning i en lokal miljö.
Du kan använda dessa utvecklingsmiljöer för att koda funktioner lokalt på önskat språk:
Miljö | beskrivning |
---|---|
Visual Studio | Azure Functions-verktygen ingår i Azure-utvecklingsarbetsbelastningen i Visual Studio. Gör att du kan kompilera och distribuera C#-funktionskoden till Azure som ett .NET-klassbibliotek. Innehåller Core Tools för lokal testning. Mer information finns i Skapa din första C#-funktion i Azure med Hjälp av Visual Studio |
Visual Studio Code | Azure Functions-tillägget för Visual Studio Code lägger till Functions-stöd i Visual Studio Code. Kräver kärnverktygen. Stöder utveckling i Linux, macOS och Windows. Mer information finns i Skapa din första funktion med Visual Studio Code. |
Kommandotolken eller terminalen | Azure Functions Core Tools tillhandahåller kärnkörning och mallar för att skapa funktioner som möjliggör lokal utveckling. Stöder utveckling i Linux, macOS och Windows. Mer information finns i Skapa en C#-funktion i Azure från kommandoraden. |
Miljö | beskrivning |
---|---|
Maven | Maven-arketyp använder Core Tools för att möjliggöra utveckling av Java-funktioner. Stöder utveckling i Linux, macOS och Windows. Mer information finns i Skapa din första funktion med Java och Maven. |
Visual Studio Code | Azure Functions-tillägget för Visual Studio Code lägger till Functions-stöd i Visual Studio Code. Kräver kärnverktyg. Stöder utveckling i Linux, macOS och Windows. Mer information finns i Skapa din första funktion med Visual Studio Code. |
IntelliJ IDEA | Maven-archetyp och Core Tools låter dig utveckla dina funktioner med hjälp av IntelliJ. Mer information finns i Skapa din första Java-funktion i Azure med IntelliJ. |
Eclipse | Med Maven-arketyp och kärnverktyg kan du utveckla dina funktioner med Eclipse. Mer information finns i Skapa din första Java-funktion i Azure med ecplise. |
Miljö | beskrivning |
---|---|
Visual Studio Code | Azure Functions-tillägget för Visual Studio Code lägger till Functions-stöd i Visual Studio Code. Kräver grundverktygen. Stöder utveckling i Linux, macOS och Windows. Mer information finns i Skapa din första funktion med Visual Studio Code. |
Kommandotolken eller terminalen | Azure Functions Core Tools tillhandahåller kärnkörning och mallar för att skapa funktioner som möjliggör lokal utveckling. Stöder utveckling i Linux, macOS och Windows. Mer information finns i Skapa en Node.js funktion i Azure från kommandoraden. |
Miljö | beskrivning |
---|---|
Visual Studio Code | Azure Functions-tillägget för Visual Studio Code lägger till Functions-stöd i Visual Studio Code. Kräver Kärnverktyg. Stöder utveckling i Linux, macOS och Windows. Mer information finns i Skapa din första funktion med Visual Studio Code. |
Kommandotolken eller terminalen | Azure Functions Core Tools tillhandahåller kärnkörning och mallar för att skapa funktioner som möjliggör lokal utveckling. Stöder utveckling i Linux, macOS och Windows. Mer information finns i Skapa en PowerShell-funktion i Azure från kommandoraden. |
Miljö | beskrivning |
---|---|
Visual Studio Code | Azure Functions-tillägget för Visual Studio Code lägger till Functions-stöd i Visual Studio Code. Kräver kärnverktygen. Stöder utveckling i Linux, macOS och Windows. Mer information finns i Skapa din första funktion med Visual Studio Code. |
Kommandotolken eller terminalen | Azure Functions Core Tools tillhandahåller kärnkörning och mallar för att skapa funktioner som möjliggör lokal utveckling. Stöder utveckling i Linux, macOS och Windows. Mer information finns i Skapa en Python-funktion i Azure från kommandoraden. |
Med var och en av dessa lokala utvecklingsmiljöer kan du skapa funktionsappprojekt och använda fördefinierade funktionsmallar för att skapa nya funktioner. Var och en använder Core Tools så att du kan testa och felsöka dina funktioner mot den verkliga Functions-körningen på din egen dator precis som andra appar. Du kan också publicera ditt funktionsappsprojekt från någon av dessa miljöer till Azure.
Lokala projektfiler
En Functions-projektkatalog innehåller följande filer i projektrotmappen, oavsett språk:
Filnamn | beskrivning |
---|---|
host.json | Mer information finns i referensen för host.json. |
local.settings.json | Inställningar som används av Core Tools när de körs lokalt, inklusive appinställningar. Mer information finns i filen med lokala inställningar. |
.gitignore | Förhindrar att den local.settings.json filen publiceras av misstag till en Git-lagringsplats. Mer information finns i filen med lokala inställningar. |
.vscode\extensions.json | Inställningsfil som används när du öppnar projektmappen i Visual Studio Code. |
Andra filer i projektet beror på ditt språk och specifika funktioner. Mer information finns i utvecklarguiden för ditt språk.
Fil för lokala inställningar
Filen local.settings.json
lagrar appinställningar och inställningar som används av lokala utvecklingsverktyg. Inställningar i local.settings.json
filen används endast när du kör projektet lokalt. När du publicerar projektet i Azure måste du också lägga till nödvändiga inställningar i appinställningarna för funktionsappen.
Viktigt!
local.settings.json
Eftersom filen kan innehålla hemligheter, till exempel anslutningssträngar, bör du vara försiktig med att använda källkontroll. Verktyg som stöder Functions ger sätt att synkronisera inställningar i local.settings.json
filen med appinställningarna i funktionsappen som projektet distribueras till.
Filen local.settings.json
har den här strukturen:
{
"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>"
}
}
De här inställningarna stöds när du kör projekt lokalt:
Inställning | beskrivning |
---|---|
IsEncrypted |
När den här inställningen är inställd true på krypteras alla värden med en lokal datornyckel. Används med func settings kommandon. Standardvärdet är false . Du kanske vill kryptera local.settings.json filen på den lokala datorn när den innehåller hemligheter, till exempel tjänst anslutningssträng. Värdprogrammet dekrypterar automatiskt inställningarna när det körs.
func settings decrypt Använd kommandot innan du försöker läsa lokalt krypterade inställningar. |
Values |
Samling programinställningar som används när ett projekt körs lokalt. Dessa nyckel/värde-par (strängsträng) motsvarar programinställningar i funktionsappen i Azure, till exempel AzureWebJobsStorage . Många utlösare och bindningar har en egenskap som refererar till en anslutningssträng appinställning, till exempel Connection för Blob Storage-utlösaren. För dessa egenskaper behöver du en programinställning som definierats i matrisen Values . I den efterföljande tabellen finns en lista över vanliga inställningar. Värden måste vara strängar och inte JSON-objekt eller matriser. Inställningsnamn kan inte innehålla en dubbel understrykning ( __ ) och bör inte innehålla ett kolon (: ). Dubbla understrykningstecken reserveras av körtiden, medan kolonet är reserverat för att stödja beroendeinjektion. |
Host |
Inställningarna i det här avsnittet anpassar Functions-värdprocessen när du kör projekt lokalt. De här inställningarna är separata från inställningarna för host.json, som även gäller när du kör projekt i Azure. |
LocalHttpPort |
Anger standardporten som används när du kör den lokala Functions-värd (func host start och func run ). Kommandoradsalternativet --port har företräde framför den här inställningen. När du till exempel kör i Visual Studio IDE kan du ändra portnumret genom att navigera till fönstret Projektegenskaper –> Felsöka och uttryckligen ange portnumret i ett host start --port <your-port-number> kommando som kan anges i fältet "Programargument". |
CORS |
Definierar ursprung som tillåts för resursdelning mellan ursprung (CORS). Ursprung anges som en kommaavgränsad lista utan blanksteg. Jokertecknets värde (*) stöds, vilket tillåter begäranden från alla ursprung. |
CORSCredentials |
När den är inställd på true , tillåter withCredentials begäranden. |
ConnectionStrings |
En samling. Använd inte den här samlingen för de anslutningssträng som används av dina funktionsbindningar. Den här samlingen används endast av ramverk som vanligtvis får anslutningssträng från ConnectionStrings avsnittet i en konfigurationsfil, till exempel Entity Framework. Anslutningssträngar i det här objektet läggs till i miljön med providertypen System.Data.SqlClient. Objekt i den här samlingen publiceras inte i Azure med andra appinställningar. Du måste uttryckligen lägga till dessa värden i Connection strings samlingen med dina funktionsappinställningar. Om du skapar en SqlConnection i din funktionskod bör du lagra anslutningssträngens värde tillsammans med dina andra anslutningar i programinställningar i portalen. |
Följande programinställningar kan inkluderas i matrisen Values
när du kör lokalt:
Inställning | Värden | beskrivning |
---|---|---|
AzureWebJobsStorage |
Lagringskonto anslutningssträng, ellerUseDevelopmentStorage=true |
Innehåller anslutningssträng för ett Azure Storage-konto. Krävs när du använder andra utlösare än HTTP. Mer information finns i referensen AzureWebJobsStorage .När du har installerat Azurite-emulatorn lokalt och du har angett AzureWebJobsStorage till UseDevelopmentStorage=true använder Core Tools emulatorn. Mer information finns i Lokal lagringsemulator. |
AzureWebJobs.<FUNCTION_NAME>.Disabled |
true |false |
Om du vill inaktivera en funktion när den körs lokalt lägger du till "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" i samlingen, där <FUNCTION_NAME> är namnet på funktionen. Mer information finns i Inaktivera funktioner i Azure Functions. |
FUNCTIONS_WORKER_RUNTIME |
dotnet dotnet-isolated node java powershell python |
Specificerar målspråket för Functions-körningsmiljön. Krävs för version 2.x och senare av Functions-körningen. Den här inställningen genereras för projektet av Core Tools. Mer information finns i referensen FUNCTIONS_WORKER_RUNTIME . |
FUNCTIONS_WORKER_RUNTIME_VERSION |
~7 |
Anger att du ska använda PowerShell 7 när du kör lokalt. Om den inte har angetts används PowerShell Core 6. Den här inställningen används bara när du kör lokalt. PowerShell-körningsversionen bestäms av platskonfigurationsinställningen powerShellVersion när den körs i Azure, som kan anges i portalen. |
Synkronisera inställningar
När du utvecklar dina funktioner lokalt måste alla lokala inställningar som krävs av din app också finnas i appinställningarna för funktionsappen som koden distribueras till. Du kan också behöva ladda ned aktuella inställningar från funktionsappen till ditt lokala projekt. Du kan konfigurera appinställningar manuellt i Azure Portal, men med följande verktyg kan du även synkronisera appinställningar med lokala inställningar i projektet:
Utlösare och bindningar
När du utvecklar dina funktioner lokalt måste du ta hänsyn till utlösar- och bindningsbeteenden. För HTTP-utlösare kan du anropa HTTP-slutpunkten på den lokala datorn med hjälp av http://localhost/
. För icke-HTTP-utlösta funktioner finns det flera alternativ att köra lokalt:
- Det enklaste sättet att testa bindningar under lokal utveckling är att använda anslutningssträng som är inriktade på Live Azure-tjänster. Du kan rikta livetjänster genom att lägga till lämpliga anslutningssträng inställningar i matrisen
Values
i local.settings.json-filen. När du gör detta kan lokala körningar under testningen påverka dina produktionstjänster. Överväg i stället att konfigurera separata tjänster som ska användas under utveckling och testning och sedan byta till olika tjänster under produktionen. - För lagringsbaserade utlösare kan du använda en lokal lagringsemulator.
- Du kan köra icke-HTTP-utlösarfunktioner manuellt med hjälp av särskilda administratörsslutpunkter. Mer information finns i Köra en funktion som inte är HTTP-utlöst manuellt.
Under lokal testning måste du köra värden som Core Tools tillhandahåller (func.exe) lokalt. Mer information finns i Azure Functions Core Tools.
HTTP-testverktyg
Under utvecklingen är det enkelt att anropa någon av dina funktionsslutpunkter från en webbläsare när de stöder HTTP GET-metoden. För andra HTTP-metoder som stöder nyttolaster, till exempel POST eller PUT, måste du dock använda ett HTTP-testverktyg för att skapa och skicka dessa HTTP-begäranden till funktionsslutpunkterna.
Varning
För scenarier där dina begäranden måste innehålla känsliga data ska du använda ett verktyg som skyddar dina data och minskar risken för att exponera känsliga data för allmänheten. Känsliga data som du bör skydda kan vara: autentiseringsuppgifter, hemligheter, åtkomsttoken, API-nycklar, geoplatsdata, till och med personliga data.
Du kan skydda dina data genom att välja ett HTTP-testverktyg som fungerar antingen offline eller lokalt, inte synkroniserar dina data till molnet och inte kräver att du loggar in på ett onlinekonto. Vissa verktyg kan också skydda dina data från oavsiktlig exponering genom att implementera specifika säkerhetsfunktioner.
Undvik att använda verktyg som lagrar historiken för HTTP-begäranden centralt (inklusive känslig information), inte följer bästa säkerhetsmetoder eller inte respekterar datasekretess.
Överväg att använda något av dessa verktyg för att skicka HTTP-begäranden på ett säkert sätt till funktionsslutpunkterna:
- Visual Studio Code med ett tillägg från Visual Studio Marketplace, till exempel REST Client
- PowerShell Invoke-RestMethod
- Microsoft Edge – verktyg för nätverkskonsol
- Bruno
- curl
Emulator för lokal lagring
Under den lokala utvecklingen kan du använda den lokala Azurite-emulatorn när du testar funktioner med Azure Storage-bindningar (Queue Storage, Blob Storage och Table Storage) utan att behöva ansluta till fjärrlagringstjänster. Azurite integreras med Visual Studio Code och Visual Studio, och du kan också köra det från kommandotolken med npm. Mer information finns i Använda Azurite-emulatorn för lokal Azure Storage-utveckling.
Följande inställning i Values
samlingen av filen local.settings.json instruerar den lokala Functions-värden att använda Azurite för standardanslutningen AzureWebJobsStorage
:
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
Med det här inställningsvärdet ansluter alla Azure Storage-utlösare eller bindningar som använder AzureWebJobsStorage
som anslutning till Azurite när de körs lokalt. Tänk på följande när du använder lagringsemulering under lokal körning:
- Du måste ha Azurite installerat och köra.
- Du bör testa med en faktisk lagringsanslutning till Azure-tjänster innan du publicerar till Azure.
- När du publicerar projektet ska du inte publicera inställningen
AzureWebJobsStorage
somUseDevelopmentStorage=true
. I AzureAzureWebJobsStorage
måste inställningen alltid vara anslutningssträng för det lagringskonto som används av funktionsappen. Mer information finns iAzureWebJobsStorage
.
Relaterade artiklar
- Mer information om lokal utveckling av funktioner med Hjälp av Visual Studio finns i Utveckla Azure Functions med Visual Studio.
- Mer information om lokal utveckling av funktioner med Visual Studio Code på en Mac-, Linux- eller Windows-dator finns i Utveckla Azure Functions med hjälp av Visual Studio Code.
- Mer information om hur du utvecklar funktioner från kommandotolken eller terminalen finns i Arbeta med Azure Functions Core Tools.