Sdílet prostřednictvím


Nasazení webové aplikace Quarkus do služby Azure App Service pomocí Mavenu

V tomto rychlém startu použijete modul plug-in Maven pro Azure App Service Web Apps k nasazení aplikace Quarkus do Azure App Service v Linuxu. Pokud chcete konsolidovat závislosti aplikace, modul runtime a konfiguraci do jednoho nasaditelného artefaktu, zvolte nasazení Java SE přes soubory Tomcat a WAR.

Pokud nemáte předplatné Azure, vytvořte si bezplatný účet ještě před začátkem.

Požadavky

Přihlášení k Azure CLI

Nejjednodušším a nejsnadnějším způsobem, jak získat modul plug-in Maven, který nasazuje aplikaci Quarkus, je použití Azure CLI.

Přihlaste se ke svému účtu Azure pomocí Azure CLI:

az login

Dokončete proces přihlášení podle pokynů.

Vytvoření ukázkové aplikace z úvodní sady MicroProfile

V této části vytvoříte aplikaci Quarkus a otestujete ji místně.

Vytvoření základního projektu Java SE 8

  1. Otevřete webový prohlížeč a přejděte na web MicroProfile Starter.

    snímek obrazovky s vybranou možností MicroProfile Starter s modulem runtime Quarkus

  2. Zadejte následující hodnoty pro uvedená pole:

    Pole Hodnota
    groupId com.microsoft.azure.samples.quarkus
    artifactId quarkus-hello-azure
    Verze MicroProfile MP 3.2
    Verze Java SE Java 8
    MicroProfile Runtime Quarkus
    Příklady pro specifikace Metriky, OpenAPI
  3. Vyberte STÁHNOUT a stáhněte si projekt.

  4. Rozbalte archivní soubor pomocí následujícího příkazu:

    unzip Quarkus-hello-azure.zip
    

Vytvoření základního projektu Java SE 11

K vytvoření základního projektu Java 11 použijte následující příkaz:

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"

Spuštění aplikace v místním prostředí

  1. Pomocí následujícího příkazu změňte adresář na dokončený projekt:

    cd quarkus-hello-azure/
    
  2. Sestavte a spusťte projekt pomocí následujícího příkazu Maven:

    mvn quarkus:dev
    
  3. Otestujte webovou aplikaci tak, že na ni přejdete místně pomocí webového prohlížeče. Pokud máte například curl k dispozici, můžete použít následující příkaz:

    Pro projekt Java SE 8:

    curl http://localhost:8080/data/hello
    

    Pro projekt Java SE 11:

    curl http://localhost:8080/hello
    
  4. Měla by se zobrazit následující zpráva: Hello World nebo hello.

Konfigurace modulu plug-in Maven pro Azure App Service

V této části nakonfigurujete projekt Quarkus pom.xml soubor tak, aby Maven mohl nasadit aplikaci do služby Azure App Service v Linuxu.

  1. Otevřete soubor pom.xml v editoru kódu.

  2. Do <build> části souboru pom.xml vložte následující <plugin> položku do značky <plugins> za maven-surefire-plugin.

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>2.13.0</version>
    </plugin>
    
  3. Pokud chcete nakonfigurovat nasazení, spusťte následující příkaz Mavenu:

    mvn azure-webapp:config
    

    Po zobrazení výzvy vyberte následující možnosti:

    Vstupní pole Vstupní/výběrové hodnoty
    Volba předplatného Zadejte ID předplatného.
    Definujte hodnotu pro OS(Default: Linux): 2. linux
    Definovat hodnotu pro javaVersion(Výchozí: Java 8): 2. Java 11
    Definujte hodnotu pro pricingTier(Default: P1v2): 3. P1v2
    Potvrdit (Y/N) y

    Tento příkaz vytvoří výstup podobný následujícímu příkladu:

    [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. Přidejte oddíl <appSettings> do oddílu <configuration> pro PORT, WEBSITES_PORTa WEBSITES_CONTAINER_START_TIME_LIMIT. Položka XML pro azure-webapp-maven-plugin by měla vypadat podobně jako v následujícím příkladu:

    <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. Do souboru src/main/resources/application.properties přidejte následující položku pro vytvoření souboru uber-jar, označovaného také jako fat Jar:

    quarkus.package.type=uber-jar
    

Nasazení aplikace do Azure

Po nakonfigurování všech nastavení v předchozích částech tohoto článku jste připraveni nasadit webovou aplikaci do Azure. Provedete to pomocí následujících kroků:

  1. Pokud jste v souboru pom.xml provedli nějaké změny, znovu sestavte soubor JAR pomocí následujícího příkazu:

    mvn clean package
    
  2. Nasaďte webovou aplikaci do Azure pomocí následujícího příkazu:

    mvn azure-webapp:deploy
    

Pokud nasazení proběhne úspěšně, zobrazí se následující výstup:

[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 nasadí vaši webovou aplikaci do Azure. Pokud webová aplikace nebo plán webové aplikace ještě neexistují, vytvoří se za vás. Než se webová aplikace zobrazí na adrese URL zobrazené ve výstupu, může to několik minut trvat. Ve webovém prohlížeči přejděte na adresu URL. Měla by se zobrazit následující obrazovka:

snímek obrazovky webového prohlížeče s úvodní stránkou Quarkus

Po nasazení webové aplikace ji můžete spravovat prostřednictvím webu Azure Portal.

Vaše webová aplikace je uvedená ve skupině prostředků mikroprofilu.

Přístup ke své webové aplikaci získáte tak, že na stránce Přehled své webové aplikace vyberete Procházet. Ověřte, že nasazení proběhlo úspěšně a běží.

Potvrďte logovací stream ze služby App Service, která běží

Pomocí následujícího příkazu můžete zobrazit protokoly ze spuštěné služby App Service nebo použít příkaz tail. Všechna volání console.log v kódu lokality se zobrazí v terminálu.

az webapp log tail 
    --resource-group microprofile \
    --name quarkus-hello-azure-1601011883156

snímek obrazovky okna terminálu s streamem protokolu

Vyčištění prostředků

Pokud už prostředky Azure nepotřebujete, vyčistěte prostředky, které jste nasadili, odstraněním skupiny prostředků. Provedete to pomocí následujících kroků:

  1. V Azure portálu vyberte v nabídce skupinu prostředků.
  2. Do pole Filtrovat podle názvu zadejte microprofile. Skupina prostředků vytvořená v této výukové lekci by měla mít tuto předponu.
  3. Vyberte skupinu prostředků vytvořenou v tomto kurzu.
  4. V nabídce vyberte Odstranit skupinu prostředků.

Další kroky

Další informace o MicroProfile a Azure najdete v centru dokumentace k MicroProfile v Azure.

Další zdroje informací

Další informace o různých technologiích probíraných v tomto článku najdete v následujících článcích: