Läs på engelska

Dela via


Snabbstart: Skapa en Python-funktion i Azure från kommandoraden

I den här artikeln använder du kommandoradsverktyg för att skapa en Python-funktion som svarar på HTTP-begäranden. När du har testat koden lokalt distribuerar du den till den serverlösa miljön i Azure Functions.

Den här artikeln använder programmeringsmodellen Python v2 för Azure Functions, som tillhandahåller en dekoratörsbaserad metod för att skapa funktioner. Mer information om python v2-programmeringsmodellen finns i referensguiden för utvecklare

Slutförande av den här snabbstarten medför en liten kostnad på några USD-cent eller mindre på ditt Azure-konto.

Det finns också en Visual Studio Code-baserad version av den här artikeln.

Konfigurera din lokala miljö

Innan du börjar måste du ha följande krav på plats:

Installera Azure Functions Core Tools

Det rekommenderade sättet att installera Core Tools beror på operativsystemet på din lokala utvecklingsdator.

Följande steg använder APT för att installera Core Tools på din Ubuntu/Debian Linux-distribution. Andra Linux-distributioner finns i Core Tools readme.

  1. Installera GPG-nyckeln för Microsoft-paketlagringsplatsen för att verifiera paketintegriteten:

    Bash
    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
    
  2. Konfigurera APT-källlistan innan du gör en APT-uppdatering.

    Ubuntu
    Bash
    sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs 2>/dev/null)-prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
    
    Debian
    Bash
    sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/debian/$(lsb_release -rs 2>/dev/null | cut -d'.' -f 1)/prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
    
  3. Kontrollera om /etc/apt/sources.list.d/dotnetdev.list det finns någon av de lämpliga Linux-versionssträngarna i följande tabell i filen:

    Linux-distribution Version
    Debian 12 bookworm
    Debian 11 bullseye
    Debian 10 buster
    Debian 9 stretch
    Ubuntu 22.04 jammy
    Ubuntu 20.04 focal
    Ubuntu 19.04 disco
    Ubuntu 18.10 cosmic
    Ubuntu 18.04 bionic
    Ubuntu 17.04 zesty
    Ubuntu 16.04/Linux Mint 18 xenial
  4. Starta APT-källuppdateringen:

    Bash
    sudo apt-get update
    
  5. Installera Core Tools-paketet:

    Bash
    sudo apt-get install azure-functions-core-tools-4
    

func --version Använd kommandot för att kontrollera att din version av Core Tools är minst 4.0.5530.

Skapa och aktivera en virtuell miljö

I en lämplig mapp kör du följande kommandon för att skapa och aktivera en virtuell miljö med namnet .venv. Kontrollera att du använder en version av Python som stöds av Azure Functions.

Bash
python -m venv .venv
Bash
source .venv/bin/activate

Om Python inte installerade venv-paketet på Linux-distributionen kör du följande kommando:

Bash
sudo apt-get install python3-venv

Du kör alla efterföljande kommandon i den här aktiverade virtuella miljön.

Skapa en lokal funktion

I Azure Functions är ett funktionsprojekt en container för en eller flera enskilda funktioner som var och en svarar på en specifik utlösare. Alla funktioner i ett projekt delar samma lokala konfigurationer och värdkonfigurationer.

I det här avsnittet skapar du ett funktionsprojekt och lägger till en HTTP-utlöst funktion.

  1. func init Kör kommandot på följande sätt för att skapa ett Python v2-funktionsprojekt i den virtuella miljön.

    Console
    func init --python
    

    Miljön innehåller nu olika filer för projektet, inklusive konfigurationsfiler med namnet local.settings.json och host.json. Eftersom local.settings.json kan innehålla hemligheter som hämtats från Azure undantas filen som standard från källkontrollen i .gitignore-filen .

  2. Lägg till en funktion i projektet med hjälp av följande kommando, där --name argumentet är det unika namnet på din funktion (HttpExample) och --template argumentet anger funktionens utlösare (HTTP).

    Console
    func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
    

    Om du uppmanas till det väljer du alternativet ANONYM . func new lägger till en HTTP-utlösarslutpunkt med namnet HttpExample i function_app.py filen, som är tillgänglig utan autentisering.

Kör funktionen lokalt

  1. Kör funktionen genom att starta den lokala Azure Functions-körningsvärden från mappen LocalFunctionProj .

    Console
    func start
    

    Mot slutet av utdata måste följande rader visas:

    Skärmbild av terminalfönstrets utdata när funktionen körs lokalt.

    Anteckning

    Om HttpExample inte visas som ovan startade du förmodligen värden utanför rotmappen i projektet. I så fall använder du Ctrl+C för att stoppa värden, går till projektets rotmapp och kör föregående kommando igen.

  2. Kopiera URL:en för HTTP-funktionen från den här utdatan till en webbläsare och lägg till frågesträngen ?name=<YOUR_NAME>, vilket gör den fullständiga URL:en till exempel http://localhost:7071/api/HttpExample?name=Functions. Webbläsaren bör visa ett svarsmeddelande som upprepar frågesträngsvärdet. Terminalen där du startade projektet visar även loggutdata när du gör begäranden.

  3. När du är klar trycker du på Ctrl + C och skriver y för att stoppa funktionsvärden.

Skapa stödresurser för Azure-resurser för din funktion

Innan du kan distribuera funktionskoden till Azure måste du skapa tre resurser:

  • En resursgrupp, som är en logisk container för relaterade resurser.
  • Ett lagringskonto som underhåller tillståndet och annan information om dina projekt.
  • En funktionsapp som tillhandahåller miljön för att köra funktionskoden. En funktionsapp mappar till ditt lokala funktionsprojekt och låter dig gruppera funktioner som en logisk enhet för enklare hantering, distribution och delning av resurser.

Använd följande kommandon för att skapa dessa objekt. Både Azure CLI och PowerShell stöds.

  1. Logga in på Azure om det behövs.

    Azure CLI
    az login
    

    Kommandot az login loggar in dig på ditt Azure-konto.

  2. Skapa en resursgrupp med namnet AzureFunctionsQuickstart-rg i den valda regionen.

    Azure CLI
    az group create --name AzureFunctionsQuickstart-rg --location <REGION>
    

    Kommandot az group create skapar en resursgrupp. I kommandot ovan ersätter <REGION> du med en region nära dig med hjälp av en tillgänglig regionkod som returneras från kommandot az account list-locations .

    Anteckning

    Du kan inte vara värd för Linux- och Windows-appar i samma resursgrupp. Om du har en befintlig resursgrupp med namnet AzureFunctionsQuickstart-rg med en Windows-funktionsapp eller webbapp måste du använda en annan resursgrupp.

  3. Skapa ett allmänt lagringskonto i din resursgrupp och region.

    Azure CLI
    az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS
    

    Kommandot az storage account create skapar lagringskontot.

    I föregående exempel ersätter <STORAGE_NAME> du med ett namn som passar dig och som är unikt i Azure Storage. Namn får endast innehålla siffror på 3 till 24 tecken och gemener. Standard_LRS anger ett allmänt konto som stöds av Functions.

    Lagringskontot ådrar sig bara några cent (USD) för den här snabbstarten.

  4. Skapa funktionsappen i Azure.

    Azure CLI
    az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location westeurope --runtime python --runtime-version <PYTHON_VERSION> --functions-version 4 --name <APP_NAME> --os-type linux --storage-account <STORAGE_NAME>
    

    Kommandot az functionapp create skapar funktionsappen i Azure. Du måste ange --os-type linux eftersom Python-funktioner endast körs på Linux.

    I föregående exempel ersätter <APP_NAME> du med ett globalt unikt namn som passar dig. <APP_NAME> är också standardunderdomänen för funktionsappen. Kontrollera att värdet som du angav för <PYTHON_VERSION> är en version som stöds av Functions och är samma version som du använde under den lokala utvecklingen.

    Det här kommandot skapar en funktionsapp som körs i din angivna språkkörning under Azure Functions Consumption Plan, vilket är kostnadsfritt för den mängd användning som du får här. Kommandot skapar också en associerad Azure Application Insights-instans i samma resursgrupp, med vilken du kan övervaka funktionsappen och visa loggar. Mer information finns i Övervaka Azure Functions. Instansen medför inga kostnader förrän du aktiverar den.

Distribuera funktionsprojektet till Azure

När du har skapat funktionsappen func azure functionapp publish i Azure är du nu redo att distribuera ditt lokala funktionsprojekt med hjälp av kommandot .

Kör det här func azure functionapp publish kommandot i rotprojektmappen:

Console
func azure functionapp publish <APP_NAME>

I det här exemplet ersätter du <APP_NAME> med namnet på din app. En lyckad distribution visar resultat som liknar följande utdata (trunkerade för enkelhetens skull):

...

Getting site publishing info...
Creating archive for current directory...
Performing remote build for functions project.

...

Deployment successful.
Remote build succeeded!
Syncing triggers...
Functions in msdocs-azurefunctions-qs:
    HttpExample - [httpTrigger]
        Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample

Anropa funktionen i Azure

Eftersom funktionen använder en HTTP-utlösare anropar du den genom att göra en HTTP-begäran till dess URL i webbläsaren eller med ett verktyg som curl.

Kopiera den fullständiga anropande URL:en som visas i kommandots publish utdata till ett webbläsaradressfält och lägga till frågeparametern ?name=Functions. Webbläsaren bör visa liknande utdata som när du körde funktionen lokalt.

Rensa resurser

Om du fortsätter till nästa steg och lägger till en Azure Storage-köutdatabindning behåller du alla resurser på plats när du bygger vidare på det du redan har gjort.

Annars använder du följande kommando för att ta bort resursgruppen och alla dess inneslutna resurser för att undvika ytterligare kostnader.

Azure CLI
az group delete --name AzureFunctionsQuickstart-rg

Nästa steg

Har du problem med den här artikeln?