Udostępnij za pośrednictwem


Wdrażanie aplikacji internetowej Quarkus w usłudze Azure App Service przy użyciu narzędzia Maven

W tym przewodniku Szybki start użyjesz wtyczki Maven dla usługi Azure App Service Web Apps w celu wdrożenia aplikacji Quarkus w celu usługi Azure App Service w systemie Linux. Wybierz wdrożenie Java SE zamiast Tomcat i plików WAR, gdy chcesz skonsolidować zależności, środowisko uruchomieniowe i konfigurację aplikacji w pojedynczy artefakt wdrażalny.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto .

Warunki wstępne

  • Interfejs wiersza polecenia Azure , lokalnie lub za pośrednictwem usługi Azure Cloud Shell .
  • Obsługiwany Zestaw do Tworzenia Oprogramowania w Javie (JDK). Aby uzyskać więcej informacji na temat zestawów JDK dostępnych do użycia podczas tworzenia aplikacji na platformie Azure, zobacz obsługa języka Java na platformie Azure i w usłudze Azure Stack.
  • Apache Mavenw wersji 3.

Zaloguj się do interfejsu wiersza polecenia platformy Azure

Najprostszym i najprostszym sposobem uzyskania wtyczki Maven wdrażającej aplikację Quarkus jest użycie interfejsu wiersza polecenia platformy Azure.

Zaloguj się do konta platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure:

az login

Postępuj zgodnie z instrukcjami, aby ukończyć proces logowania.

Tworzenie przykładowej aplikacji na podstawie szablonu startowego MicroProfile

W tej sekcji utworzysz aplikację Quarkus i przetestujesz ją lokalnie.

Utwórz podstawowy projekt Java SE 8

  1. Otwórz przeglądarkę internetową i przejdź do witryny MicroProfile Starter.

    zrzut ekranu przedstawiający narzędzie MicroProfile Starter z wybranym środowiskiem uruchomieniowym Quarkus.

  2. Podaj następujące wartości dla wskazanych pól:

    Pole Wartość
    identyfikatorGrupy com.microsoft.azure.samples.quarkus
    artifactId quarkus-hello-azure
    Wersja programu MicroProfile MP 3.2
    Wersja środowiska Java SE Java 8
    Środowisko uruchomieniowe microProfile Kwarkus
    Przykłady specyfikacji Metryki, OpenAPI
  3. Wybierz pozycję POBIERZ, aby pobrać projekt.

  4. Rozpakuj plik archiwum przy użyciu następującego polecenia:

    unzip Quarkus-hello-azure.zip
    

Stwórz podstawowy projekt Java SE 11

Aby utworzyć projekt podstawowy java 11, użyj następującego polecenia:

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"

Uruchamianie aplikacji w środowisku lokalnym

  1. Zmień katalog na ukończony projekt, używając następującego polecenia:

    cd quarkus-hello-azure/
    
  2. Skompiluj i uruchom projekt przy użyciu następującego polecenia narzędzia Maven:

    mvn quarkus:dev
    
  3. Przetestuj aplikację internetową, przechodząc do niej lokalnie przy użyciu przeglądarki internetowej. Na przykład możesz użyć następującego polecenia, jeśli masz dostępną curl:

    W przypadku projektu Java SE 8:

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

    W przypadku projektu Java SE 11:

    curl http://localhost:8080/hello
    
  4. Powinien zostać wyświetlony następujący komunikat: Hello World lub hello.

Konfigurowanie wtyczki Maven dla usługi Azure App Service

W tej sekcji skonfigurujesz plik pom.xml projektu Quarkus, aby program Maven mógł wdrożyć aplikację w usłudze Azure App Service w systemie Linux.

  1. Otwórz plik pom.xml w edytorze kodu.

  2. W sekcji <build> pliku pom.xml wstaw następujący wpis <plugin> wewnątrz tagu <plugins> po maven-surefire-plugin.

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>2.13.0</version>
    </plugin>
    
  3. Aby skonfigurować wdrożenie, uruchom następujące polecenie narzędzia Maven:

    mvn azure-webapp:config
    

    Po wyświetleniu monitu wybierz następujące opcje:

    Pole wejściowe Dane wejściowe/wybierz wartość
    Wybieranie subskrypcji Wprowadź identyfikator subskrypcji.
    Zdefiniuj wartość dla systemu operacyjnego (ustawienie domyślne: Linux): 2. linux
    Zdefiniuj wartość parametru javaVersion(Ustawienie domyślne: Java 8): 2. Java 11
    Zdefiniuj wartość parametru pricingTier(Default: P1v2): 3. P1v2
    Potwierdź (Y/N) y

    To polecenie generuje dane wyjściowe podobne do następującego przykładu:

    [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. Dodaj sekcję <appSettings> do sekcji <configuration>PORT, WEBSITES_PORTi WEBSITES_CONTAINER_START_TIME_LIMIT. Wpis XML dla azure-webapp-maven-plugin powinien wyglądać podobnie do poniższego przykładu:

    <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. Dodaj następujący wpis do pliku src/main/resources/application.properties, aby utworzyć plik uber-jar, znany również jako fat Jar:

    quarkus.package.type=uber-jar
    

Wdrażanie aplikacji na platformie Azure

Po skonfigurowaniu wszystkich ustawień w poprzednich sekcjach tego artykułu możesz przystąpić do wdrażania aplikacji internetowej na platformie Azure. W tym celu wykonaj następujące czynności:

  1. Jeśli wprowadzono jakiekolwiek zmiany w pliku pom.xml, skompiluj plik JAR przy użyciu następującego polecenia:

    mvn clean package
    
  2. Wdróż aplikację internetową na platformie Azure przy użyciu następującego polecenia:

    mvn azure-webapp:deploy
    

Jeśli wdrożenie zakończy się pomyślnie, zobaczysz następujące dane wyjściowe:

[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] ------------------------------------------------------------------------

Narzędzie Maven wdraża aplikację internetową na platformie Azure. Jeśli plan aplikacji internetowej lub aplikacja internetowa jeszcze nie istnieją, zostaną utworzone dla Ciebie. Zanim aplikacja internetowa będzie widoczna pod adresem URL widocznym w danych wyjściowych, może upłynąć kilka minut. Przejdź do adresu URL w przeglądarce internetowej. Powinien zostać wyświetlony następujący ekran:

Zrzut ekranu przeglądarki internetowej przedstawiający stronę frontonu aplikacji Quarkus.

Po wdrożeniu aplikacji internetowej można zarządzać nią za pośrednictwem witryny Azure Portal.

Aplikacja internetowa znajduje się na liście w grupie zasobów Microprofile.

Możesz uzyskać dostęp do swojej aplikacji internetowej, wybierając Przeglądaj na stronie Podgląd dla swojej aplikacji internetowej. Sprawdź, czy wdrożenie zakończyło się pomyślnie i zostało uruchomione.

Potwierdź strumień dziennika z uruchomionej usługi App Service

Możesz użyć następującego polecenia, aby wyświetlić — lub tail — dzienniki z uruchomionej usługi App Service. Wszystkie wywołania console.log w kodzie witryny są wyświetlane w terminalu.

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

Zrzut ekranu przedstawiający okno terminalu z strumieniem dziennika.

Czyszczenie zasobów

Gdy zasoby platformy Azure nie są już potrzebne, wyczyść wdrożone zasoby, usuwając grupę zasobów. W tym celu wykonaj następujące czynności:

  1. W witrynie Azure Portal wybierz pozycję Grupa zasobów z menu.
  2. Wprowadź microprofile w polu Filtruj według nazwy. Grupa zasobów utworzona w tym samouczku powinna mieć ten prefiks.
  3. Wybierz grupę zasobów utworzoną w tym samouczku.
  4. Wybierz Usuń grupę zasobów z menu.

Następne kroki

Aby dowiedzieć się więcej na temat programu MicroProfile i platformy Azure, przejdź do centrum dokumentacji usługi MicroProfile na platformie Azure.

Dodatkowe zasoby

Aby uzyskać więcej informacji na temat różnych technologii omówionych w tym artykule, zobacz następujące artykuły: