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.

Anslut ionssträ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

  1. Börja genom att logga in på Azure-portalen med ditt Azure-konto. I sökfältet överst i portalen anger du namnet på funktionsappen och väljer den i listan.

  2. Under Inställningar i det vänstra fönstret väljer du Konfiguration.

    Function app overview in the Azure portal

Du kan navigera till allt du behöver för att hantera din funktionsapp från översiktssidan, särskilt programinställningar och plattformsfunktioner.

Arbeta med programinställningar

Du kan skapa valfritt antal programinställningar som krävs av funktionskoden. Det finns också fördefinierade programinställningar som används av Functions. Mer information finns i referensen för appinställningar för Azure Functions.

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

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

Information om hur du hittar programinställningarna finns i Kom igång i Azure-portalen.

Fliken Programinställningar har inställningar som används av funktionsappen. Du måste välja Visa värden för att visa värdena i portalen. Om du vill lägga till en inställning i portalen väljer du Ny programinställning och lägger till det nya nyckel/värde-paret.

Function app settings in the Azure portal.

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 referensavsnitt:

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 inte den här metoden. Om du vill överföra projektfiler på ett säkert sätt använder du alltid FTPS och inte FTP.

Du kan hämta de autentiseringsuppgifter som krävs för FTPS-distribution med någon av följande metoder:

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. Du bör alltid skydda 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.

    Download publish profile

  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 Värdalternativ för Azure Functions.

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 Portalen Azure CLI/PowerShell
Förbrukning Förbrukning Dynamic
Premium ElasticPremium ElasticPremium
Dedikerad (App Service) Olika Olika

Information om vilken typ av plan som används av funktionsappen finns i App Service-planfliken Översikt för funktionsappen i Azure-portalen. Om du vill se prisnivån väljer du namnet på App Service-planen och väljer sedan Egenskaper i den vänstra rutan.

View scaling plan in the portal

Planera migrering

Du kan använda antingen Azure-portalen eller Azure CLI-kommandon för att 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 för närvarande.
  • 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.

Migrering i portalen

I Azure-portalen går du till din förbruknings- eller Premium-planapp och väljer Ändra App Service-plan under App Service-plan. Välj den andra plantypen, skapa en ny App Service-plan av den nya typen och välj OK. Mer information finns i Flytta en app till en annan App Service-plan.

Förbrukning till Premium

Använd följande procedur för att migrera från en förbrukningsplan till en Premium-plan i Windows:

  1. Kör kommandot az functionapp plan create på följande sätt för att skapa en ny App Service-plan (Elastic Premium) i samma region och resursgrupp som din befintliga funktionsapp:

    az functionapp plan create --name <NEW_PREMIUM_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP> --location <REGION> --sku EP1
    
  2. Kör kommandot az functionapp update enligt följande för att migrera den befintliga funktionsappen till den nya Premium-planen:

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_PREMIUM_PLAN>
    
  3. Om du inte längre behöver din tidigare appplan för förbrukningsfunktionen tar du bort din ursprungliga funktionsappplan när du har bekräftat att du har migrerat till den nya. Kör kommandot az functionapp plan list på följande sätt för att hämta en lista över alla förbrukningsplaner i resursgruppen:

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='Y'].{PlanName:name,Sites:numberOfSites}" -o table
    

    Du kan på ett säkert sätt ta bort planen med noll platser, vilket är den som du migrerade från.

  4. Kör kommandot az functionapp plan delete enligt följande för att ta bort den förbrukningsplan som du migrerade från.

    az functionapp plan delete --name <CONSUMPTION_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP>
    

Premium till förbrukning

Använd följande procedur för att migrera från en Premium-plan till en förbrukningsplan i Windows:

  1. Kör kommandot az functionapp plan create på följande sätt för att skapa en ny funktionsapp (förbrukning) i samma region och resursgrupp som din befintliga funktionsapp. Det här kommandot skapar också en ny förbrukningsplan där funktionsappen körs.

    az functionapp create --resource-group <MY_RESOURCE_GROUP> --name <NEW_CONSUMPTION_APP_NAME> --consumption-plan-location <REGION> --runtime dotnet --functions-version 3 --storage-account <STORAGE_NAME>
    
  2. Kör kommandot az functionapp update enligt följande för att migrera den befintliga funktionsappen till den nya förbrukningsplanen.

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_CONSUMPTION_PLAN> --force
    
  3. Kör kommandot az functionapp delete på följande sätt för att ta bort funktionsappen som du skapade i steg 1, eftersom du bara behöver planen som skapades för att köra den befintliga funktionsappen.

    az functionapp delete --name <NEW_CONSUMPTION_APP_NAME> --resource-group <MY_RESOURCE_GROUP>
    
  4. Om du inte längre behöver din tidigare Premium-funktionsappplan tar du bort din ursprungliga funktionsappsplan när du har bekräftat att du har migrerat till den nya. Tills Premium-planen har tagits bort fortsätter du att debiteras för den. Kör kommandot az functionapp plan list på följande sätt för att hämta en lista över alla Premium-planer i resursgruppen.

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='EP'].{PlanName:name,Sites:numberOfSites}" -o table
    
  5. Kör kommandot az functionapp plan delete enligt följande för att ta bort premiumplanen som du migrerade från.

    az functionapp plan delete --name <PREMIUM_PLAN> --resource-group <MY_RESOURCE_GROUP>
    

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 det vänstra navigeringsfältet under Funktioner väljer du Appnycklar.

    Detta returnerar värdnycklarna, som kan användas för att komma åt alla funktioner i appen. Den returnerar också systemnyckeln, 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 bara för den specifika funktionsnyckeln genom att välja Funktionsnycklar under Utvecklare i din HTTP-utlösta funktion.

Utvecklingsbegränsningar i Azure-portalen

Du måste tänka på dessa begränsningar när du utvecklar dina funktioner i Azure-portalen:

  • Redigering i portalen stöds endast för JavaScript-, PowerShell-, Python- och C#-skriptfunktioner.
  • Python-redigering i portalen stöds bara när du kör i förbrukningsplanen.
  • Redigering i portalen stöds för närvarande endast för funktioner som skapades eller senast ändrades i portalen.
  • När du distribuerar kod till en funktionsapp utanför 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, Java-funktioner och vissa Python-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 bör 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 bör 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 för att redigera 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 och välj sedan Avancerade verktyg> under Utvecklingsverktyg.

  2. Logga in på SCM-webbplatsen med dina Azure-autentiseringsuppgifter om du uppmanas att göra det.

  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. Namnge filen, till exempel extensions.csproj och tryck på Retur.

  6. Välj redigeringsknappen bredvid den nya filen, lägg till eller uppdatera kod i filen och välj 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 i och underhålls av Azure App Service-plattformen. Därför har dina funktionsappar åtkomst till de flesta funktionerna i Azures kärnwebbvärdplattform. När du arbetar i 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 portalens funktionsstöd 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

The App Service editor

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. På så sätt kan du integrera med Git-lagringsplatsen, köra och felsöka kod och ändra inställningarna för funktionsappen. Den här redigeraren ger en förbättrad utvecklingsmiljö för dina funktioner jämfört med den inbyggda funktionsredigeraren.

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 portalen. Mer information finns i Koda och testa Azure Functions lokalt.

Konsol

Function app console

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.

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

Avancerade verktyg (Kudu)

Configure 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/

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.

Portalen

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 .

Configure function app's CORS list

Jokertecknet (*) ignoreras om det finns en annan domänpost.

az functionapp cors add Använd kommandot för att lägga till en domän i listan över tillåtna ursprung. I följande exempel läggs contoso.com domänen till:

az functionapp cors add --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--allowed-origins https://contoso.com

az functionapp cors show Använd kommandot för att visa de aktuella tillåtna ursprungen.

Autentisering

Configure authentication for a function app

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. Mer information om hur du konfigurerar specifika autentiseringsprovidrar finns i Översikt över Azure App Service-autentisering.

Nästa steg