Dela via


Utveckla Azure Functions med hjälp av Visual Studio Code

Med Azure Functions-tillägget för Visual Studio Code kan du utveckla funktioner lokalt och distribuera dem till Azure. Om den här upplevelsen är din första med Azure Functions kan du läsa mer i En introduktion till Azure Functions.

Azure Functions-tillägget ger följande fördelar:

  • Redigera, skapa och köra funktioner på din lokala utvecklingsdator.
  • Publicera ditt Azure Functions-projekt direkt till Azure.
  • Skriv dina funktioner på olika språk samtidigt som du drar nytta av fördelarna med Visual Studio Code.

Du visar C#-versionen av den här artikeln. Se till att välja önskat programmeringsspråk för Functions i början av artikeln.

Om du inte har använt Functions tidigare kanske du först vill slutföra snabbstartsartikeln i Visual Studio Code.

Du visar Java-versionen av den här artikeln. Se till att välja önskat programmeringsspråk för Functions i början av artikeln.

Om du inte har använt Functions tidigare kanske du först vill slutföra snabbstartsartikeln i Visual Studio Code.

Du visar JavaScript-versionen av den här artikeln. Se till att välja önskat programmeringsspråk för Functions i början av artikeln.

Om du inte har använt Functions tidigare kanske du först vill slutföra snabbstartsartikeln i Visual Studio Code.

Du visar PowerShell-versionen av den här artikeln. Se till att välja önskat programmeringsspråk för Functions i början av artikeln.

Om du inte har använt Functions tidigare kanske du först vill slutföra snabbstartsartikeln i Visual Studio Code.

Du visar Python-versionen av den här artikeln. Se till att välja önskat programmeringsspråk för Functions i början av artikeln.

Om du inte har använt Functions tidigare kanske du först vill slutföra snabbstartsartikeln i Visual Studio Code.

Du visar TypeScript-versionen av den här artikeln. Se till att välja önskat programmeringsspråk för Functions i början av artikeln.

Om du inte har använt Functions tidigare kanske du först vill slutföra snabbstartsartikeln i Visual Studio Code.

Viktigt!

Blanda inte lokal utveckling och portalutveckling för en enda funktionsapp. När du publicerar från ett lokalt projekt till en funktionsapp skriver distributionsprocessen över alla funktioner som du har utvecklat i portalen.

Förutsättningar

  • Visual Studio Code installerat på en av de plattformar som stöds.

  • Azure Functions-tillägget. Du kan också installera Azure Tools-tilläggspaketet, vilket rekommenderas för att arbeta med Azure-resurser.

  • En aktiv Azure-prenumeration. Om du ännu inte har ett konto kan du skapa ett från tillägget i Visual Studio Code.

Du behöver också dessa förutsättningar för att köra och felsöka dina funktioner lokalt. De krävs inte för att bara skapa eller publicera projekt till Azure Functions.

  • Azure Functions Core Tools, som möjliggör en integrerad lokal felsökningsupplevelse. När du har installerat Azure Functions-tillägget är det enklaste sättet att installera eller uppdatera Core Tools genom att köra Azure Functions: Install or Update Azure Functions Core Tools kommandot från kommandopaletten.
  • Node.js, en av de versioner som stöds. node --version Använd kommandot för att kontrollera din version.

Skapa ett Azure Functions-projekt

Med Functions-tillägget kan du skapa det nödvändiga funktionsappprojektet samtidigt som du skapar din första funktion. Använd de här stegen för att skapa en HTTP-utlöst funktion i ett nytt projekt. En HTTP-utlösare är den enklaste funktionsutlösarmallen att demonstrera.

  1. I Visual Studio Code trycker du på F1 för att öppna kommandopaletten och söka efter och köra kommandot Azure Functions: Create New Project.... Välj katalogplatsen för projektarbetsytan och välj sedan Välj.

    Du kan antingen skapa en ny mapp eller välja en tom mapp för projektarbetsytan, men inte välja en projektmapp som redan är en del av en arbetsyta.

    Du kan i stället köra kommandot Azure Functions: Create New Containerized Project... för att även hämta en Dockerfile som genererats för projektet.

  2. När du uppmanas till det väljer du ett språk för projektet. Om det behövs väljer du en specifik språkversion.

  3. Välj funktionsmallen HTTP-utlösare , eller så kan du välja Hoppa över för tillfället för att skapa ett projekt utan en funktion. Du kan alltid lägga till en funktion i projektet senare.

    Dricks

    Du kan visa ytterligare mallar genom att välja alternativet Ändra mallfilter och ange värdet till Kärna eller Alla.

  4. Som funktionsnamn anger du HttpExample, väljer Retur och sedan Funktionsauktorisering .

    Den här auktoriseringsnivån kräver att du anger en funktionsnyckel när du anropar funktionsslutpunkten.

  5. Välj Lägg till i arbetsytan i listrutan.

  6. I fönstret Litar du på författarna till filerna i den här mappen? väljer du Ja.

Visual Studio Code skapar en funktion på ditt valda språk och i mallen för en HTTP-utlöst funktion.

Genererade projektfiler

Projektmallen skapar ett projekt på det valda språket och installerar nödvändiga beroenden. För alla språk har det nya projektet följande filer:

  • host.json: Låter dig konfigurera Functions-värden. De här inställningarna gäller när du kör funktioner lokalt och när du kör dem i Azure. Mer information finns i host.json referens.

  • local.settings.json: Underhåller inställningar som används när du kör funktioner lokalt. De här inställningarna används bara när du kör funktioner lokalt. Mer information finns i Filen Lokala inställningar.

    Viktigt!

    Eftersom den local.settings.json filen kan innehålla hemligheter måste du undanta filen från projektkällans kontroll.

  • Dockerfile (valfritt): Låter dig skapa en containerbaserad funktionsapp från projektet med hjälp av en godkänd basavbildning för projektet. Du får bara den här filen när du kör kommandot Azure Functions: Create New Containerized Project.... Du kan lägga till en Dockerfile i ett befintligt projekt med kommandot func init --docker-only i Core Tools.

Beroende på ditt språk skapas följande andra filer:

En HttpExample.cs klassbiblioteksfil, vars innehåll varierar beroende på om projektet körs i en isolerad arbetsprocess eller i processen med Functions-värden.

  • En pom.xml fil i rotmappen som definierar projekt- och distributionsparametrarna, inklusive projektberoenden och Java-versionen. Pom.xml innehåller också information om de Azure-resurser som skapas under en distribution.

  • En Functions.java fil i din src-sökväg som implementerar funktionen.

Filer som genereras beror på den valda Node.js programmeringsmodellen för Functions:

  • En package.json fil i rotmappen.

  • En namngiven .js fil i mappen src\functions , som innehåller både funktionsdefinitionen och funktionskoden.

En HttpExample-mapp som innehåller:

Filer som genereras beror på den valda Python-programmeringsmodellen för Functions:

  • En requirements.txt fil på projektnivå som visar paket som krävs av Functions.

  • En function_app.py fil som innehåller både funktionsdefinitionen och koden.

Nu kan du köra http-utlösarfunktionen lokalt.

Lägga till en funktion i projektet

Du kan lägga till en ny funktion i ett befintligt projekt baserat på en av de fördefinierade Functions-utlösarmallarna. Om du vill lägga till en ny funktionsutlösare väljer du F1 för att öppna kommandopaletten och letar sedan upp och kör kommandot Azure Functions: Create Function. Följ anvisningarna för att välja din utlösartyp och definiera de attribut som krävs för utlösaren. Om utlösaren kräver en åtkomstnyckel eller anslutningssträng för att ansluta till en tjänst ska du förbereda objektet innan du skapar funktionsutlösaren.

Den här åtgärden lägger till en ny C#-klassbiblioteksfil (.cs) i projektet.

Den här åtgärden lägger till en ny Java-fil (.java) i projektet.

Den här åtgärdens resultat beror på Node.js modellversion.

  • En package.json fil i rotmappen.

  • En namngiven .js fil i mappen src\functions , som innehåller både funktionsdefinitionen och funktionskoden.

Den här åtgärden skapar en ny mapp i projektet. Mappen innehåller en ny function.json fil och den nya PowerShell-kodfilen.

Den här åtgärdens resultat beror på Python-modellversionen.

Visual Studio Code lägger till ny funktionskod antingen till den function_app.py filen (standardbeteende) eller till en annan Python-fil som du har valt.

Ansluta till tjänster

Du kan ansluta funktionen till andra Azure-tjänster genom att lägga till indata- och utdatabindningar. Bindningar ansluter din funktion till andra tjänster utan att du behöver skriva anslutningskoden.

Hur du definierar en utdatabindning som skriver data till en lagringskö beror till exempel på din processmodell:

  1. Om det behövs lägger du till en referens till paketet som stöder bindningstillägget.

  2. Uppdatera funktionsmetoden för att lägga till ett attribut som definierar bindningsparametern, till exempel QueueOutput för en köutdatabindning. Du kan använda ett MultiResponse objekt för att returnera flera meddelanden eller flera utdataströmmar.

Om du till exempel vill lägga till en utdatabindning som skriver data till en lagringskö uppdaterar du funktionsmetoden för att lägga till en bindningsparameter som definieras med hjälp av anteckningen QueueOutput . Objektet OutputBinding<T> representerar de meddelanden som skrivs till en utdatabindning när funktionen är klar.

Hur du definierar utdatabindningen som skriver data till en lagringskö beror till exempel på din Node.js modellversion:

Med hjälp av Node.js v4-modellen måste du manuellt lägga till ett return: alternativ i funktionsdefinitionen storageQueue med hjälp av funktionen på output objektet, som definierar lagringskö för att skriva return utdata. Utdata skrivs när funktionen har slutförts.

Med Visual Studio Code kan du lägga till bindningar i din function.json-fil genom att följa en praktisk uppsättning frågor.

Om du vill lägga till en bindning öppnar du kommandopaletten (F1) och skriver Azure Functions: lägg till bindning..., väljer funktionen för den nya bindningen och följer sedan anvisningarna, som varierar beroende på vilken typ av bindning som läggs till i funktionen.

Följande är exempel på uppmaningar om att definiera en ny lagringsutdatabindning:

Prompt Värde beskrivning
Välj bindningsriktning out Bindningen är en utdatabindning.
Välj bindning med riktning Azure Queue Storage Bindningen är en Azure Storage-köbindning.
Namnet som används för att identifiera den här bindningen i koden msg Namn som identifierar bindningsparametern som refereras till i koden.
Kön som meddelandet ska skickas till outqueue Namnet på kön som bindningen skriver till. När queueName inte finns skapar bindningen den vid första användning.
Välj inställning från "local.settings.json" MyStorageConnection Namnet på en programinställning som innehåller anslutningssträng för lagringskontot. Inställningen AzureWebJobsStorage innehåller anslutningssträng för lagringskontot som du skapade med funktionsappen.

Du kan också högerklicka (Ctrl+ klicka på macOS) direkt på filen function.json i funktionsmappen, välja Lägg till bindning och följa samma frågor.

I det här exemplet läggs följande bindning till i matrisen bindings i din function.json-fil:

{
    "type": "queue",
    "direction": "out",
    "name": "msg",
    "queueName": "outqueue",
    "connection": "MyStorageConnection"
}

Hur du till exempel definierar utdatabindningen som skriver data till en lagringskö beror på din Python-modellversion:

Dekoratören @queue_output på funktionen används för att definiera en namngiven bindningsparameter för utdata till lagringskön, där func.Out definierar vilka utdata som skrivs.

I följande exempel visas funktionsdefinitionen när du har lagt till en utdatabindning för queue storage till en HTTP-utlöst funktion:

Eftersom en HTTP-utlöst funktion också returnerar ett HTTP-svar returnerar funktionen ett MultiResponse objekt som representerar både HTTP- och köutdata.

[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
    FunctionContext executionContext)
{

Det här exemplet är definitionen av objektet MultiResponse som innehåller utdatabindningen:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public IActionResult HttpResponse { get; set; }
}

När du tillämpar det exemplet på ditt eget projekt kan du behöva ändra till och till , beroende på om du använder ASP.NET Core-integrering eller inte.HttpResponseDataIActionResult HttpRequestData HttpRequest

Meddelanden skickas till kön när funktionen är klar. Hur du definierar utdatabindningen beror på din processmodell. Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {

Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

Exempelbindning för Node.js modell v4 är ännu inte tillgänglig.

Hur du definierar utdatabindningen beror på vilken version av din Node.js modell. Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

Hur du definierar utdatabindningen beror på vilken version av Python-modellen du har. Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

Exempelbindning för Node.js modell v4 är ännu inte tillgänglig.

Hur du definierar utdatabindningen beror på vilken version av din Node.js modell. Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

Logga in på Azure

Innan du kan skapa Azure-resurser eller publicera din app måste du logga in på Azure.

  1. Om du inte redan är inloggad går du till aktivitetsfältet och väljer Azure-ikonen. Under Resurser väljer du Logga in på Azure.

    Skärmbild av inloggningen till Azure-fönstret i Visual Studio Code.

    Om du redan är inloggad och kan se dina befintliga prenumerationer går du till nästa avsnitt. Om du ännu inte har ett Azure-konto väljer du Skapa ett Azure-konto. Eleverna kan välja Skapa ett Azure for Students-konto.

  2. När du uppmanas att göra det i webbläsaren väljer du ditt Azure-konto och loggar in med dina autentiseringsuppgifter för Azure-kontot. Om du skapar ett nytt konto kan du logga in när ditt konto har skapats.

  3. När du har loggat in kan du stänga det nya webbläsarfönstret. Prenumerationerna som tillhör ditt Azure-konto visas i sidofältet.

Skapa Azure-resurser

Innan du kan publicera ditt Functions-projekt till Azure måste du ha en funktionsapp och relaterade resurser i din Azure-prenumeration för att kunna köra koden. Funktionsappen är ett körningssammanhang för dina funktioner. När du publicerar från Visual Studio Code till en funktionsapp i Azure paketeras och distribueras projektet till den valda funktionsappen i din Azure-prenumeration.

När du skapar en funktionsapp i Azure kan du välja en snabbfunktionsapp skapa sökväg med standardvärden eller en sökväg som ger dig avancerade alternativ, till exempel att använda befintliga Azure-resurser. På så sätt har du mer kontroll över att skapa fjärrresurserna.

I det här avsnittet skapar du en funktionsapp och relaterade resurser i din Azure-prenumeration. Många av besluten om att skapa resurser fattas för dig baserat på standardbeteenden. Om du vill ha mer kontroll över de skapade resurserna måste du i stället skapa funktionsappen med avancerade alternativ.

  1. I Visual Studio Code väljer du F1 för att öppna kommandopaletten. I kommandotolken (>) anger du och väljer sedan Azure Functions: Create Function App in Azure (Skapa funktionsapp i Azure).

  2. Ange följande information vid anvisningarna:

    Prompt Åtgärd
    Välj prenumeration Välj den Azure-prenumeration som ska användas. Uppmaningen visas inte när du bara har en prenumeration synlig under Resurser.
    Ange ett globalt unikt namn för funktionsappen Ange ett namn som är giltigt i en URL-sökväg. Namnet du anger verifieras för att se till att det är unikt i Azure Functions.
    Välj en körningsstack Välj den språkversion som du kör lokalt.
    Välj en plats för nya resurser Välj en Azure-region. För bättre prestanda väljer du en region nära dig.

    I panelen Azure: Aktivitetslogg visar Azure-tillägget status för enskilda resurser när de skapas i Azure.

    Skärmbild som visar loggen för skapande av Azure-resurser.

  3. När funktionsappen skapas skapas följande relaterade resurser i din Azure-prenumeration. Resurserna namnges baserat på det namn som du angav för funktionsappen.

    • En resursgrupp, som är en logisk container för relaterade resurser.
    • Ett Azure Storage-standardkonto som underhåller tillstånd och annan information om dina projekt.
    • En funktionsapp som tillhandahåller miljön för att köra funktionskoden. Med en funktionsapp kan du gruppera funktioner som en logisk enhet för enklare hantering, distribution och delning av resurser inom samma värdplan.
    • En Azure App Service-plan som definierar den underliggande värden för din funktionsapp.
    • En Application Insights-instans som är ansluten till funktionsappen och som spårar användningen av dina funktioner i appen.

    Ett meddelande visas när funktionsappen har skapats och distributionspaketet har tillämpats.

    Dricks

    Som standard skapas de Azure-resurser som krävs av funktionsappen baserat på det namn du anger för funktionsappen. Som standard skapas resurserna med funktionsappen i samma nya resursgrupp. Om du vill anpassa namnen på de associerade resurserna eller återanvända befintliga resurser publicerar du projektet med avancerade alternativ för att skapa.

Skapa en Azure Container Apps-distribution

Du använder Visual Studio Code för att skapa Azure-resurser för ett containerbaserat kodprojekt. När tillägget identifierar förekomsten av en Dockerfile när resursen skapas, frågar det dig om du vill distribuera containeravbildningen i stället för bara koden. Visual Studio Code skapar en Azure Container Apps-miljö för ditt containerbaserade kodprojekt som är integrerat med Azure Functions. Mer information finns i Azure Container Apps-värdtjänster för Azure Functions.

Kommentar

Containerdistribution kräver Azure Container Apps-tillägget för Visual Studio Code. Det här tillägget är för närvarande i förhandsversion.

Skapandeprocessen beror på om du väljer en snabb skapa eller om du behöver använda avancerade alternativ:

  1. I Visual Studio Code trycker du på F1 för att öppna kommandopaletten och söka efter och köra kommandot Azure Functions: Create Function App in Azure....

  2. När du uppmanas till det väljer du Containeravbildning.

  3. Ange följande information i meddelanderutorna:

    Prompt Urval
    Välj prenumeration Välj den prenumeration som ska användas. Du ser inte den här uppmaningen när du bara har en prenumeration synlig under Resurser.
    Ange ett globalt unikt namn för funktionsappen Ange ett namn som är giltigt i en URL-sökväg. Namnet du skriver verifieras för att se till att det är unikt i Azure Functions.
    Välj en plats för nya resurser För bättre prestanda väljer du en region nära dig.

    Tillägget visar status för enskilda resurser när de skapas i Azure i panelen Azure: Aktivitetslogg .

Mer information om de resurser som krävs för att köra dina containerbaserade funktioner i Container Apps finns i Nödvändiga resurser.

Kommentar

Du kan för närvarande inte använda Visual Studio Code för att distribuera en containerbaserad funktionsapp till en Azure Functions-integrerad Container Apps-miljö. Du måste i stället publicera containeravbildningen till ett containerregister och sedan ange registeravbildningen som distributionskälla för din Container Apps-värdbaserade funktionsapp. Mer information finns i Skapa funktionsappen i en container och Uppdatera en avbildning i registret.

Distribuera projektfiler

Vi rekommenderar att du konfigurerar kontinuerlig distribution så att funktionsappen i Azure uppdateras när du uppdaterar källfilerna på den anslutna källplatsen. Du kan också distribuera dina projektfiler från Visual Studio Code. När du publicerar från Visual Studio Code kan du dra nytta av zip-distributionstekniken.

Viktigt!

Distribution till en befintlig funktionsapp skriver alltid över innehållet i appen i Azure.

  1. I kommandopaletten anger du och väljer sedan Azure Functions: Deploy to Function App (Azure Functions: Distribuera till funktionsapp).

  2. Välj den funktionsapp som du nyss skapade. När du uppmanas att skriva över tidigare distributioner väljer du Distribuera för att distribuera funktionskoden till den nya funktionsappresursen.

  3. När distributionen är klar väljer du Visa utdata för att visa resultatet av skapandet och distributionen, inklusive de Azure-resurser som du skapade. Om du missar meddelandet väljer du klockikonen i det nedre högra hörnet för att se det igen.

    Skärmbild av fönstret Visa utdata.

Hämta URL:en för en HTTP-utlöst funktion i Azure

Om du vill anropa en HTTP-utlöst funktion från en klient behöver du funktionens URL, som är tillgänglig efter distributionen till funktionsappen. Den här URL:en innehåller alla nödvändiga funktionsnycklar. Du kan använda tillägget för att hämta dessa URL:er för dina distribuerade funktioner. Om du bara vill köra fjärrfunktionen i Azure använder du funktionen Kör nu i tillägget.

  1. Välj F1 för att öppna kommandopaletten och leta upp och kör sedan kommandot Azure Functions: Copy Function URL( Kopiera funktions-URL).

  2. Följ anvisningarna för att välja din funktionsapp i Azure och sedan den specifika HTTP-utlösare som du vill anropa.

Funktions-URL:en kopieras till Urklipp, tillsammans med nödvändiga nycklar som skickas av code frågeparametern. Använd ett HTTP-verktyg för att skicka POST-begäranden eller en webbläsare för att skicka GET-begäranden till fjärrfunktionen.

När tillägget hämtar URL:en för en funktion i Azure använder tillägget ditt Azure-konto för att automatiskt hämta de nycklar som behövs för att starta funktionen. Läs mer om funktionsåtkomstnycklar. För att starta icke-HTTP-utlösta funktioner måste du använda administratörsnyckeln.

Kör funktioner

Med Azure Functions-tillägget kan du köra enskilda funktioner. Du kan köra funktioner antingen i projektet på din lokala utvecklingsdator eller i din Azure-prenumeration.

För HTTP-utlösarfunktioner anropar tillägget HTTP-slutpunkten. För andra typer av utlösare anropar tillägget administratörs-API:er för att starta funktionen. Meddelandetexten för den begäran som skickas till funktionen beror på utlösartypen. När en utlösare kräver testdata uppmanas du att ange data i ett specifikt JSON-format.

Kör funktioner i Azure

Följ dessa steg för att köra en funktion i Azure från Visual Studio Code:

  1. I kommandopaletten anger du Azure Functions: Kör funktion nu och väljer din Azure-prenumeration.

  2. I listan väljer du din funktionsapp i Azure. Om du inte ser funktionsappen kontrollerar du att du är inloggad på rätt prenumeration.

  3. I listan väljer du den funktion som du vill köra. I Ange begärandetext skriver du meddelandetexten för begäran och trycker på Retur för att skicka det här begärandemeddelandet till din funktion.

    Standardtexten i Ange begärandetext anger brödtextens format. Om funktionsappen inte har några funktioner visas ett meddelandefel med det här felet.

    När funktionen körs i Azure och returnerar ett svar visar Visual Studio Code ett meddelande.

Du kan också köra funktionen från området Azure: Functions genom att öppna snabbmenyn för den funktion som du vill köra från funktionsappen i din Azure-prenumeration och sedan välja Kör funktion nu....

När du kör dina funktioner i Azure från Visual Studio Code använder tillägget ditt Azure-konto för att automatiskt hämta de nycklar som behövs för att starta funktionen. Läs mer om funktionsåtkomstnycklar. För att starta icke-HTTP-utlösta funktioner måste du använda administratörsnyckeln.

Köra funktioner lokalt

Den lokala körningen är samma körning som är värd för din funktionsapp i Azure. Lokala inställningar läse från filen local.settings.json. Om du vill köra functions-projektet lokalt måste du uppfylla fler krav.

Konfigurera projektet att köras lokalt

Functions-körningen använder ett Azure Storage-konto internt för alla utlösartyper förutom HTTP och webhooks. Därför måste du ange nyckeln Values.AzureWebJobsStorage till ett giltigt Azure Storage-konto anslutningssträng.

I det här avsnittet används Azure Storage-tillägget för Visual Studio Code med Azure Storage Explorer för att ansluta till och hämta lagrings-anslutningssträng.

Så här anger du lagringskontot anslutningssträng:

  1. I Visual Studio öppnar du Cloud Explorer, expanderar lagringskontot>ditt lagringskonto och väljer sedan Egenskaper och kopierar värdet primär anslutningssträng.

  2. I projektet öppnar du filen local.settings.json och anger värdet för nyckeln AzureWebJobsStorage till den anslutningssträng du kopierade.

  3. Upprepa föregående steg för att lägga till unika nycklar i matrisen Värden för alla andra anslutningar som krävs av dina funktioner.

Mer information finns i Filen Lokala inställningar.

Felsöka funktioner lokalt

Om du vill felsöka dina funktioner väljer du F5. Om Core Tools inte är tillgängligt uppmanas du att installera det. När Core Tools installeras och körs visas utdata i terminalen. Det här steget är detsamma som att köra func start core tools-kommandot från terminalen, men med extra build-uppgifter och ett bifogat felsökningsprogram.

När projektet körs kan du använda funktionen Kör funktion nu... i tillägget för att utlösa dina funktioner på samma sätt som när projektet distribueras till Azure. När projektet körs i felsökningsläge slås brytpunkter i Visual Studio Code som du kan förvänta dig.

  1. I kommandopaletten anger du Azure Functions: Kör funktionen nu och väljer Lokalt projekt.

  2. Välj den funktion som du vill köra i projektet och skriv meddelandetexten för begäran i Ange begärandetext. Tryck på Retur för att skicka det här begärandemeddelandet till din funktion. Standardtexten i Ange begärandetext bör ange brödtextens format. Om funktionsappen inte har några funktioner visas ett meddelandefel med det här felet.

  3. När funktionen körs lokalt och när svaret har tagits emot genereras ett meddelande i Visual Studio Code. Information om funktionskörningen visas på terminalpanelen .

Nycklar krävs inte när de körs lokalt, vilket gäller både funktionsnycklar och nycklar på administratörsnivå.

Arbeta med appinställningar lokalt

När du kör i en funktionsapp i Azure lagras de inställningar som krävs av dina funktioner på ett säkert sätt i appinställningarna. Under den lokala utvecklingen läggs de här inställningarna i stället till Values i samlingen i local.settings.json-filen. Filen local.settings.json lagrar även inställningar som används av lokala utvecklingsverktyg.

Objekt i Values samlingen i projektets local.settings.json fil är avsedda att spegla objekt i funktionsappens programinställningar i Azure.

Som standard migreras inte de här inställningarna automatiskt när projektet publiceras till Azure. När publiceringen är klar får du möjlighet att publicera inställningar från local.settings.json till funktionsappen i Azure. Mer information finns i Publicera programinställningar.

Värden i ConnectionStrings publiceras aldrig.

Värden för inställningar för funktionsprogram kan också läsas i koden som miljövariabler. Mer information finns i Miljövariabler.

  • Inställningsvärden för funktionsappen kan också läsas i koden som miljövariabler. Mer information finns i Miljövariabler.
  • Inställningsvärden för funktionsappen kan också läsas i koden som miljövariabler. Mer information finns i Miljövariabler.
  • Inställningsvärden för funktionsappen kan också läsas i koden som miljövariabler. Mer information finns i Miljövariabler.
  • Inställningsvärden för funktionsappen kan också läsas i koden som miljövariabler. Mer information finns i Miljövariabler.

Programinställningar i Azure

Inställningarna i local.settings.json filen i projektet bör vara desamma som programinställningarna i funktionsappen i Azure. Alla inställningar som du lägger till i local.settings.json måste du också lägga till i funktionsappen i Azure. De här inställningarna laddas inte upp automatiskt när du publicerar projektet. På samma sätt måste alla inställningar som du skapar i funktionsappen i portalen laddas ned till ditt lokala projekt.

Publicera programinställningar

Det enklaste sättet att publicera de nödvändiga inställningarna i funktionsappen i Azure är att använda länken Ladda upp inställningar som visas när du har publicerat projektet:

Skärmbild för att ladda upp programinställningar.

Du kan också publicera inställningar med hjälp av kommandot Azure Functions: Upload Local Setting (Ladda upp lokal inställning ) i kommandopaletten. Du kan lägga till enskilda inställningar i programinställningarna i Azure med hjälp av kommandot Azure Functions: Add New Setting (Lägg till ny inställning ).

Dricks

Se till att spara din local.settings.json-fil innan du publicerar den.

Om den lokala filen krypteras dekrypteras, publiceras och krypteras den igen. Om det finns inställningar som har motstridiga värden på de två platserna uppmanas du att välja hur du ska fortsätta.

Visa befintliga appinställningar i området Azure: Functions genom att expandera din prenumeration, din funktionsapp och programinställningar.

 Skärmbild för att visa funktionsappsinställningar i Visual Studio Code.

Ladda ned inställningar från Azure

Om du har skapat programinställningar i Azure kan du ladda ned dem till din local.settings.json-fil med hjälp av kommandot Azure Functions: Ladda ned fjärrinställningar .

Precis som vid uppladdning, om den lokala filen är krypterad, dekrypteras, uppdateras och krypteras den igen. Om det finns inställningar som har motstridiga värden på de två platserna uppmanas du att välja hur du ska fortsätta.

Installera bindningstillägg

Förutom HTTP- och timerutlösare implementeras bindningar i tilläggspaket.

Du måste uttryckligen installera tilläggspaketen för de utlösare och bindningar som behöver dem. Det specifika paket som du installerar beror på projektets processmodell.

Kör kommandot dotnet add package i terminalfönstret för att installera de tilläggspaket som du behöver i projektet. Den här mallen visar hur du lägger till en bindning för ett klassbibliotek för isolerad process:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.<BINDING_TYPE_NAME> --version <TARGET_VERSION>

Ersätt <BINDING_TYPE_NAME> med namnet på paketet som innehåller den bindning du behöver. Du hittar den önskade bindningsreferensartikeln i listan över bindningar som stöds.

Ersätt <TARGET_VERSION> i exemplet med en specifik version av paketet, till exempel 3.0.0-beta5. Giltiga versioner visas på de enskilda paketsidorna på NuGet.org. De huvudversioner som motsvarar den aktuella Functions-körningen anges i referensartikeln för bindningen.

Dricks

Du kan också använda NuGet-kommandona i C# Dev Kit för att installera paket för bindningstillägg.

C#-skript använder tilläggspaket.

Det enklaste sättet att installera bindningstillägg är att aktivera tilläggspaket. När du aktiverar paket installeras automatiskt en fördefinierad uppsättning tilläggspaket.

Om du vill aktivera tilläggspaket öppnar du filen host.json och uppdaterar dess innehåll så att den matchar följande kod:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.*, 4.0.0)"
    }
}

Om du av någon anledning inte kan använda ett tilläggspaket för att installera bindningstillägg för projektet läser du Explicit installera tillägg.

Övervakningsfunktioner

När du kör funktioner lokalt strömmas loggdata till terminalkonsolen. Du kan också hämta loggdata när ditt Functions-projekt körs i en funktionsapp i Azure. Du kan ansluta till strömmande loggar i Azure för att se loggdata nästan i realtid. Du bör aktivera Application Insights för en mer fullständig förståelse av hur din funktionsapp beter sig.

Direktuppspelningsloggar

När du utvecklar ett program är det ofta användbart att se loggningsinformation nästan i realtid. Du kan visa en dataström med loggfiler som genereras av dina funktioner. Aktivera loggar från kommandopaletten med Azure Functions: Start streaming logs kommandot . Det här utdata är ett exempel på strömmande loggar för en begäran till en HTTP-utlöst funktion:

Skärmbild för utdata från strömmande loggar för H T T P-utlösare.

Mer information finns i Strömmande loggar.

Programinsikter

Du bör övervaka körningen av dina funktioner genom att integrera funktionsappen med Application Insights. När du skapar en funktionsapp i Azure Portal sker den här integreringen som standard. När du skapar din funktionsapp under Visual Studio-publiceringen måste du integrera Application Insights själv. Mer information finns i Aktivera Application Insights-integrering.

Mer information om övervakning med Application Insights finns i Övervaka Azure Functions.

C#-skriptprojekt

Som standard skapas alla C#-projekt som C#-kompilerade klassbiblioteksprojekt. Om du föredrar att arbeta med C#-skriptprojekt i stället måste du välja C#-skript som standardspråk i Azure Functions-tilläggsinställningarna:

  1. Välj Inställningar för filinställningar>>.

  2. Gå till Tillägg för användarinställningar>>Azure Functions.

  3. Välj C#Script från Azure Function: Project Language.

När du har slutfört de här stegen inkluderar --csx anrop till underliggande Core Tools alternativet som genererar och publicerar C#-skript (.csx) projektfiler. När du har angett det här standardspråket skapar alla projekt som du skapar som standard C#-skriptprojekt. Du uppmanas inte att välja ett projektspråk när ett standardvärde har angetts. Om du vill skapa projekt på andra språk måste du ändra den här inställningen eller ta bort den från användarens settings.json fil. När du tar bort den här inställningen uppmanas du återigen att välja språk när du skapar ett projekt.

Referens för kommandopaletten

Azure Functions-tillägget ger ett användbart grafiskt gränssnitt i området för att interagera med dina funktionsappar i Azure. Samma funktioner är också tillgängliga som kommandon i kommandopaletten (F1). Dessa Azure Functions-kommandon är tillgängliga:

Azure Functions-kommando beskrivning
Lägg till nya inställningar Skapar en ny programinställning i Azure. Mer information finns i Publicera programinställningar. Du kan också behöva ladda ned den här inställningen till dina lokala inställningar.
Konfigurera distributionskälla Ansluter din funktionsapp i Azure till en lokal Git-lagringsplats. Mer information finns i Kontinuerlig distribution för Azure Functions.
Ansluta till GitHub-lagringsplatsen Ansluter din funktionsapp till en GitHub-lagringsplats.
Url för kopieringsfunktion Hämtar fjärr-URL:en för en HTTP-utlöst funktion som körs i Azure. Mer information finns i Hämta URL:en för den distribuerade funktionen.
Skapa funktionsapp i Azure Skapar en ny funktionsapp i din prenumeration i Azure. Mer information finns i avsnittet om hur du publicerar till en ny funktionsapp i Azure.
Dekryptera inställningar Dekrypterar lokala inställningar som har krypterats av Azure Functions: Kryptera inställningar.
Ta bort funktionsapp Tar bort en funktionsapp från din prenumeration i Azure. När det inte finns några andra appar i App Service-planen får du möjlighet att ta bort det också. Andra resurser, till exempel lagringskonton och resursgrupper, tas inte bort. Om du vill ta bort alla resurser bör du i stället ta bort resursgruppen. Ditt lokala projekt påverkas inte.
Ta bort funktion Tar bort en befintlig funktion från en funktionsapp i Azure. Eftersom den här borttagningen inte påverkar ditt lokala projekt bör du i stället överväga att ta bort funktionen lokalt och sedan publicera om projektet.
Ta bort proxy Tar bort en Azure Functions-proxy från funktionsappen i Azure. Mer information om proxyservrar finns i Arbeta med Azure Functions-proxyservrar.
Ta bort inställning Tar bort en funktionsappinställning i Azure. Den här borttagningen påverkar inte inställningarna i local.settings.json-filen.
Koppla från lagringsplatsen Tar bort den kontinuerliga distributionsanslutningen mellan en funktionsapp i Azure och en lagringsplats för källkontroll.
Ladda ned fjärrinställningar Laddar ned inställningar från den valda funktionsappen i Azure till din local.settings.json-fil. Om den lokala filen krypteras dekrypteras, uppdateras och krypteras den igen. Om det finns inställningar som har motstridiga värden på de två platserna uppmanas du att välja hur du ska fortsätta. Se till att spara ändringar i local.settings.json-filen innan du kör det här kommandot.
Redigera inställningar Ändrar värdet för en befintlig funktionsappinställning i Azure. Det här kommandot påverkar inte inställningarna i din local.settings.json-fil.
Kryptera inställningar Krypterar enskilda objekt i matrisen Values i de lokala inställningarna. I den här filen IsEncrypted är också inställt på true, som anger att inställningarna för lokal körning dekrypterar innan du använder dem. Kryptera lokala inställningar för att minska risken för läckage av värdefull information. I Azure lagras programinställningarna alltid krypterade.
Kör funktion nu Startar en funktion manuellt med hjälp av administratörs-API:er. Det här kommandot används för testning, både lokalt under felsökning och mot funktioner som körs i Azure. När en funktion i Azure startar hämtar tillägget först automatiskt en administratörsnyckel, som används för att anropa de fjärradministratörs-API:er som startar funktioner i Azure. Brödtexten i meddelandet som skickas till API:et beror på typen av utlösare. Timerutlösare kräver inte att du skickar några data.
Initiera Project for Use med VS Code Lägger till nödvändiga Visual Studio Code-projektfiler i ett befintligt Functions-projekt. Använd det här kommandot för att arbeta med ett projekt som du skapade med hjälp av Core Tools.
Installera eller uppdatera Azure Functions Core Tools Installerar eller uppdaterar Azure Functions Core Tools, som används för att köra funktioner lokalt.
Omdistribuera Gör att du kan distribuera om projektfiler från en ansluten Git-lagringsplats till en specifik distribution i Azure. Om du vill publicera om lokala uppdateringar från Visual Studio Code publicerar du projektet igen.
Byt namn på inställningar Ändrar nyckelnamnet för en befintlig funktionsappinställning i Azure. Det här kommandot påverkar inte inställningarna i din local.settings.json-fil. När du har bytt namn på inställningarna i Azure bör du ladda ned ändringarna till det lokala projektet.
Starta om Startar om funktionsappen i Azure. Distribution av uppdateringar startar också om funktionsappen.
Ange AzureWebJobsStorage Anger värdet för programinställningen AzureWebJobsStorage . Den här inställningen krävs av Azure Functions. Den anges när en funktionsapp skapas i Azure.
Start Startar en stoppad funktionsapp i Azure.
Starta direktuppspelningsloggar Startar direktuppspelningsloggarna för funktionsappen i Azure. Använd direktuppspelningsloggar vid fjärrfelsökning i Azure om du behöver se loggningsinformation i nästan realtid. Mer information finns i Strömmande loggar.
Stopp Stoppar en funktionsapp som körs i Azure.
Stoppa direktuppspelningsloggar Stoppar direktuppspelningsloggarna för funktionsappen i Azure.
Växla som platsinställning När den är aktiverad ser du till att en programinställning bevaras för ett visst distributionsfack.
Avinstallera Azure Functions Core Tools Tar bort Azure Functions Core Tools, vilket krävs av tillägget.
Ladda upp lokala inställningar Laddar upp inställningar från din local.settings.json-fil till den valda funktionsappen i Azure. Om den lokala filen är krypterad dekrypteras den, laddas upp och krypteras igen. Om det finns inställningar som har motstridiga värden på de två platserna uppmanas du att välja hur du ska fortsätta. Se till att spara ändringar i local.settings.json-filen innan du kör det här kommandot.
Visa incheckning i GitHub Visar den senaste incheckningen i en specifik distribution när funktionsappen är ansluten till en lagringsplats.
Visa distributionsloggar Visar loggarna för en specifik distribution till funktionsappen i Azure.

Nästa steg

Mer information om Azure Functions Core Tools finns i Arbeta med Azure Functions Core Tools.

Mer information om hur du utvecklar funktioner som .NET-klassbibliotek finns i Azure Functions C#-utvecklarreferens. Den här artikeln innehåller också länkar till exempel på hur du använder attribut för att deklarera de olika typer av bindningar som stöds av Azure Functions.