Oefening: de Spring Boot Redis-toepassing implementeren in Azure

Voltooid

Nu alles lokaal wordt uitgevoerd, kunt u de toepassing implementeren in de cloud en het gedrag ervan testen in productie.

Een Azure App Service-exemplaar maken

Maak een Azure-app Service-exemplaar om uw toepassing te hosten. Gebruik de volgende Azure CLI-code om een eenvoudig App Service-plan te maken dat gebruikmaakt van Linux en voeg vervolgens een exemplaar van Java in App Service in dat plan toe.

Als u Java 11 of Java 17 in plaats van Java 8 wilt gebruiken, gebruikt "JAVA|<version>-java<version>" u in plaats van "JAVA|8-jre8" als runtime van de webtoepassing.

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

Notitie

Met de voorgaande code wordt de variabele opnieuw gebruikt om het $AZ_REDIS_NAME App Service-plan en het App Service-exemplaar een naam te geven, maar u kunt verschillende namen gebruiken. De naam van het App Service-exemplaar maakt deel uit van de URL, die uniek moet zijn in Azure.

U kunt de volgende stap uitvoeren terwijl deze implementatie is voltooid.

De Spring Boot-toepassing implementeren in Azure-app Service

  1. Voeg in het pom.xml-bestand van uw project de volgende nieuwe invoegtoepassing toe in de <plugins> sectie:

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

    Notitie

    In de voorgaande configuratie worden de omgevingsvariabelen gebruikt die u eerder hebt geconfigureerd. Zorg ervoor dat uw $AZ_RESOURCE_GROUP en $AZ_REDIS_NAME variabelen correct zijn ingesteld om deze configuratie te laten werken.

  2. Nadat de Implementatie van App Service is voltooid, voert u de volgende opdracht uit om uw toepassing te verpakken en te implementeren in Azure:

    ./mvnw package azure-webapp:deploy
    
  3. Wanneer de implementatie is voltooid, wordt de volgende regel geretourneerd:

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

    Noteer de URL van uw actieve toepassing, zoals wordt weergegeven in de voorgaande uitvoer, die u in de volgende sectie wilt gebruiken.

De toepassing testen in Azure

Gebruik uw toepassings-URL om dezelfde cURL-opdrachten (client-URL) uit te voeren in de cloud die u op uw lokale server hebt gebruikt.

  1. Voer de volgende opdracht uit om een gegevensitem toe te voegen:

    curl -d '{"description":"another description", "details":"some more details"}' -H "Content-Type: application/json" -X POST https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  2. Voer het volgende uit om de gegevens op te halen:

    curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  3. Als u uw sessie wilt verhogen, voert u de volgende opdracht meerdere keren uit:

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

Uw lokale server en uw cloudservice gebruiken hetzelfde Redis-exemplaar, zodat ze zijn geclusterd. Gegevens die u in het ene exemplaar schrijft, zijn beschikbaar in het andere exemplaar. De cloudservice kan worden uitgebreid door meer knooppunten toe te voegen die allemaal hetzelfde Redis-exemplaar gebruiken om zowel zakelijke gegevens als sessiegegevens op te slaan.