Distribuzione di un'app Java di esempio

Completato

In questa unità si configurerà un'applicazione Spring Boot da distribuire tramite Maven. Si distribuirà quindi l'applicazione in un'istanza del servizio app di Azure. Questa unità illustra l'esempio di una clinica per animali domestici.

Applicazione di esempio

Clonare quanto segue nello strumento da riga di comando preferito:

git clone https://github.com/spring-projects/spring-petclinic.git

Eseguire quindi l'applicazione in locale:

cd spring-petclinic

./mvnw package

java -jar target/*.jar

Quando si apre l'esempio nel browser, dovrebbe essere simile al seguente:

Screenshot che mostra la selezione nella distribuzione locale dell'applicazione di esempio della clinica veterinaria.

Preparare l'applicazione di esempio per essere pronta per il cloud

Nella cartella src sono disponibili classi di oggetto, controller e repository.

Poiché Java è indipendente dalla piattaforma, è possibile scegliere il sistema operativo, ma la versione Java è importante per la distribuzione. È possibile trovare la versione java nel file pom.xml.

<properties>
    <java.version>17</java.version>
</properties>

L'esempio usa Java 8, quindi anche l'istanza del servizio app di Azure, linux o Windows, deve usare Java 8. Poiché la piattaforma non è importante, si userà Linux per l'esempio.

È necessario aggiungere alcune dipendenze di Azure al file pom.xml. L'aggiunta delle dipendenze può verificarsi automaticamente se si esegue il comando seguente:

mvn com.microsoft.azure:azure-webapp-maven-plugin:2.11.1:config

L'output di tale comando richiede alcune opzioni da specificare. Queste opzioni verranno archiviate automaticamente in pom.xml.

Please choose which part to config:
* 1: Application
  2: Runtime
  3: DeploymentSlot
Enter your choice: 1
Define value for appName [spring-petclinic-XXXX200]:
Define value for resourceGroup [spring-petclinic-XXXX200-rg]:
Define value for region [westeurope]:
Define value for pricingTier(P1v2):
   1: b1
   2: b2
   3: b3
   4: d1
   5: f1
*  6: p1v2
   7: p2v2
   8: p3v2
   9: s1
  10: s2
  11: s3
Enter your choice: 1
Please confirm webapp properties
AppName : spring-petclinic-XXXX200
ResourceGroup : spring-petclinic-XXXX200-rg
Region : westeurope
PricingTier : Basic_B2
OS : Linux
RuntimeStack : JAVA 8-jre8
Deploy to slot : false
Confirm (Y/N) [Y]: y

[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

Come si può notare, è possibile usare le impostazioni predefinite per una distribuzione semplice.

Il file pom.xml ora ha aggiunto il plug-in necessario per la distribuzione automatica basata su Maven in Azure.

 <plugin>
    <groupId>com.microsoft.azure</groupId>  
        <artifactId>azure-webapp-maven-plugin</artifactId>  
        <version>2.11.1</version>  
        <configuration>
          <schemaVersion>V2</schemaVersion>  
          <subscriptionId>XXX-XXX-XXX</subscriptionId>  
          <resourceGroup>spring-petclinic-XXX200-rg</resourceGroup>  
          <appName>spring-petclinic-XXX200</appName>  
          <pricingTier>B2</pricingTier>  
          <region>westeurope</region>  
          <runtime>
            <os>linux</os>  
            <javaVersion>jre8</javaVersion>  
            <webContainer>jre8</webContainer>
          </runtime>  
          <deployment>
            <resources>
              <resource>
                <directory>${project.basedir}/target</directory>  
                <includes>
                  <include>*.jar</include>
                </includes>
              </resource>
            </resources>
          </deployment>
        </configuration>
  </plugin>

Distribuire l'applicazione con Maven

Siamo già pronti per la distribuzione sul servizio app di Azure.

mvn package com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:deploy

Questo comando esegue i test. Viene quindi avviata automaticamente un'istanza del servizio app di Azure e viene distribuita l'applicazione in pacchetto.

Screenshot dell'applicazione di esempio della clinica veterinaria distribuita.

Congratulazioni! L'app viene distribuita correttamente nel servizio app di Azure.