Java en Gradle gebruiken om een functie te maken en te publiceren in Azure
In dit artikel leest u hoe u een Java-functieproject bouwt en publiceert naar Azure Functions met het opdrachtregelprogramma Gradle. Wanneer u klaar bent, wordt uw functiecode uitgevoerd in Azure in een serverloos hostingabonnement en wordt deze geactiveerd door een HTTP-aanvraag.
Notitie
Als Gradle niet uw voorkeur heeft voor het ontwikkelhulpprogramma, raadpleegt u onze vergelijkbare zelfstudies voor Java-ontwikkelaars die Gebruikmaken van Maven, IntelliJ IDEA en VS Code.
Vereisten
Als u functies wilt ontwikkelen met behulp van Java, moet het volgende zijn geïnstalleerd:
- Java Developer Kit, versie 8, 11, 17 of 21. (Java 21 wordt momenteel alleen ondersteund in preview op Linux)
- Azure-CLI
- Azure Functions Core Tools, versie 2.6.666 of hoger
- Gradle, versie 6.8 en hoger
U hebt ook een actief Azure-abonnement nodig. Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Belangrijk
De omgevingsvariabele JAVA_HOME moet zijn ingesteld op de installatielocatie van de JDK om deze quickstart te kunnen voltooien.
Een Functions-project voorbereiden
Gebruik de volgende opdracht om het voorbeeldproject te klonen:
git clone https://github.com/Azure-Samples/azure-functions-samples-java.git
cd azure-functions-samples-java/
Open build.gradle
en wijzig de appName
in de volgende sectie in een unieke naam om te voorkomen dat domeinnaamconflicten optreden bij de implementatie in 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"
}
Open het nieuwe Function.java-bestand vanuit het pad src/main/java in een teksteditor en controleer de gegenereerde code. Deze code is een door HTTP geactiveerde functie die de hoofdtekst van de aanvraag weergeeft.
De functie lokaal uitvoeren
Voer de volgende opdracht uit om vervolgens het functieproject te bouwen:
gradle jar --info
gradle azureFunctionsRun
U ziet uitvoer zoals de volgende van Azure Functions Core Tools wanneer u het project lokaal uitvoert:
... 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 ...
Activeer de functie vanaf de opdrachtregel met behulp van de volgende cURL-opdracht in een nieuw terminalvenster:
curl -w "\n" http://localhost:7071/api/HttpExample --data AzureFunctions
De verwachte uitvoer is het volgende:
Hello, AzureFunctions
Notitie
Als u authLevel instelt op FUNCTION
of ADMIN
, is de toegangssleutel niet vereist wanneer u lokaal wordt uitgevoerd.
Gebruik Ctrl+C
in de terminal om de functiecode te stoppen.
De functie implementeren in Azure
Een functie-app en gerelateerde resources worden gemaakt in Azure wanneer u uw functie-app voor het eerst implementeert. Voordat u de implementeren kunt starten moet u de Azure CLI-opdracht az login gebruiken om u aan te melden bij uw Azure-abonnement.
az login
Tip
Als uw account toegang heeft tot meerdere abonnementen, gebruikt u az account set om het standaardabonnement voor deze sessie in te stellen.
Gebruik de volgende opdracht om uw project te implementeren in een nieuwe functie-app.
gradle azureFunctionsDeploy
Hiermee maakt u de volgende resources in Azure op basis van de waarden in het bestand build.gradle:
- Resourcegroep. Benoemd met de resourceGroup die u hebt opgegeven.
- Opslagaccount. Vereist door Funtions. De naam wordt willekeurig gegenereerd op basis van de vereisten van het opslagaccount.
- App Service-plan. Serverloos verbruiksabonnement dat als host fungeert voor uw functie-app in de opgegeven regio. De naam wordt willekeurig gegenereerd.
- Functie-app. Een functie-app is de implementatie- en uitvoeringseenheid voor uw functies. De naam is uw appName, toegevoegd met een willekeurig gegenereerd nummer.
De implementatie verpakt ook de projectbestanden en implementeert deze in de nieuwe functie-app met behulp van zip-implementatie, waarbij de modus Uitvoeren vanaf pakket is ingeschakeld.
Het authLevel voor HTTP-trigger in het voorbeeldproject is ANONYMOUS
, waardoor de verificatie wordt overgeslagen. Als u echter andere authLevel gebruikt, moet FUNCTION
ADMIN
u de functiesleutel ophalen om het functie-eindpunt aan te roepen via HTTP. De eenvoudigste manier om de functiesleutel op te halen, is via Azure Portal.
De HTTP-trigger-URL ophalen
U kunt de URL ophalen die is vereist voor het activeren van uw functie, met de functiesleutel, vanuit Azure Portal.
Blader naar Azure Portal, meld u aan, typ de appName van uw functie-app in Zoeken boven aan de pagina en druk op Enter.
Selecteer Functions in uw functie-app, kies uw functie en klik vervolgens rechtsboven op Functie-URL ophalen.
Kies de standaardwaarde (functietoets) en selecteer Kopiëren.
U kunt nu de gekopieerde URL gebruiken om toegang te krijgen tot uw functie.
De functie controleren in Azure
Als u wilt controleren of de functie-app wordt uitgevoerd in Azure met behulp van cURL
, vervangt u de URL uit het onderstaande voorbeeld door de URL die u hebt gekopieerd uit de portal.
curl -w "\n" http://azure-functions-sample-demo.azurewebsites.net/api/HttpExample --data AzureFunctions
Hiermee wordt een POST-aanvraag verzonden naar het functie-eindpunt met AzureFunctions
in de hoofdtekst van de aanvraag. U ziet het volgende antwoord.
Hello, AzureFunctions
Volgende stappen
U hebt een Java-functieproject gemaakt met een met HTTP geactiveerde functie, deze uitgevoerd op de lokale computer en geïmplementeerd in Azure. Breid uw functie nu uit door...