Dela via


Hantera din funktionsapp

I Azure Functions tillhandahåller en funktionsapp körningskontexten för dina enskilda funktioner. Funktionsappbeteenden gäller för alla funktioner som hanteras av en viss funktionsapp. Alla funktioner i en funktionsapp måste ha samma språk.

Enskilda funktioner i en funktionsapp distribueras tillsammans och skalas tillsammans. Alla funktioner i samma funktionsapp delar resurser, per instans, som funktionsappen skalar.

Anslutningssträngar, miljövariabler och andra programinställningar definieras separat för varje funktionsapp. Alla data som måste delas mellan funktionsappar ska lagras externt i ett sparat lager.

Kom igång i Azure-portalen

Kommentar

På grund av begränsningar för redigering av funktionskod i Azure-portalen bör du utveckla dina funktioner lokalt och publicera kodprojektet till en funktionsapp i Azure. Mer information finns i Utvecklingsbegränsningar i Azure-portalen

Följ dessa steg om du vill visa appinställningarna i funktionsappen:

  1. Logga in på Azure Portal med ditt Azure-konto. Sök efter funktionsappen och välj den.

  2. I den vänstra rutan i funktionsappen expanderar du Inställningar, väljer Miljövariabler och väljer sedan fliken Appinställningar.

    Skärmbild som visar hur du väljer sidan Appinställningar i en funktionsapp.

Arbeta med programinställningar

Förutom de fördefinierade appinställningar som används av Azure Functions kan du skapa valfritt antal appinställningar, vilket krävs av funktionskoden. Mer information finns i Referens för appinställningar för Azure Functions.

De här inställningarna lagras krypterade. Mer information finns i Säkerhet för appinställningar.

Du kan hantera appinställningar från Azure-portalen och med hjälp av Azure CLI och Azure PowerShell. Du kan också hantera appinställningar från Visual Studio Code och från Visual Studio.

Information om hur du visar dina appinställningar finns i Kom igång i Azure-portalen.

Fliken Appinställningar har inställningar som används av funktionsappen:

  1. Om du vill se appinställningarnas värden väljer du Visa värden.

  2. Om du vill lägga till en inställning väljer du + Lägg till och anger sedan namn och värde för det nya nyckel/värde-paret.

    Skärmbild som visar sidan Appinställningar i en funktionsapp.

Använda programinställningar

Inställningsvärden för funktionsappen kan också läsas i koden som miljövariabler. Mer information finns i avsnittet Miljövariabler i dessa språkspecifika referensartiklar:

När du utvecklar en funktionsapp lokalt måste du underhålla lokala kopior av dessa värden i local.settings.json-projektfilen. Mer information finns i Filen Lokala inställningar.

FTPS-distributionsinställningar

Azure Functions har stöd för distribution av projektkod till funktionsappen med hjälp av FTPS. Eftersom den här distributionsmetoden kräver att du synkroniserar utlösare rekommenderas det inte. Om du vill överföra projektfiler på ett säkert sätt använder du alltid FTPS och inte FTP.

Använd någon av följande metoder för att hämta de autentiseringsuppgifter som krävs för FTPS-distribution:

Du kan hämta autentiseringsuppgifterna för FTPS-publicering i Azure-portalen genom att ladda ned publiceringsprofilen för funktionsappen.

Viktigt!

Publiceringsprofilen innehåller viktiga säkerhetsautentiseringsuppgifter. Skydda alltid den nedladdade filen på den lokala datorn.

Så här laddar du ned publiceringsprofilen för funktionsappen:

  1. Välj funktionsappens översiktssida och välj sedan Hämta publiceringsprofil.

    Hämta publiceringsprofil

  2. Spara och kopiera innehållet i filen.

  1. Leta upp elementet publishProfile med attributet publishMethod="FTP"i filen . I det här elementet innehåller attributen publishUrl, userNameoch userPWD mål-URL och autentiseringsuppgifter för FTPS-publicering.

Typ av värdplan

När du skapar en funktionsapp skapar du också en värdplan där appen körs. En plan kan ha en eller flera funktionsappar. Funktionerna, skalningen och prissättningen för dina funktioner beror på typen av plan. Mer information finns i Azure Functions-värdalternativ.

Du kan fastställa vilken typ av plan som används av funktionsappen från Azure-portalen eller med hjälp av Azure CLI- eller Azure PowerShell-API:er.

Följande värden anger plantypen:

Abonnemangstyp Azure Portal Azure CLI/PowerShell
Förbrukning Förbrukning Dynamic
Premium ElasticPremium ElasticPremium
Dedikerad (App Service) Olika Olika
  1. Information om vilken typ av plan som används av funktionsappen finns i App Service-planensidan Översikt för funktionsappen i Azure-portalen.

    Skärmbild som visar länken apptjänstplan på sidan Översikt för en funktionsapp.

  2. Om du vill se prisnivån väljer du namnet på App Service-planen och väljer sedan Inställningar > Egenskaper i det vänstra fönstret.

Planera migrering

Du kan migrera en funktionsapp mellan en förbrukningsplan och en Premium-plan i Windows. Tänk på följande när du migrerar mellan planer:

  • Direktmigrering till en dedikerad plan (App Service) stöds inte.
  • Migrering stöds inte i Linux.
  • Källplanen och målplanen måste finnas i samma resursgrupp och geografiska region. Mer information finns i Flytta en app till en annan App Service-plan.
  • De specifika CLI-kommandona beror på migreringens riktning.
  • Stilleståndstid i funktionskörningarna inträffar när funktionsappen migreras mellan planerna.
  • Tillstånd och annat appspecifikt innehåll underhålls eftersom samma Azure Files-resurs används av appen både före och efter migreringen.

Du kan migrera din plan med hjälp av följande verktyg:

Du kan använda Azure-portalen för att växla till en annan plan.

Välj riktningen för migreringen för din app i Windows.

  1. I Azure-portalen går du till din förbrukningsplanapp och väljer Ändra App Service-plan under App Service-plan.

  2. Välj Premium under Plantyp, skapa en ny Premium-plan och välj OK.

Mer information finns i Flytta en app till en annan App Service-plan.

Hämta funktionsåtkomstnycklar

HTTP-utlösta funktioner kan vanligtvis anropas med hjälp av en URL i formatet: https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. När auktoriseringen till funktionen har angetts som ett annat värde än anonymousmåste du även ange en åtkomstnyckel i din begäran. Åtkomstnyckeln kan antingen anges i URL:en med hjälp av frågesträngen ?code= eller i begärandehuvudet. Mer information finns i Funktionsåtkomstnycklar. Det finns flera sätt att hämta dina åtkomstnycklar.

  1. Logga in på Azure-portalen och sök sedan efter och välj Funktionsapp.

  2. Välj den funktion som du vill verifiera.

  3. I den vänstra rutan expanderar du Functions och väljer sedan Appnycklar.

    Sidan Appnycklar visas. På den här sidan visas värdnycklarna, som kan användas för att komma åt alla funktioner i appen. Systemnyckeln visas också, vilket ger alla åtkomst på administratörsnivå till alla funktionsapp-API:er.

Du kan också öva på minsta möjliga behörighet genom att använda nyckeln för en specifik funktion. Det gör du genom att välja Funktionsnycklar under Utvecklare i din HTTP-utlösta funktion.

Utvecklingsbegränsningar i Azure-portalen

Tänk på dessa begränsningar när du utvecklar dina funktioner i Azure-portalen:

  • Redigering i portalen stöds endast för funktioner som har skapats eller senast ändrats i Azure-portalen.
  • Redigering i portalen stöds endast för JavaScript-, PowerShell-, Python- och C#-skriptfunktioner.
  • Redigering i portalen stöds inte i förhandsversionen av Flex Consumption-planen.
  • När du distribuerar kod till en funktionsapp utanför Azure-portalen kan du inte längre redigera någon av koden för funktionsappen i portalen. I det här fallet fortsätter du bara att använda lokal utveckling.
  • För kompilerade C#-funktioner och Java-funktioner kan du skapa funktionsappen och relaterade resurser i portalen. Du måste dock skapa funktionskodprojektet lokalt och sedan publicera det till Azure.

När det är möjligt kan du utveckla dina funktioner lokalt och publicera kodprojektet till en funktionsapp i Azure. Mer information finns i Koda och testa Azure Functions lokalt.

Installera tillägg manuellt

C#-klassbiblioteksfunktioner kan innehålla NuGet-paketen för bindningstillägg direkt i klassbiblioteksprojektet. För andra non-.NET språk och C#-skript bör du använda tilläggspaket. Om du måste installera tillägg manuellt kan du göra det med hjälp av Azure Functions Core Tools lokalt. Om du inte kan använda tilläggspaket och bara kan arbeta i portalen måste du använda Avancerade verktyg (Kudu) för att manuellt skapa filen extensions.csproj direkt på webbplatsen. Se till att först ta bort elementet extensionBundle från host.json-filen.

Samma process fungerar för alla andra filer som du behöver lägga till i din app.

Viktigt!

När det är möjligt ska du inte redigera filer direkt i funktionsappen i Azure. Vi rekommenderar att du laddar ned dina appfiler lokalt, använder Core Tools för att installera tillägg och andra paket, validera dina ändringar och sedan publicera om appen med core tools eller någon av de andra distributionsmetoder som stöds.

Med Functions-redigeraren som är inbyggd i Azure-portalen kan du uppdatera funktionskoden och konfigurationsfilerna direkt i portalen:

  1. Välj din funktionsapp och välj sedan Funktioner under Funktioner.

  2. Välj din funktion och välj Kod + test under Utvecklare.

  3. Välj filen som ska redigeras och välj Spara när du är klar.

Filer i appens rot, till exempel function.proj eller extensions.csproj, måste skapas och redigeras med hjälp av Avancerade verktyg (Kudu):

  1. Välj din funktionsapp, expandera Utvecklingsverktyg och välj sedan Avancerade verktyg>.

  2. Om du uppmanas att göra det loggar du in på SCM-webbplatsen (Source Control Manager) med dina Azure-autentiseringsuppgifter.

  3. På menyn Felsökningskonsol väljer du CMD.

  4. Gå till .\site\wwwroot, välj plusknappen (+) längst upp och välj Ny fil.

  5. Ge filen ett namn, till exempel extensions.csproj, och tryck sedan på Retur.

  6. Välj knappen Redigera bredvid den nya filen, lägg till eller uppdatera kod i filen och välj sedan Spara.

  7. För en projektfil som extensions.csproj kör du följande kommando för att återskapa tilläggsprojektet:

    dotnet build extensions.csproj
    

Plattformsfunktioner

Funktionsappar körs på Azure App Service-plattformen, vilket underhåller dem. Därför har dina funktionsappar åtkomst till de flesta funktionerna i Azures kärnwebbvärdplattform. När du använder Azure-portalen är den vänstra rutan där du kommer åt de många funktionerna i App Service-plattformen som du kan använda i dina funktionsappar.

Följande matris anger funktionsstöd för Azure-portalen genom värdplan och operativsystem:

Funktion Förbrukningsplan Premiumplan Dedikerad plan
Avancerade verktyg (Kudu) Windows: ✔
Linux: X
App Service-redigeraren Windows: ✔
Linux: X
Windows: ✔
Linux: X
Windows: ✔
Linux: X
Säkerhetskopior X X
Konsol Windows: kommandorad
Linux: X
Windows: kommandorad
Linux: SSH
Windows: kommandorad
Linux: SSH

Resten av den här artikeln fokuserar på följande funktioner i portalen som är användbara för dina funktionsappar:

Mer information om hur du arbetar med App Service-inställningar finns i Konfigurera Azure App Service-inställningar.

App Service-redigeraren

App Service-redigeraren är en avancerad portalredigerare som du kan använda för att ändra JSON-konfigurationsfiler och kodfiler på samma sätt. Om du väljer det här alternativet startas en separat webbläsarflik med en grundläggande redigerare. Med den här redigeraren kan du integrera med Git-lagringsplatsen, köra och felsöka kod och ändra funktionsappsinställningar. Den här redigeraren ger en förbättrad utvecklingsmiljö för dina funktioner jämfört med den inbyggda funktionsredigeraren.

Skärmbild som visar App Service-redigeraren.

Vi rekommenderar att du överväger att utveckla dina funktioner på den lokala datorn. När du utvecklar lokalt och publicerar till Azure är dina projektfiler skrivskyddade i Azure-portalen. Mer information finns i Koda och testa Azure Functions lokalt.

Konsol

Konsolen i portalen är ett perfekt utvecklarverktyg när du föredrar att interagera med din funktionsapp från kommandoraden. Vanliga kommandon är katalog- och filskapande och navigering, samt körning av batchfiler och skript.

Skärmbild som visar funktionsappkonsolen.

När du utvecklar lokalt rekommenderar vi att du använder Azure Functions Core Tools och Azure CLI.

Avancerade verktyg (Kudu)

De avancerade verktygen för App Service (kallas även Kudu) ger åtkomst till avancerade administrativa funktioner i funktionsappen. Från Kudu hanterar du systeminformation, appinställningar, miljövariabler, webbplatstillägg, HTTP-huvuden och servervariabler. Du kan också starta Kudu genom att bläddra till SCM-slutpunkten för din funktionsapp, till exempel: https://<myfunctionapp>.scm.azurewebsites.net/.

Skärmbild som visar de avancerade verktygen för App Service (Kudo).

Distributionscenter

När du använder en källkontrolllösning för att utveckla och underhålla din funktionskod kan du skapa och distribuera distributionen från källkontroll i Distributionscenter. Projektet skapas och distribueras till Azure när du gör uppdateringar. Mer information finns i Distributionstekniker i Azure Functions.

Cross-origin resource sharing (CORS)

För att förhindra körning av skadlig kod på klienten blockerar moderna webbläsare begäranden från webbprogram till resurser som körs i en separat domän. Med resursdelning mellan ursprung (CORS) kan ett Access-Control-Allow-Origin huvud deklarera vilka ursprung som tillåts anropa slutpunkter i funktionsappen.

När du konfigurerar listan Över tillåtna ursprung för funktionsappen läggs huvudet automatiskt till i alla svar från HTTP-slutpunkter i funktionsappen Access-Control-Allow-Origin .

Skärmbild som visar hur du konfigurerar CORS-listan över din funktionsapp.

Om det finns en annan domänpost ignoreras jokertecknet (*).

Autentisering

När funktioner använder en HTTP-utlösare kan du kräva att anrop först autentiseras. App Service stöder Microsoft Entra-autentisering och inloggning med sociala leverantörer, till exempel Facebook, Microsoft och Twitter. Information om hur du konfigurerar specifika autentiseringsprovidrar finns i Översikt över Azure App Service-autentisering.

Skärmbild som visar hur du konfigurerar autentisering för en funktionsapp.