快速入門:與 適用於 PostgreSQL 的 Azure 資料庫 和 Azure Cache for Redis 整合
注意
基本、標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告。
標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps。
本文適用於:❌基本/標準 ✔️ Enterprise
本快速入門說明如何布建和準備 適用於 PostgreSQL 的 Azure 資料庫 和 Azure Cache for Redis,以搭配在 Azure Spring Apps Enterprise 方案中執行的應用程式使用。
本文會使用這些服務進行示範。 您可以使用本文稍後的建立服務連接器一節中的指示,將應用程式連線到您選擇的任何備份服務。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 了解並滿足 Azure Marketplace 中企業方案的需求一節。
- Azure CLI 2.45.0 版或更高版本。
- Git。
- jq
- Azure Spring 應用程式企業方案延伸模組。 使用下列命令來移除舊版並安裝最新的企業方案延伸模組。 如果您先前已安裝
spring-cloud
延伸模組,請將其解除安裝,以避免設定與版本不符。az extension add --upgrade --name spring az extension remove --name spring-cloud
- 使用企業方案,完成建置和部署應用程式至 Azure Spring Apps 中的步驟。
布建服務
若要將持續性新增至應用程式,請建立 Azure Cache for Redis 和 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器。
下列步驟說明如何使用 Azure CLI 布建 Azure Cache for Redis 實例和 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器。
使用下列命令建立變數來保存資源名稱。 請務必將預留位置取代為您自己的值。
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 分鐘。
使用下列命令來建立 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例:
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}
使用下列命令建立 Order Service 應用程式的資料庫:
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 服務。
使用下列命令建立服務連接器,以 適用於 PostgreSQL 的 Azure 資料庫 Order Service 應用程式:
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
使用下列命令建立服務連接器,以 適用於 PostgreSQL 的 Azure 資料庫 類別目錄服務應用程式:
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 版本資訊。使用下列命令來更新 Order Service 應用程式:
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 連線資訊並更新 Cart Service 應用程式:
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 Gateway 的 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 ..."
下一步
繼續進行下列任一選擇性快速入門: