你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用企业计划生成应用并将其部署到 Azure Spring Apps
注意
基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用。
本文适用于: ❎ 基本计划/标准计划 ✅ 企业计划
本快速入门演示如何使用企业计划生成应用并将其部署到 Azure Spring Apps。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 了解并满足 Azure 市场中企业计划的要求部分。
- Azure CLI 版本 2.45.0 或更高版本。
- Git。
- Azure Spring Apps 企业计划扩展。 使用以下命令删除以前的版本,并安装最新的企业计划扩展。 如果以前安装了
spring-cloud
扩展,请卸载它以避免配置和版本不匹配。az extension add --upgrade --name spring az extension remove --name spring-cloud
下载示例应用
使用以下命令下载示例:
git clone https://github.com/Azure-Samples/acme-fitness-store
cd acme-fitness-store
预配服务实例
使用以下步骤预配 Azure Spring Apps 服务实例。
使用以下命令登录到 Azure CLI 并选择活动订阅:
az login az account list --output table az account set --subscription <subscription-ID>
使用以下命令接受企业计划的法律条款和隐私声明。 仅当订阅从未用于创建 Azure Spring Apps 企业计划实例时,才需要执行此步骤。
az provider register --namespace Microsoft.SaaS az term accept \ --publisher vmware-inc \ --product azure-spring-cloud-vmware-tanzu-2 \ --plan asa-ent-hr-mtr
选择一个位置。 此位置必须是支持 Azure Spring Apps 企业计划的位置。 有关详细信息,请参阅 Azure Spring Apps 常见问题解答。
使用以下命令创建变量以保存资源名称。 请务必将占位符替换为你自己的值。 Azure Spring Apps 服务实例的名称长度必须介于 4 到 32 个字符之间,并且只能包含小写字母、数字和连字符。 服务名称的第一个字符必须是字母,最后一个字符必须是字母或数字。
export LOCATION="<location>" export RESOURCE_GROUP="<resource-group-name>" export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>" export WORKSPACE_NAME="<workspace-name>"
使用以下命令来创建资源组:
az group create \ --name ${RESOURCE_GROUP} \ --location ${LOCATION}
有关资源组的详细信息,请参阅什么是 Azure 资源管理器?。
使用以下命令创建 Azure Spring Apps 服务实例:
az spring create \ --resource-group ${RESOURCE_GROUP} \ --name ${SERVICE_NAME} \ --sku enterprise \ --enable-application-configuration-service \ --enable-service-registry \ --enable-gateway \ --enable-api-portal
使用以下命令创建要用于 Azure Spring Apps 服务的 Log Analytics 工作区:
az monitor log-analytics workspace create \ --resource-group ${RESOURCE_GROUP} \ --workspace-name ${WORKSPACE_NAME} \ --location ${LOCATION}
使用以下命令检索 Log Analytics 工作区和 Azure Spring Apps 服务实例的资源 ID:
export LOG_ANALYTICS_RESOURCE_ID=$(az monitor log-analytics workspace show \ --resource-group ${RESOURCE_GROUP} \ --workspace-name ${WORKSPACE_NAME} \ --query id \ --output tsv) export AZURE_SPRING_APPS_RESOURCE_ID=$(az spring show \ --resource-group ${RESOURCE_GROUP} \ --name ${SERVICE_NAME} \ --query id \ --output tsv)
使用以下命令为 Azure Spring Apps 服务配置诊断设置:
az monitor diagnostic-settings create \ --name "send-logs-and-metrics-to-log-analytics" \ --resource ${AZURE_SPRING_APPS_RESOURCE_ID} \ --workspace ${LOG_ANALYTICS_RESOURCE_ID} \ --logs '[ { "category": "ApplicationConsole", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } }, { "category": "SystemLogs", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } }, { "category": "IngressLogs", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } } ]' \ --metrics '[ { "category": "AllMetrics", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } } ]'
使用以下命令创建适用于
cart-service
、order-service
、payment-service
、catalog-service
和frontend
的应用程序:az spring app create \ --resource-group ${RESOURCE_GROUP} \ --name cart-service \ --service ${SERVICE_NAME} az spring app create \ --resource-group ${RESOURCE_GROUP} \ --name order-service \ --service ${SERVICE_NAME} az spring app create \ --resource-group ${RESOURCE_GROUP} \ --name payment-service \ --service ${SERVICE_NAME} az spring app create \ --resource-group ${RESOURCE_GROUP} \ --name catalog-service \ --service ${SERVICE_NAME} az spring app create \ --resource-group ${RESOURCE_GROUP} \ --name frontend \ --service ${SERVICE_NAME}
使用应用程序配置服务外部化配置
使用以下步骤配置应用程序配置服务。
使用以下命令为应用程序配置服务创建配置存储库:
az spring application-configuration-service git repo add \ --resource-group ${RESOURCE_GROUP} \ --name acme-fitness-store-config \ --service ${SERVICE_NAME} \ --label main \ --patterns "catalog/default,catalog/key-vault,identity/default,identity/key-vault,payment/default" \ --uri "https://github.com/Azure-Samples/acme-fitness-store-config"
使用以下命令将应用程序绑定到应用程序配置服务:
az spring application-configuration-service bind \ --resource-group ${RESOURCE_GROUP} \ --app payment-service \ --service ${SERVICE_NAME} az spring application-configuration-service bind \ --resource-group ${RESOURCE_GROUP} \ --app catalog-service \ --service ${SERVICE_NAME}
激活服务注册和发现
若要激活服务注册和发现,请使用以下命令将应用程序绑定到服务注册表:
az spring service-registry bind \
--resource-group ${RESOURCE_GROUP} \
--app payment-service \
--service ${SERVICE_NAME}
az spring service-registry bind \
--resource-group ${RESOURCE_GROUP} \
--app catalog-service \
--service ${SERVICE_NAME}
使用 Tanzu 生成服务部署 polyglot 应用程序
使用以下步骤部署和生成应用程序。 对于这些步骤,请确保终端位于项目文件夹中,然后再运行任何命令。
使用以下命令在 Tanzu 生成服务中创建自定义生成器:
az spring build-service builder create \ --resource-group ${RESOURCE_GROUP} \ --name quickstart-builder \ --service ${SERVICE_NAME} \ --builder-file azure-spring-apps-enterprise/resources/json/tbs/builder.json
使用以下命令生成和部署付款服务:
az spring app deploy \ --resource-group ${RESOURCE_GROUP} \ --name payment-service \ --service ${SERVICE_NAME} \ --config-file-pattern payment/default \ --source-path apps/acme-payment \ --build-env BP_JVM_VERSION=17
使用以下命令生成和部署目录服务:
az spring app deploy \ --resource-group ${RESOURCE_GROUP} \ --name catalog-service \ --service ${SERVICE_NAME} \ --config-file-pattern catalog/default \ --source-path apps/acme-catalog \ --build-env BP_JVM_VERSION=17
使用以下命令生成和部署订单服务:
az spring app deploy \ --resource-group ${RESOURCE_GROUP} \ --name order-service \ --service ${SERVICE_NAME} \ --builder quickstart-builder \ --source-path apps/acme-order
使用以下命令生成和部署购物车服务:
az spring app deploy \ --resource-group ${RESOURCE_GROUP} \ --name cart-service \ --service ${SERVICE_NAME} \ --builder quickstart-builder \ --env "CART_PORT=8080" \ --source-path apps/acme-cart
使用以下命令生成和部署前端应用程序:
az spring app deploy \ --resource-group ${RESOURCE_GROUP} \ --name frontend \ --service ${SERVICE_NAME} \ --source-path apps/acme-shopping
提示
若要对部署进行故障排除,可以使用以下命令在每次应用运行 az spring app logs --name <app name> --follow
时实时获取日志流式处理。
使用 Spring Cloud 网关将请求路由到应用
使用以下步骤配置 Spring Cloud 网关并配置到应用程序的路由。
使用以下命令将终结点分配到 Spring Cloud 网关:
az spring gateway update \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --assign-endpoint true
使用以下命令配置 Spring Cloud 网关 API 信息:
export GATEWAY_URL=$(az spring gateway show \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --query properties.url \ --output tsv) az spring gateway update \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --api-description "Fitness Store API" \ --api-title "Fitness Store" \ --api-version "v1.0" \ --server-url "https://${GATEWAY_URL}" \ --allowed-origins "*"
使用以下命令为购物车服务创建路由:
az spring gateway route-config create \ --resource-group ${RESOURCE_GROUP} \ --name cart-routes \ --service ${SERVICE_NAME} \ --app-name cart-service \ --routes-file azure-spring-apps-enterprise/resources/json/routes/cart-service.json
使用以下命令为订单服务创建路由:
az spring gateway route-config create \ --resource-group ${RESOURCE_GROUP} \ --name order-routes \ --service ${SERVICE_NAME} \ --app-name order-service \ --routes-file azure-spring-apps-enterprise/resources/json/routes/order-service.json
使用以下命令为目录服务创建路由:
az spring gateway route-config create \ --resource-group ${RESOURCE_GROUP} \ --name catalog-routes \ --service ${SERVICE_NAME} \ --app-name catalog-service \ --routes-file azure-spring-apps-enterprise/resources/json/routes/catalog-service.json
使用以下命令为前端创建路由:
az spring gateway route-config create \ --resource-group ${RESOURCE_GROUP} \ --name frontend-routes \ --service ${SERVICE_NAME} \ --app-name frontend \ --routes-file azure-spring-apps-enterprise/resources/json/routes/frontend.json
使用以下命令检索 Spring Cloud 网关的 URL:
export GATEWAY_URL=$(az spring gateway show \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --query properties.url \ --output tsv) echo "https://${GATEWAY_URL}"
可以在浏览器中打开输出 URL 以浏览部署的应用程序。
使用 API 门户浏览和试用 API
使用以下步骤配置 API 门户。
使用以下命令将终结点分配到 API 门户:
az spring api-portal update \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --assign-endpoint true
使用以下命令检索 API 门户的 URL:
export PORTAL_URL=$(az spring api-portal show \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --query properties.url \ --output tsv) echo "https://${PORTAL_URL}"
可以在浏览器中打开输出 URL 以浏览应用程序 API。
清理资源
如果打算继续使用后续的快速入门和教程,则可能需要保留这些资源。 如果不再需要资源组,可以将其删除,这将删除资源组中的资源。 若要使用 Azure CLI 删除资源组,请使用以下命令:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
后续步骤
你已成功生成和部署应用,现在可以继续学习以下任一可选快速入门: