练习 - 将 Spring Boot Redis 应用程序部署到 Azure
现在,所有内容都在本地运行,可以将应用程序部署到云,并在生产环境中测试其行为。
创建 Azure 应用服务实例
创建用于托管应用程序的 Azure 应用服务实例。 使用以下 Azure CLI 代码创建使用 Linux 的基本应用服务计划,然后在该计划中添加应用服务中的 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
来命名应用服务计划和应用服务实例,但可以使用不同的名称。 应用服务实例名称是 URL 的一部分,该 URL 在 Azure 中必须是唯一的。
在部署进行的同时,您可以执行下一步。
将 Spring Boot 应用程序部署到 Azure 应用服务
在项目的 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
变量。应用服务部署完成后,运行以下命令来打包应用程序并将其部署到 Azure:
./mvnw package azure-webapp:deploy
部署成功完成后,它将返回以下行:
Successfully deployed the artifact to https://<redisName>-webapp.azurewebsites.net
请记录正在运行的应用程序的 URL,如前面的输出所示,以便在下一步中使用。
在 Azure 上测试应用程序
使用您的应用程序 URL 在云环境中运行您在本地服务器上使用的相同客户端 URL (cURL) 命令。
若要添加数据项,请运行以下命令:
curl -d '{"description":"another description", "details":"some more details"}' -H "Content-Type: application/json" -X POST https://$AZ_REDIS_NAME-webapp.azurewebsites.net
若要检索数据,请运行:
curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
若要递增会话,请多次运行以下命令:
curl -b cookie.txt -c cookie.txt https://$AZ_REDIS_NAME-webapp.azurewebsites.net/session
本地服务器和云服务使用相同的 Redis 实例,因此它们已群集化。 在一个实例中写入的数据在其他实例中可用。 云服务可以通过添加更多节点来扩展,这些节点都使用相同的 Redis 实例来存储业务数据和会话数据。