Freigeben über


Bereitstellen einer Helidon-Web-App in Azure App Service mit Maven

In dieser Schnellstartanleitung wird das Maven-Plug-In für Azure App Service-Web-Apps verwendet, um eine Helidon-Anwendung in Azure App Service für Linux bereitzustellen. Es empfiehlt sich, eine Java SE-Bereitstellung über Tomcat- und WAR-Dateien zu wählen, wenn Sie die Abhängigkeiten, Runtime und Konfiguration Ihrer App in einem einzigen bereitstellbaren Artefakt zusammenfassen möchten.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Voraussetzungen

Anmelden bei der Azure-Befehlszeilenschnittstelle

Bei Verwendung des Maven-Plug-Ins lässt sich die Helidon-Anwendung am einfachsten und komfortabelsten über die Azure-Befehlszeilenschnittstelle bereitstellen.

Melden Sie sich mithilfe der Azure CLI bei Ihrem Azure-Konto an:

az login

Folgen Sie den Anweisungen, um den Anmeldevorgang abzuschließen.

Erstellen einer Beispiel-App über MicroProfile Starter

In diesem Abschnitt wird eine Helidon-Anwendung erstellt und lokal getestet.

  1. Öffnen Sie einen Webbrowser, und navigieren Sie zur Website MicroProfile Starter.

    Screenshot, der MicroProfile Starter mit ausgewählter Helidon-Laufzeit zeigt.

  2. Füllen Sie die Felder wie folgt aus:

    Feld Wert
    groupId com.microsoft.azure.samples.helidon
    artifactId helidon-hello-azure
    „MicroProfile Version“ (MicroProfile-Version) MP 3.2
    „Java SE Version“ (Java SE-Version) Java 11
    „MicroProfile Runtime“ (MicroProfile-Runtime) Helidon
    „Examples for Specifications“ (Beispiele für Spezifikationen) Metriken, OpenAPI
  3. Wählen Sie "HERUNTERLADEN " aus, um das Projekt herunterzuladen.

  4. Entzippen Sie die Archivdatei. Beispiel:

    unzip helidon-hello-azure.zip
    
  5. Alternativ können Sie das Projekt mithilfe des folgenden Befehls erstellen:

    mvn -U archetype:generate -DinteractiveMode=false \
        -DarchetypeGroupId=io.helidon.archetypes \
        -DarchetypeArtifactId=helidon-quickstart-se \
        -DarchetypeVersion=2.0.0 \
        -DgroupId=com.microsoft.azure.samples.helidon \
        -DartifactId=helidon-hello-azure \
        -Dpackage=com.microsoft.azure.samples.helidon
    
  6. Wechseln Sie in das Verzeichnis mit dem abgeschlossenen Projekt. Beispiel:

    cd helidon-hello-azure/
    
  7. Erstellen Sie die JAR-Datei mit Maven. Beispiel:

    mvn clean package
    
  8. Starten Sie die Web-App nach der Erstellung mithilfe von Maven. Beispiel:

    java -jar target/helidon-hello-azure.jar
    
  9. Testen Sie die Web-App, indem Sie sie lokal mit einem Webbrowser durchsuchen. Sie können beispielsweise den folgenden Befehl verwenden, wenn curl verfügbar ist:

    curl http://localhost:8080/greet
    
  10. Die folgende Meldung sollte angezeigt werden: Hallo Welt

Konfigurieren des Maven-Plug-Ins für Azure App Service

In diesem Abschnitt wird die Datei pom.xml des Helidon-Projekts so konfiguriert, dass Maven die App in Azure App Service für Linux bereitstellen kann.

  1. Öffnen Sie die Datei pom.xml in einem Code-Editor.

  2. Fügen Sie in der Datei pom.xml im Abschnitt <build> innerhalb des Tags <plugin> den folgenden Eintrag vom Typ <plugins> hinzu:

    <build>
      <finalName>helidon-hello-azure</finalName>
      <plugins>
        <plugin>
          <groupId>com.microsoft.azure</groupId>
          <artifactId>azure-webapp-maven-plugin</artifactId>
          <version>1.10.0</version>
        </plugin>
      </plugins>
    </build>
    
  3. Anschließend können Sie die Bereitstellung konfigurieren, den folgenden Maven-Befehl ausführen:

    mvn azure-webapp:config
    

    Wählen Sie nach der entsprechenden Aufforderung die folgenden Optionen aus:

    Eingabefeld Einzugebender/Auszuwählender Wert
    Define value for OS(Default: Linux): 1. linux
    Define value for javaVersion(Default: Java 8): 1. Java 11
    Confirm (Y/N) (Bestätigen (Ja/Nein)) j

    Dieser Befehl erzeugt eine Ausgabe ähnlich wie im folgenden Beispiel:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------< com.microsoft.azure.samples.helidon:helidon-hello-azure >-------
    [INFO] Building myproject 1.0-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp-maven-plugin:1.10.0:config (default-cli) @ helidon-hello-azure ---
    Define value for OS(Default: Linux):
    1. linux [*]
    2. windows
    3. docker
    Enter index to use: 1
    Define value for javaVersion(Default: Java 8):
    1. Java 11
    2. Java 8 [*]
    Enter index to use: 1
    Please confirm webapp properties
    AppName : helidon-hello-azure-1600998900939
    ResourceGroup : helidon-hello-azure-1600998900939-rg
    Region : westeurope
    PricingTier : PremiumV2_P1v2
    OS : Linux
    RuntimeStack : JAVA 11-java11
    Deploy to slot : false
    Confirm (Y/N)? : y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  02:44 min
    [INFO] Finished at: 2020-09-25T10:57:35+09:00
    [INFO] ------------------------------------------------------------------------
    
  4. Fügen Sie den <appSettings> Abschnitt zum <configuration> Abschnitt von PORT, WEBSITES_PORT, und WEBSITES_CONTAINER_START_TIME_LIMIT. Fügen Sie die <include>/libs/*.jar</include> Ressourcen in der Bereitstellung hinzu.

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>1.10.0</version>
      <configuration>
        <schemaVersion>V2</schemaVersion>
        <resourceGroup>microprofile</resourceGroup>
        <appName>helidon-hello-azure-1591663020899</appName>
        <pricingTier>P1v2</pricingTier>
        <region>japaneast</region>
        <runtime>
          <os>linux</os>
          <javaVersion>java11</javaVersion>
          <webContainer>java11</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>
                <include>/libs/*.jar</include>
              </includes>
            </resource>
          </resources>
        </deployment>
      </configuration>
    

Bereitstellen der Anwendung in Azure

Nachdem Sie alle Einstellungen in den vorherigen Abschnitten dieses Artikels konfiguriert haben, können Sie Ihre Web-App in Azure bereitstellen. Führen Sie dazu die folgenden Schritte aus:

  1. Erstellen Sie an der Eingabeaufforderung oder im zuvor verwendeten Terminalfenster die JAR-Datei mithilfe von Maven neu, wenn Sie Änderungen an der Datei pom.xml vorgenommen haben. Beispiel:

    mvn clean package
    
  2. Stellen Sie Ihre Web-App mit Maven in Azure bereit. Beispiel:

    mvn azure-webapp:deploy
    

Maven stellt Ihre Web-App in Azure bereit. Wenn der Web-App- oder Web-App-Plan noch nicht vorhanden ist, wird er für Sie erstellt. Es kann einige Minuten dauern, bis die Web-App unter der URL aus der Ausgabe angezeigt wird. Navigieren Sie in einem Webbrowser zu der URL. Die Meldung sollte angezeigt werden: Hallo Welt

Wenn Ihr Web bereitgestellt wurde, können Sie es über die Azure-Portal verwalten.

Ihre Web-App wird in App Services aufgeführt.

Sie können auf Ihre Web-App zugreifen, indem Sie auf der Seite "Übersicht" für Ihre Web-App die Option "Durchsuchen" auswählen.

Vergewissern Sie sich mithilfe des gleichen cURL-Befehls wie zuvor (/data/hello), dass die Bereitstellung erfolgreich war. Verwenden Sie dabei anstelle von localhost die URL Ihrer Web-App aus dem Portal. Die folgende Meldung sollte angezeigt werden: Hallo Welt

Bestätigen des Protokolldatenstroms aus dem ausgeführten App-Dienst

Sie können die Protokolle der ausgeführten App Service-Instanz anzeigen (mithilfe von „tail“). Alle Aufrufe von console.log im Websitecode werden im Terminal angezeigt.

az webapp log tail \
    --resource-group microprofile \
    --name helidon-hello-azure-1600998900939

Screenshot des Terminalfensters, in dem die Protokollausgabe angezeigt wird.

Bereinigen von Ressourcen

Wenn Sie die Azure-Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe, um die bereitgestellten Ressourcen zu bereinigen.

  • Wählen Sie im Azure-Portal im linken Menü die Option Ressourcengruppe aus.
  • Geben Sie microprofile in das Feld Nach Name filtern ein. (Die in diesem Tutorial erstellte Ressourcengruppe sollte dieses Präfix haben.)
  • Wählen Sie die Ressourcengruppe aus, die in diesem Tutorial erstellt wurde.
  • Wählen Sie Ressourcengruppe löschen aus dem Menü ganz oben aus.

Nächste Schritte

Weitere Informationen zu MicroProfile und Azure finden Sie im Dokumentationscenter zu MicroProfile in Azure.

Zusätzliche Ressourcen

Weitere Informationen zu den verschiedenen in diesem Artikel besprochenen Technologien finden Sie in den folgenden Artikeln: