Distribuera en Quarkus-webbapp till Azure App Service med Maven
I den här snabbstarten använder du Maven-plugin-programmet för Azure App Service Web Apps för att distribuera ett Quarkus-program till Azure App Service på Linux. Välj Java SE-distribution framför Tomcat- och WAR-filer när du vill konsolidera appens beroenden, körning och konfiguration till en enda distribuerbar artefakt.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Förutsättningar
- Du kan använda Azure CLIantingen lokalt eller via Azure Cloud Shell.
- Ett Java Development Kit (JDK) som stöds. Mer information om de JDK:er som är tillgängliga för användning när du utvecklar i Azure finns i Java-support på Azure och Azure Stack.
- Apache Maven, version 3.
Logga in på Azure CLI
Det enklaste och mest lättillgängliga sättet att få Maven-plugin att distribuera din Quarkus-applikation är att använda Azure CLI.
Logga in på ditt Azure-konto med hjälp av Azure CLI:
az login
Följ anvisningarna för att slutföra inloggningsprocessen.
Skapa exempelapp från MicroProfile Starter
I det här avsnittet skapar du ett Quarkus-program och testar det lokalt.
Skapa ett Java SE 8-basprojekt
Öppna en webbläsare och gå till webbplatsen MicroProfile Starter.
Ange följande värden för de angivna fälten:
Fält Värde grupp-ID com.microsoft.azure.samples.quarkus artifactId quarkus-hello-azure MicroProfile-version MP 3.2 Java SE-version Java 8 MicroProfile Runtime Quarkus Exempel för specifikationer Mått, OpenAPI Välj LADDA ned för att ladda ned projektet.
Packa upp arkivfilen med hjälp av följande kommando:
unzip Quarkus-hello-azure.zip
Skapa Java SE 11-basprojekt
Om du vill skapa Java 11-basprojektet använder du följande kommando:
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"
Kör programmet i en lokal miljö
Ändra katalogen till det slutförda projektet med hjälp av följande kommando:
cd quarkus-hello-azure/
Skapa och kör projektet med hjälp av följande Maven-kommando:
mvn quarkus:dev
Testa webbprogrammet genom att bläddra till det lokalt med hjälp av en webbläsare. Du kan till exempel använda följande kommando om du har
curl
tillgängligt:För ett Java SE 8-projekt:
curl http://localhost:8080/data/hello
För ett Java SE 11-projekt:
curl http://localhost:8080/hello
Du bör se följande meddelande: Hello World eller hello.
Konfigurera Maven-plugin-programmet för Azure App Service
I det här avsnittet konfigurerar du Quarkus-projektet pom.xml-filen så att Maven kan distribuera appen till Azure App Service i Linux.
Öppna filen pom.xml i en kodredigerare.
I avsnittet
<build>
i filen pom.xml infogar du följande<plugin>
post i taggen<plugins>
eftermaven-surefire-plugin
.<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.13.0</version> </plugin>
Kör följande Maven-kommando för att konfigurera distributionen:
mvn azure-webapp:config
Välj följande alternativ när du uppmanas att göra det:
Indatafält Ange/välj värde Välj en prenumeration Ange ditt prenumerations-ID. Definiera värde för OS (standard: Linux): 2. linux Definiera värdet för javaVersion (standard: Java 8): 2. Java 11 Definiera värde för pricingTier(Standard: P1v2): 3. P1v2 Bekräfta (Y/N) y Det här kommandot genererar utdata som liknar följande exempel:
[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] ------------------------------------------------------------------------
Lägg till avsnitt
<appSettings>
i<configuration>
-sektionen förPORT
,WEBSITES_PORT
ochWEBSITES_CONTAINER_START_TIME_LIMIT
. XML-posten förazure-webapp-maven-plugin
bör se ut ungefär som i följande exempel:<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>
Lägg till följande post i filen src/main/resources/application.properties för att skapa en uber-jar, även kallad en fat jar:
quarkus.package.type=uber-jar
Distribuera appen till Azure
När du har konfigurerat alla inställningar i föregående avsnitt i den här artikeln är du redo att distribuera ditt webbprogram till Azure. Använd följande steg för att göra det:
Om du har gjort några ändringar i filen pom.xml återskapar du JAR-filen med hjälp av följande kommando:
mvn clean package
Distribuera din webbapp till Azure med hjälp av följande kommando:
mvn azure-webapp:deploy
Om distributionen lyckas visas följande utdata:
[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 distribuerar din webbapp till Azure. Om webbappen eller webbprogramplanen inte redan finns skapas den åt dig. Det kan ta några minuter innan webbprogrammet visas på den URL som visas i utdata. Gå till URL:en i en webbläsare. Du bör se följande skärm:
När webbprogrammet har distribuerats kan du hantera det via Azure-portalen.
Ditt webbprogram visas i mikroprofil resursgrupp.
Du kan komma åt din webbapplikation genom att välja Bläddra på Översikt-sidan för din webbapplikation. Kontrollera att distributionen lyckades och körs.
Bekräfta loggflödet från den körande appen
Du kan använda följande kommando för att visa - eller tail - loggarna från apptjänsten som körs. Alla anrop till console.log
i platskoden visas i terminalen.
az webapp log tail
--resource-group microprofile \
--name quarkus-hello-azure-1601011883156
Rensa resurser
När Azure-resurserna inte längre behövs rensar du de resurser som du distribuerade genom att ta bort resursgruppen. Använd följande steg för att göra det:
- I Azure-portalen väljer du Resursgrupp på menyn.
- Ange mikroprofil i fältet Filtrera efter namn. Den resursgrupp som skapades i den här guiden bör ha det här prefixet.
- Välj den resursgrupp som skapades i den här självstudien.
- Välj Ta bort resursgrupp på menyn.
Nästa steg
Om du vill veta mer om MicroProfile och Azure fortsätter du till Dokumentationscentret för MicroProfile i Azure.
Ytterligare resurser
Mer information om de olika tekniker som beskrivs i den här artikeln finns i följande artiklar:
- Maven-plugin-program för Azure Web Apps
- Skapa ett Huvudnamn för Azure-tjänsten med Azure CLI 2.0
- Referens för Maven-inställningar