Dela via


Använda Java och Gradle för att skapa och publicera en funktion till Azure

Den här artikeln visar hur du skapar och publicerar ett Java-funktionsprojekt till Azure Functions med kommandoradsverktyget Gradle. När du är klar körs funktionskoden i Azure i en serverlös värdplan och utlöses av en HTTP-begäran.

Kommentar

Om Gradle inte är det utvecklingsverktyg du föredrar kan du läsa våra liknande självstudier för Java-utvecklare som använder Maven, IntelliJ IDEA och VS Code.

Förutsättningar

För att kunna utveckla funktioner med hjälp av Java måste du ha följande installerat:

Du behöver också en aktiv Azure-prenumeration. Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Viktigt!

Miljövariabeln JAVA_HOME måste vara inställd på JDK-installationsplatsen för att snabbstarten ska gå att genomföra.

Förbereda ett Functions-projekt

Använd följande kommando för att klona exempelprojektet:

git clone https://github.com/Azure-Samples/azure-functions-samples-java.git
cd azure-functions-samples-java/

Öppna build.gradle och ändra appName i följande avsnitt till ett unikt namn för att undvika domännamnskonflikter när du distribuerar till Azure.

azurefunctions {
    resourceGroup = 'java-functions-group'
    appName = 'azure-functions-sample-demo'
    pricingTier = 'Consumption'
    region = 'westus'
    runtime {
      os = 'windows'
    }
    localDebug = "transport=dt_socket,server=y,suspend=n,address=5005"
}

Öppna den nya Function.java-filen från sökvägen src/main/java i en textredigerare och granska den genererade koden. Den här koden är en HTTP-utlöst funktion som ekar brödtexten i begäran.

Kör funktionen lokalt

Kör följande kommando för att skapa och kör sedan funktionsprojektet:

gradle jar --info
gradle azureFunctionsRun

Du ser utdata som följande från Azure Functions Core Tools när du kör projektet lokalt:

...

Now listening on: http://0.0.0.0:7071
Application started. Press Ctrl+C to shut down.

Http Functions:

    HttpExample: [GET,POST] http://localhost:7071/api/HttpExample
...

Utlös funktionen från kommandoraden med följande cURL-kommando i ett nytt terminalfönster:

curl -w "\n" http://localhost:7071/api/HttpExample --data AzureFunctions

Förväntade utdata är följande:

Hello, AzureFunctions

Kommentar

Om du anger authLevel till FUNCTION eller ADMINkrävs inte åtkomstnyckeln när du kör lokalt.

Använd Ctrl+C i terminalen för att stoppa funktionskoden.

Distribuera funktionen till Azure

En funktionsapp och relaterade resurser skapas i Azure när du först distribuerar funktionsappen. Innan du kan distribuera använder du kommandot az login Azure CLI för att logga in på din Azure-prenumeration.

az login

Dricks

Om ditt konto kan komma åt flera prenumerationer använder du az account set för att ange standardprenumerationen för den här sessionen.

Använd följande kommando för att distribuera projektet till en ny funktionsapp.

gradle azureFunctionsDeploy

Detta skapar följande resurser i Azure baserat på värdena i filen build.gradle:

  • Resursgrupp. Namngiven med den resourceGroup som du angav.
  • Lagringskonto. Krävs av Functions. Namnet genereras slumpmässigt baserat på krav för lagringskontonamn.
  • App Service-plan. Serverlös förbrukningsplan för din funktionsapp i den angivna regionen. Namnet genereras slumpmässigt.
  • Funktionsapp. En funktionsapp är distributions- och körningsenheten för dina funktioner. Namnet är ditt appName, som läggs till med ett slumpmässigt genererat nummer.

Distributionen paketar även projektfilerna och distribuerar dem till den nya funktionsappen med zip-distribution, med körnings-från-paket-läge aktiverat.

AuthLevel för HTTP-utlösare i exempelprojektet är ANONYMOUS, som hoppar över autentiseringen. Men om du använder annan authLevel som FUNCTION eller ADMINmåste du hämta funktionsnyckeln för att anropa funktionsslutpunkten via HTTP. Det enklaste sättet att hämta funktionsnyckeln är från Azure-portalen.

Hämta HTTP-utlösarens URL

Du kan hämta den URL som krävs för att utlösa funktionen med funktionsnyckeln från Azure-portalen.

  1. Bläddra till Azure-portalen, logga in, skriv appName för din funktionsapp i Sök överst på sidan och tryck på Retur.

  2. I funktionsappen väljer du Funktioner, väljer din funktion och klickar sedan på Hämta funktions-URL längst upp till höger.

    Kopiera funktionswebbadressen från Azure Portal

  3. Välj standard (funktionsnyckel) och välj Kopiera.

Du kan nu använda den kopierade URL:en för att komma åt din funktion.

Verifiera funktionen i Azure

Om du vill verifiera att funktionsappen körs i Azure med , cURLersätter du URL:en från exemplet nedan med den URL som du kopierade från portalen.

curl -w "\n" http://azure-functions-sample-demo.azurewebsites.net/api/HttpExample --data AzureFunctions

Detta skickar en POST-begäran till funktionsslutpunkten med AzureFunctions i brödtexten i begäran. Du ser följande svar.

Hello, AzureFunctions

Nästa steg

Du har skapat ett Java-funktionsprojekt med en HTTP-utlöst funktion, kört det på den lokala datorn och distribuerat det till Azure. Utöka nu funktionen genom att ...