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

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

  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 DOWNLOAD- om het project te downloaden.

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

  1. Wijzig de map in het voltooide project met behulp van de volgende opdracht:

    cd quarkus-hello-azure/
    
  2. Bouw het project en voer het uit met behulp van de volgende Maven-opdracht:

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

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

  2. Voeg in de sectie <build> van het pom.xml bestand 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.13.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): 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] ------------------------------------------------------------------------
    
  4. Voeg de sectie <appSettings> toe aan de sectie <configuration> van PORT, WEBSITES_PORTen WEBSITES_CONTAINER_START_TIME_LIMIT. De XML-vermelding voor azure-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>
    
  5. 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:

  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 het volgende scherm:

Schermopname van webbrowser met de voorpagina van Quarkus.

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

Schermopname van het terminalvenster met de logboekstream.

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:

  1. Selecteer in Azure Portal resourcegroep in het menu.
  2. Voer microprofiel in in het veld Filteren op naam. De in deze zelfstudie aangemaakte resourcegroep moet dit voorvoegsel hebben.
  3. Selecteer de resourcegroep die tijdens deze zelfstudie is gemaakt.
  4. 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: