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. Kies Java SE-implementatie via 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.
Voorwaarden
- De Azure CLI, lokaal of via Azure Cloud Shell.
- Een ondersteunde Java Development Kit (JDK). Zie Java-ondersteuning voor Azure en Azure Stackvoor meer informatie over de JDK's die beschikbaar zijn voor gebruik bij het ontwikkelen in Azure.
- Apache Mavenversie 3.
Aanmelden bij de Azure CLI
De eenvoudigste en gemakkelijkste manier om de Maven-invoegtoepassing uw Quarkus-applicatie te laten implementeren, is met behulp van de 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 op basis van MicroProfile Starter
In deze sectie maakt u een Quarkus-toepassing en test u deze lokaal.
Een 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 DOWNLOAD- om het project te downloaden.
Pak het archiefbestand uit met behulp van de volgende opdracht:
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 een lokale omgeving
Wijzig de map in het voltooide project met behulp van de volgende opdracht:
cd quarkus-hello-azure/
Bouw het project en voer het uit met behulp van de volgende Maven-opdracht:
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
curl
beschikbaar hebt:Voor een Java SE 8-project:
curl http://localhost:8080/data/hello
Voor een Java SE 11-project:
curl http://localhost:8080/hello
Het volgende bericht wordt weergegeven: Hallo wereld of hallo.
De Maven-invoegtoepassing configureren voor Azure App Service
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 sectie
<build>
van het pom.xml bestand 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.13.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): 3. P1v2 Bevestigen (Y/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.13.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: D1 2: B3 * 3: P1v2 4: P1v3 5: P2v2 6: P2v3 7: P3v2 8: P3v3 9: B1 10: B2 11: F1 12: S1 13: S2 14: S3 15: EP3 16: EP2 17: EP1 18: Y1 19: FC1 Enter your choice: 3 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 sectie
<appSettings>
toe aan de sectie<configuration>
vanPORT
,WEBSITES_PORT
enWEBSITES_CONTAINER_START_TIME_LIMIT
. De XML-vermelding voorazure-webapp-maven-plugin
moet er ongeveer uitzien als in het volgende voorbeeld:<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.13.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 een uber-jar te maken, ook wel bekend als een fat jar:
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. Gebruik 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 het volgende scherm:
Nadat uw webtoepassing is geïmplementeerd, kunt u deze beheren via de Azure Portal.
Uw webtoepassing wordt vermeld in de microprofile resourcegroep.
U kunt uw webtoepassing openen door Bladeren te selecteren in de Overzicht pagina voor uw web-app. Controleer of de implementatie is geslaagd en wordt uitgevoerd.
Verifieer de logboekstream van de draaiende App Service
U kunt de volgende opdracht gebruiken om de logboeken van de actieve App Service weer te geven ( of tail). Alle aanroepen naar console.log
in de sitecode worden weergegeven in de terminal.
az webapp log tail
--resource-group microprofile \
--name quarkus-hello-azure-1601011883156
Middelen opschonen
Wanneer de Azure-resources niet meer nodig zijn, schoont u de resources op die u hebt geïmplementeerd door de resourcegroep te verwijderen. Gebruik hiervoor de volgende stappen:
- Selecteer in Azure Portal resourcegroep in het menu.
- Voer microprofiel in in het veld Filteren op naam. De in deze zelfstudie aangemaakte resourcegroep moet dit voorvoegsel hebben.
- Selecteer de resourcegroep die tijdens deze zelfstudie is gemaakt.
- Selecteer in het menu de optie Verwijder resourcegroep.
Volgende stappen
Ga naar het MicroProfile-documentatiecentrum van Azure voor meer informatie over MicroProfile en Azure.
Aanvullende informatiebronnen
Zie de volgende artikelen voor meer informatie over de verschillende technologieën die in dit artikel worden besproken: