Een Quarkus-web-app implementeren in Azure-app Service met Maven
In deze quickstart gebruikt u de Maven-invoegtoepassing voor Azure-app Service Web Apps om een Quarkus-toepassing te implementeren in Azure-app Service op Linux. Het is beter om te kiezen voor de implementatie van Java SE dan Tomcat- en WAR-bestanden wanneer u de afhankelijkheden, runtime en configuratie van uw app wilt consolideren in één implementeerbaar artefact.
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Vereisten
- De Azure CLI-, lokaal of via Azure Cloud Shell.
- Een ondersteunde JDK (Java Development Kit). Zie Java-ondersteuning voor Azure en Azure Stack voor meer informatie over de JDK's die beschikbaar zijn voor gebruik bij het ontwikkelen in Azure.
- Apache Maven, versie 3.
Aanmelden bij Azure CLI
De eenvoudigste en eenvoudigste manier om de Maven-invoegtoepassing voor het implementeren van uw Quarkus-toepassing te krijgen, is met behulp van Azure CLI.
Meld u aan bij uw Azure-account met behulp van de Azure CLI:
az login
Volg de instructies om het aanmeldingsproces te voltooien.
Voorbeeld-app maken van MicroProfile Starter
In deze sectie maakt u een Quarkus-toepassing en test u deze lokaal.
Java SE 8-basisproject maken
Open een webbrowser en navigeer naar de MicroProfile Starter-site .
Geef de volgende waarden op voor de aangegeven velden.
Veld Waarde groupId com.microsoft.azure.samples.quarkus artifactId quarkus-hello-azure MicroProfile-versie MP 3.2 Java SE-versie Java 8 MicroProfile Runtime Quarkus Voorbeelden voor specificaties Metrische gegevens, OpenAPI Selecteer DOWNLOADEN om het project te downloaden.
Pak het archiefbestand uit; bijvoorbeeld:
unzip Quarkus-hello-azure.zip
Java SE 11-basisproject maken
Gebruik de volgende opdracht om het Java 11-basisproject te maken:
mvn io.quarkus:quarkus-maven-plugin:2.6.1.Final:create \
-DprojectGroupId=com.microsoft.azure.samples.quarkus \
-DprojectArtifactId=quarkus-hello-azure \
-DclassName="com.microsoft.azure.samples.quarkus.App" \
-Dpath="/hello"
De toepassing uitvoeren in de lokale omgeving
Ga naar de map met het voltooide project, bijvoorbeeld:
cd quarkus-hello-azure/
Bouw en voer het project uit met behulp van Maven; bijvoorbeeld:
mvn quarkus:dev
Test de webtoepassing door er lokaal naar te bladeren met behulp van een webbrowser. U kunt bijvoorbeeld de volgende opdracht gebruiken als u over curl beschikt:
Voor Java SE 8-project:
curl http://localhost:8080/data/hello
Voor Java SE 11-project:
curl localhost:8080/hello
Het volgende bericht wordt weergegeven: Hallo wereld of hallo
De Maven-invoegtoepassing voor Azure App Service configureren
In deze sectie configureert u het Quarkus-project pom.xml bestand, zodat Maven de app kan implementeren in Azure-app Service op Linux.
Open het pom.xml-bestand in een code-editor.
Voeg in de
<build>
sectie van het bestand pom.xml de volgende<plugin>
vermelding in de<plugins>
tag in namaven-surefire-plugin
.<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.5.0</version> </plugin>
Voer de volgende Maven-opdracht uit om de implementatie te configureren:
mvn azure-webapp:config
Selecteer de volgende opties wanneer u hierom wordt gevraagd:
Invoerveld Invoer/waarde selecteren Kies een abonnement Voer uw abonnements-id in. Definieer de waarde voor het besturingssysteem (standaard: Linux): 2. linux Waarde definiëren voor javaVersion(standaard: Java 8): 2. Java 11 Waarde definiëren voor pricingTier(standaard: P1v2): 9. P1v2 Bevestigen (J/N) y Met deze opdracht wordt uitvoer geproduceerd die vergelijkbaar is met het volgende voorbeeld:
[INFO] Scanning for projects... [INFO] [INFO] ------< com.microsoft.azure.samples.quarkus:quarkus-hello-azure >------- [INFO] Building quarkus-hello-azure 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- azure-webapp-maven-plugin:2.5.0:config (default-cli) @ quarkus-hello-azure --- [INFO] Auth type: OAUTH2 Username: abc@xyz.com Available subscriptions: * 1: Subscription1(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx) 2: Subscription2(yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy) Please choose a subscription [xxx]: 1 [INFO] Subscription: Subscription1(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx) Define value for OS [Linux]: 1: Windows * 2: Linux 3: Docker Enter your choice: 2 Define value for javaVersion [Java 8]: * 1: Java 8 2: Java 11 3: Java 17 Enter your choice: 2 Define value for pricingTier [P1v2]: 1: B1 2: B2 3: B3 4: D1 5: EP1 6: EP2 7: EP3 8: F1 * 9: P1v2 10: P1v3 11: P2v2 12: P2v3 13: P3v2 14: P3v3 15: S1 16: S2 17: S3 18: Y1 Enter your choice: 9 Please confirm webapp properties Subscription Id : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx AppName : quarkus-hello-azure-1601011883156 ResourceGroup : quarkus-hello-azure-1601011883156-rg Region : centralus PricingTier : P1v2 OS : Linux Java : Java 11 Web server stack: Java SE Deploy to slot : false Confirm (Y/N) [Y]: [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 16.502 s [INFO] Finished at: 2020-09-25T14:31:34+09:00 [INFO] ------------------------------------------------------------------------
Voeg de
<appSettings>
sectie toe aan de<configuration>
sectie vanPORT
,WEBSITES_PORT
enWEBSITES_CONTAINER_START_TIME_LIMIT
. De XML-vermelding die u zoektazure-webapp-maven-plugin
, ziet er ongeveer als volgt uit:<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.5.0</version> <configuration> <schemaVersion>V2</schemaVersion> <resourceGroup>microprofile</resourceGroup> <appName>quarkus-hello-azure-1591836715762</appName> <pricingTier>P1v2</pricingTier> <region>centralus</region> <runtime> <os>linux</os> <javaVersion>java 11</javaVersion> <webContainer>java SE</webContainer> </runtime> <appSettings> <property> <name>PORT</name> <value>8080</value> </property> <property> <name>WEBSITES_PORT</name> <value>8080</value> </property> <property> <name>WEBSITES_CONTAINER_START_TIME_LIMIT</name> <value>600</value> </property> </appSettings> <deployment> <resources> <resource> <directory>${project.basedir}/target</directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </deployment> </configuration> </plugin>
Voeg de volgende vermelding toe aan het bestand src/main/resources/application.properties om het JAR-bestand uber (FAT) te maken.
quarkus.package.type=uber-jar
De app implementeren in Azure
Nadat u alle instellingen in de voorgaande secties van dit artikel hebt geconfigureerd, kunt u uw webtoepassing implementeren in Azure. Volg hiervoor de volgende stappen:
Als u wijzigingen hebt aangebracht in het pom.xml bestand, bouwt u het JAR-bestand opnieuw op met behulp van de volgende opdracht:
mvn clean package
Implementeer uw web-app in Azure met behulp van de volgende opdracht:
mvn azure-webapp:deploy
Als de implementatie slaagt, ziet u de volgende uitvoer:
[INFO] Successfully deployed the artifact to https://quarkus-hello-azure-1591836715762.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:20 min
[INFO] Finished at: 2020-06-11T10:06:51+09:00
[INFO] ------------------------------------------------------------------------
Maven implementeert uw webtoepassing in Azure. Als het webtoepassings- of webtoepassingsplan nog niet bestaat, wordt deze voor u gemaakt. Het kan enkele minuten duren voordat de webtoepassing zichtbaar is op de URL die in de uitvoer wordt weergegeven. Navigeer naar de URL in een webbrowser. U ziet nu het volgende scherm.
Wanneer uw webtoepassing is geïmplementeerd, kunt u deze beheren via Azure Portal.
Uw webtoepassing wordt vermeld in de microprofile-resourcegroep .
U kunt toegang krijgen tot uw webtoepassing door Bladeren te selecteren op de pagina Overzicht voor uw web-app. Controleer of de implementatie is geslaagd en wordt uitgevoerd.
Bevestig de logboekstream van de actieve App Service
U kunt de logboeken van de actieve App Service bekijken (of 'tailen'). Alle aanroepen naar console.log
de sitecode worden weergegeven in de terminal.
az webapp log tail
--resource-group microprofile \
--name quarkus-hello-azure-1601011883156
Resources opschonen
Schoon de geïmplementeerd Azure-resources, wanneer u deze niet meer nodig hebt, op door de resourcegroep te verwijderen.
- Selecteer Resourcegroep in het linkermenu van Azure Portal.
- Voer microprofile in het veld Filteren op naam in. De resourcegroep die in deze zelfstudie is gemaakt, moet dit voorvoegsel hebben.
- Selecteer de resourcegroep die u in deze zelfstudie hebt gemaakt.
- Selecteer Resourcegroep verwijderen in het bovenste menu.
Volgende stappen
Ga naar het MicroProfile in het Documentatiecentrum van Azure voor meer informatie over MicroProfile en Azure.
Aanvullende bronnen
Raadpleeg de volgende artikelen voor meer informatie over de verschillende technologieën die in dit artikel worden besproken: