Dela via


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

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

  1. Öppna en webbläsare och gå till webbplatsen MicroProfile Starter.

    Skärmdump som visar MicroProfile Starter med Quarkus runtime vald.

  2. 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
  3. Välj LADDA ned för att ladda ned projektet.

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

  1. Ändra katalogen till det slutförda projektet med hjälp av följande kommando:

    cd quarkus-hello-azure/
    
  2. Skapa och kör projektet med hjälp av följande Maven-kommando:

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

  1. Öppna filen pom.xml i en kodredigerare.

  2. I avsnittet <build> i filen pom.xml infogar du följande <plugin> post i taggen <plugins> efter maven-surefire-plugin.

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>2.13.0</version>
    </plugin>
    
  3. 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] ------------------------------------------------------------------------
    
  4. Lägg till avsnitt <appSettings> i <configuration>-sektionen för PORT, WEBSITES_PORToch WEBSITES_CONTAINER_START_TIME_LIMIT. XML-posten för azure-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>
    
  5. 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:

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

Skärmbild av webbläsaren som visar quarkus förstasida.

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

Skärmbild av terminalfönstret som visar loggströmmen.

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:

  1. I Azure-portalen väljer du Resursgrupp på menyn.
  2. Ange mikroprofil i fältet Filtrera efter namn. Den resursgrupp som skapades i den här guiden bör ha det här prefixet.
  3. Välj den resursgrupp som skapades i den här självstudien.
  4. 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: