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:
- Java Developer Kit, version 8, 11, 17 eller 21. (Java 21 stöds för närvarande endast i förhandsversion på Linux)
- Azure CLI
- Azure Functions Core Tools version 2.6.666 eller senare
- Gradle, version 6.8 och senare
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 ADMIN
krä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 ADMIN
må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.
Bläddra till Azure-portalen, logga in, skriv appName för din funktionsapp i Sök överst på sidan och tryck på Retur.
I funktionsappen väljer du Funktioner, väljer din funktion och klickar sedan på Hämta funktions-URL längst upp till höger.
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 , cURL
ersä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 ...