Övning – Distribuera Spring Boot Redis-programmet till Azure

Slutförd

Nu när allt körs lokalt kan du distribuera programmet till molnet och testa dess beteende i produktion.

Skapa en Azure App Service-instans

Skapa en Azure App Service-instans som värd för ditt program. Använd följande Azure CLI-kod för att skapa en grundläggande App Service-plan som använder Linux och sedan lägga till en instans av Java på App Service i den planen.

Om du vill använda Java 11 eller Java 17 i stället för Java 8 använder du "JAVA|<version>-java<version>" i stället för "JAVA|8-jre8" som webbprogramkörning.

az appservice plan create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_REDIS_NAME-webapp-plan \
    --is-linux \
    --sku B1

az webapp create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_REDIS_NAME-webapp \
    --runtime "JAVA|8-jre8" \
    --plan $AZ_REDIS_NAME-webapp-plan

Anteckning

Föregående kod återanvänder variabeln $AZ_REDIS_NAME för att namnge App Service-planen och App Service-instansen, men du kan använda olika namn. App Service-instansnamnet är en del av URL:en, som måste vara unik i Hela Azure.

Du kan göra nästa steg när distributionen är klar.

Distribuera Spring Boot-programmet till Azure App Service

  1. I projektets pom.xml-fil lägger du till följande nya plugin-program i avsnittet <plugins>:

    <plugin>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-webapp-maven-plugin</artifactId>
        <version>2.11.0</version>
        <configuration>
            <schemaVersion>V2</schemaVersion>
            <resourceGroup>${env.AZ_RESOURCE_GROUP}</resourceGroup>
            <appName>${env.AZ_REDIS_NAME}-webapp</appName>
            <deployment>
                <resources>
                    <resource>
                        <directory>${project.basedir}/target</directory>
                        <includes>
                            <include>*.jar</include>
                        </includes>
                    </resource>
                </resources>
            </deployment>
        </configuration>
    </plugin>
    

    Anteckning

    I den föregående konfigurationen används de miljövariabler som du konfigurerade tidigare. För att den här konfigurationen ska fungera kontrollerar du att dina $AZ_RESOURCE_GROUP- och $AZ_REDIS_NAME variabler är korrekt konfigurerade.

  2. När App Service-distributionen är klar kör du följande kommando för att paketera ditt program och distribuera det till Azure:

    ./mvnw package azure-webapp:deploy
    
  3. När distributionen har slutförts returneras följande rad:

    Successfully deployed the artifact to https://<redisName>-webapp.azurewebsites.net
    

    Observera URL:en för ditt program som körs, som du ser i föregående utdata, som ska användas i nästa avsnitt.

Testa programmet i Azure

Använd din program-URL för att köra samma klient-URL-kommandon (cURL) i molnet som du använde på den lokala servern.

  1. Om du vill lägga till ett dataobjekt kör du följande kommando:

    curl -d '{"description":"another description", "details":"some more details"}' -H "Content-Type: application/json" -X POST https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  2. Hämta data genom att köra:

    curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  3. Om du vill öka sessionen kör du följande kommando flera gånger:

    curl -b cookie.txt -c cookie.txt https://$AZ_REDIS_NAME-webapp.azurewebsites.net/session
    

Din lokala server och molntjänst använder samma Redis-instans, så de är i ett kluster. Data som du skriver i en instans är tillgängliga i den andra instansen. Molntjänsten kan skala ut genom att lägga till fler noder som alla använder samma Redis-instans för att lagra både affärsdata och sessionsdata.