你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:集成 Azure Database for PostgreSQL 和 Azure Cache for Redis
注意
从 2025 年 3 月中旬开始,基本、标准和企业计划将弃用,停用期为三年。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
从 2024 年 9 月 30 日开始,标准消耗和专用计划将弃用,六个月后将完全关闭。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用。
本文适用于:❌ 基本版/标准版 ✔️ 企业版
本快速入门介绍如何预配和准备 Azure Database for PostgreSQL 和 Azure Cache for Redis,以便与 Azure Spring Apps Enterprise 计划中运行的应用一起使用。
本文使用这些服务进行演示。 可以使用与本文后面的创建服务连接器部分中的说明类似的说明,将应用程序连接到所选的任何备份服务。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 了解并满足 Azure 市场中企业计划的要求部分。
- Azure CLI 版本 2.45.0 或更高版本。
- Git。
- jq
- Azure Spring Apps 企业计划扩展。 使用以下命令删除以前的版本,并安装最新的企业计划扩展。 如果以前安装了
spring-cloud
扩展,请卸载它以避免配置和版本不匹配。az extension add --upgrade --name spring az extension remove --name spring-cloud
- 完成使用企业计划生成应用并将其部署到 Azure Spring Apps 中的步骤。
设置服务
若要向应用程序添加持久性,请创建 Azure Cache for Redis 和 Azure Database for PostgreSQL 灵活服务器。
以下步骤介绍如何使用 Azure CLI 预配 Azure Cache for Redis 实例和 Azure Database for PostgreSQL 灵活服务器。
使用以下命令创建变量以保存资源名称。 请务必将占位符替换为你自己的值。
export REGION=<region> export RESOURCE_GROUP=<resource-group-name> export REDIS_CACHE_NAME=<redis-cache-name> export POSTGRES_SERVER_NAME=<postgres-server-name> export POSTGRES_USERNAME=<postgres-username> export POSTGRES_PASSWORD=<postgres-password> export AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME=<Azure-Spring-Apps-service-instance-name>
使用以下命令创建 Azure Cache for Redis 实例:
az redis create \ --resource-group ${RESOURCE_GROUP} \ --name ${REDIS_CACHE_NAME} \ --location ${REGION} \ --sku Basic \ --vm-size c0
注意
Redis 缓存创建大约需要 20 分钟。
使用以下命令创建 Azure Database for PostgreSQL 灵活服务器实例:
az postgres flexible-server create \ --resource-group ${RESOURCE_GROUP} \ --name ${POSTGRES_SERVER_NAME} \ --location ${REGION} \ --admin-user ${POSTGRES_USERNAME} \ --admin-password ${POSTGRES_PASSWORD} \ --yes
使用以下命令允许从其他 Azure 服务连接到新创建的灵活服务器:
az postgres flexible-server firewall-rule create \ --rule-name allAzureIPs \ --name ${POSTGRES_SERVER_NAME} \ --resource-group ${RESOURCE_GROUP} \ --start-ip-address 0.0.0.0 \ --end-ip-address 0.0.0.0
使用以下命令为新创建的灵活服务器启用
uuid-ossp
扩展:az postgres flexible-server parameter set \ --resource-group ${RESOURCE_GROUP} \ --name azure.extensions \ --value uuid-ossp \ --server-name ${POSTGRES_SERVER_NAME}
使用以下命令为订单服务应用程序创建数据库:
az postgres flexible-server db create \ --resource-group ${RESOURCE_GROUP} \ --server-name ${POSTGRES_SERVER_NAME} \ --database-name acmefit_order
使用以下命令为目录服务应用程序创建数据库:
az postgres flexible-server db create \ --resource-group ${RESOURCE_GROUP} \ --server-name ${POSTGRES_SERVER_NAME} \ --database-name acmefit_catalog
创建服务连接器
以下步骤演示如何使用服务连接器将 Azure Spring Apps Enterprise 计划中运行的应用程序绑定到其他 Azure 服务。
使用以下命令为订单服务应用程序创建到 Azure Database for PostgreSQL 的服务连接器:
az spring connection create postgres-flexible \ --resource-group ${RESOURCE_GROUP} \ --target-resource-group ${RESOURCE_GROUP} \ --connection order_service_db \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --app order-service \ --deployment default \ --server ${POSTGRES_SERVER_NAME} \ --database acmefit_order \ --secret name=${POSTGRES_USERNAME} secret=${POSTGRES_PASSWORD} \ --client-type dotnet
使用以下命令为目录服务应用程序创建到 Azure Database for PostgreSQL 的服务连接器:
az spring connection create postgres-flexible \ --resource-group ${RESOURCE_GROUP} \ --target-resource-group ${RESOURCE_GROUP} \ --connection catalog_service_db \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --app catalog-service \ --deployment default \ --server ${POSTGRES_SERVER_NAME} \ --database acmefit_catalog \ --secret name=${POSTGRES_USERNAME} secret=${POSTGRES_PASSWORD} \ --client-type springboot
使用以下命令为购物车服务应用程序创建到 Azure Cache for Redis 的服务连接器:
az spring connection create redis \ --resource-group ${RESOURCE_GROUP} \ --target-resource-group ${RESOURCE_GROUP} \ --connection cart_service_cache \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --app cart-service \ --deployment default \ --server ${REDIS_CACHE_NAME} \ --database 0 \ --client-type java
使用以下命令重新加载目录服务应用程序以加载新的连接属性:
az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --name catalog-service \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME}
使用以下命令检索数据库连接信息:
export POSTGRES_CONNECTION_STR=$(az spring connection show \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --deployment default \ --connection order_service_db \ --app order-service \ | jq '.configurations[0].value' -r)
注意
如果 Nofsql 6.0 出现 SSL 验证异常,请确保将 SSL 模式从
Require
更改为VerifyFull
。 有关详细信息,请参阅 Npgsql 6.0 发行说明。使用以下命令更新订单服务应用程序:
az spring app update \ --resource-group ${RESOURCE_GROUP} \ --name order-service \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --env "DatabaseProvider=Postgres" "ConnectionStrings__OrderContext=${POSTGRES_CONNECTION_STR}"
使用以下命令检索 Redis 连接信息并更新购物车服务应用程序:
export REDIS_CONN_STR=$(az spring connection show \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --deployment default \ --app cart-service \ --connection cart_service_cache | jq -r '.configurations[0].value') export GATEWAY_URL=$(az spring gateway show \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} | jq -r '.properties.url') az spring app update \ --resource-group ${RESOURCE_GROUP} \ --name cart-service \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --env "CART_PORT=8080" "REDIS_CONNECTIONSTRING=${REDIS_CONN_STR}" "AUTH_URL=https://${GATEWAY_URL}"
访问应用程序
检索 Spring Cloud 网关的 URL 并浏览更新的应用程序。 可以使用以下命令的输出来浏览应用程序:
export GATEWAY_URL=$(az spring gateway show \
--resource-group ${RESOURCE_GROUP} \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} | jq -r '.properties.url')
echo "https://${GATEWAY_URL}"
清理资源
如果打算继续使用后续的快速入门和教程,则可能需要保留这些资源。 如果不再需要资源组,可以将其删除,这将删除资源组中的资源。 若要使用 Azure CLI 删除资源组,请使用以下命令:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
后续步骤
继续学习以下任一可选快速入门: