快速入门:生成应用并将其部署到 Azure Spring Apps

注意

Azure Spring Apps 是 Azure Spring Cloud 服务的新名称。 虽然该服务有新名称,但一些地方仍会使用旧名称,我们仍在更新屏幕截图、视频和图形等资产。

本文介绍如何生成 Spring 应用程序并将其部署到 Azure Spring Apps。 可以使用 Azure CLI、Maven 插件或 Intellij。 本文将介绍每个可选方案。

先决条件

本地构建 Spring 应用程序

使用以下命令克隆示例存储库,导航到示例文件夹,然后生成项目。

git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud

编译项目需要 5 至 10 分钟时间。 编译项目后,相应的文件夹中应会包含每个服务单独的 JAR 文件。

生成应用并将其部署到 Azure Spring Apps

按照以下步骤,使用 CLI 在 Azure Spring Apps 上创建和部署应用。

  1. 如果在之前的快速入门中未运行以下命令,请立即运行这些命令来设置 CLI 默认值。

    az configure --defaults group=<resource-group-name> spring=<service-name>
    
  2. 为 PetClinic 创建两个核心 Spring 应用程序:api-gatewaycustomers-service

    az spring app create \
        --name api-gateway \
        --runtime-version Java_17 \
        --instance-count 1 \
        --memory 2Gi \
        --assign-endpoint
    az spring app create \
        --name customers-service \
        --runtime-version Java_17 \
        --instance-count 1 \
        --memory 2Gi
    
  3. 部署上一步骤中生成的 JAR 文件。

    az spring app deploy \
        --name api-gateway \
        --artifact-path spring-petclinic-api-gateway/target/api-gateway-3.0.1.jar \
        --jvm-options="-Xms2048m -Xmx2048m"
    az spring app deploy \
        --name customers-service \
        --artifact-path spring-petclinic-customers-service/target/customers-service-3.0.1.jar \
        --jvm-options="-Xms2048m -Xmx2048m"
    
  4. 在部署后通过以下命令查询应用状态。

    az spring app list --output table
    

    此命令会生成类似于以下示例的输出:

    Name               Location    ResourceGroup    Production Deployment    Public Url                                           Provisioning Status    CPU    Memory    Running Instance    Registered Instance    Persistent Storage
    -----------------  ----------  ---------------  -----------------------  ---------------------------------------------------  ---------------------  -----  --------  ------------------  ---------------------  --------------------
    api-gateway        chinanorth2      xxxxxx-sp         default                  https://<service name>-api-gateway.microservices.azure.cn   Succeeded              1      2         1/1                 1/1                    -
    customers-service  chinanorth2      <service name>         default                                                                       Succeeded              1      2         1/1                 1/1                    -
    

验证服务

使用前面所示的公共 URL(格式为 https://<service name>-api-gateway.microservices.azure.cn)从浏览器评估 api-gatewaycustomers-service

PetClinic 示例应用的屏幕截图,其中显示了“所有者”页。

提示

若要对部署进行故障排除,可以使用以下命令在每次应用运行 az spring app logs --name <app name> --follow 时实时获取日志流式处理。

部署额外的应用

若要让 PetClinic 应用正常运行所有功能(如“管理服务器”、“访问”和“兽医”功能),请通过以下命令部署其他应用:

az spring app create \
    --name admin-server \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi \
    --assign-endpoint
az spring app create \
    --name vets-service \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi
az spring app create \
    --name visits-service \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi
az spring app deploy \
    --name admin-server \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-admin-server/target/admin-server-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
    --name vets-service \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-vets-service/target/vets-service-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
    --name visits-service \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-visits-service/target/visits-service-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"