Delen via


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

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

  1. Open een webbrowser en navigeer naar de MicroProfile Starter-site .

    Schermopname van MicroProfile Starter met Quarkus-runtime geselecteerd.

  2. 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
  3. Selecteer DOWNLOADEN om het project te downloaden.

  4. 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

  1. Ga naar de map met het voltooide project, bijvoorbeeld:

    cd quarkus-hello-azure/
    
  2. Bouw en voer het project uit met behulp van Maven; bijvoorbeeld:

    mvn quarkus:dev
    
  3. 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
    
  4. 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.

  1. Open het pom.xml-bestand in een code-editor.

  2. Voeg in de <build> sectie van het bestand pom.xml de volgende <plugin> vermelding in de <plugins> tag in na maven-surefire-plugin.

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>2.5.0</version>
    </plugin>
    
  3. 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] ------------------------------------------------------------------------
    
  4. Voeg de <appSettings> sectie toe aan de <configuration> sectie van PORT, WEBSITES_PORTen WEBSITES_CONTAINER_START_TIME_LIMIT. De XML-vermelding die u zoekt azure-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>
    
  5. 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:

  1. 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
    
  2. 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.

Schermopname van de webbrowser met de voorpagina van Quarkus.

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

Schermopname van het terminalvenster met de logboekstream.

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: