練習 - 將 Spring Boot Redis 應用程式部署至 Azure

已完成

既然所有項目已在本機執行,您可以將應用程式部署至雲端,並在生產環境中測試其行為。

建立 Azure App Service 執行個體

建立一個 Azure App Service 執行個體來裝載您的應用程式。 使用下列 Azure CLI 程式碼來建立使用 Linux 的基本 App Service 方案,然後在該方案的 App Service 上新增 Java 執行個體。

若要使用 Java 11 或 Java 17 而不是 Java 8,請使用 "JAVA|<version>-java<version>" (而非"JAVA|8-jre8") 作為 Web 應用程式執行階段。

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

注意

上述程式碼會重複使用 $AZ_REDIS_NAME 變數來命名 App Service 方案和 App Service 執行個體,但是您可以使用不同的名稱。 App Service 執行個體名稱是 URL 的一部分,在整個 Azure 中必須是唯一的。

您可以在此部署完成時執行下一個步驟。

將 Spring Boot 應用程式部署到 Azure App Service

  1. 在專案的 pom.xml 檔案中,新增下列新外掛程式至 <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>
    

    注意

    上述設定使用您先前設定的環境變數。 若要讓此設定正常運作,請確定您有正確設定 $AZ_RESOURCE_GROUP$AZ_REDIS_NAME 變數。

  2. App Service 部署完成之後,請執行下列命令來封裝您的應用程式,並將其部署至 Azure:

    ./mvnw package azure-webapp:deploy
    
  3. 當部署成功完成時,它會傳回下列這行:

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

    記下執行中應用程式的 URL (如之前輸出所示),以在下一區段中使用。

再 Azure 上測試應用程式

使用您的應用程式 URL 以在本機伺服器上使用的雲端中執行相同的用戶端 URL (cURL) 命令。

  1. 若要新增資料項目,請執行下列命令:

    curl -d '{"description":"another description", "details":"some more details"}' -H "Content-Type: application/json" -X POST https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  2. 若要擷取該資料,請執行:

    curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  3. 若要遞增您的工作階段,請執行下列命令數次:

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

您的本機伺服器和雲端服務會使用相同的 Redis 執行個體,因此它們是叢集的。 您在一個執行個體中撰寫的資料,都可在另一個執行個體中使用。 雲端服務可透過新增更多全部使用相同 Redis 執行個體來儲存商務資料和工作階段資料的節點,而加以擴增。