你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:将 Azure Spring Apps 与 Azure Database for MySQL 集成

注意

基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告

标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用

本文适用于:✅基本计划/标准计划 ❎ 企业计划

根据快速入门:生成应用并将其部署到 Azure Spring Apps 中所述部署在默认配置中的 Pet Clinic 使用一个在启动时会填充数据的内存中数据库 (HSQLDB)。 本快速入门介绍如何预配和准备 Azure Database for MySQL 实例,然后如何在 Azure Spring Apps 上配置 Pet Clinic,以将其用作永久数据库。

先决条件

具有活动订阅的 Azure 帐户。 免费创建帐户

创建 Azure Database for MySQL 实例

使用 az mysql flexible-server create 命令创建 Azure Database for MySQL 灵活服务器。 将占位符 <database-name><resource-group-name><MySQL-flexible-server-name><admin-username><admin-password> 替换为新数据库的名称、资源组的名称、新服务器的名称以及管理员用户名和密码。 使用单引号将 admin-password 的值括起来。

az mysql flexible-server create \
    --resource-group <resource-group-name> \
    --name <MySQL-flexible-server-name> \
    --database-name <database-name> \
    --public-access 0.0.0.0 \
    --admin-user <admin-username> \
    --admin-password '<admin-password>'

注意

默认情况下使用 Standard_B1ms SKU。 有关定价详细信息,请参阅 Azure Database for MySQL 定价

提示

密码长度应至少为 8 个字符,并且密码应至少包含一个英文大写字母、一个英文小写字母、一个数字和一个非字母数字字符(!、$、#、% 等)。

将你的应用程序连接到 MySQL 数据库

使用服务连接器将 Azure Spring Apps 中托管的应用连接到 MySQL 数据库。

备注

Azure Spring Apps 中的服务绑定功能即将弃用,取而代之的是服务连接器。

  1. 如果是首次使用服务连接器,请首先运行命令 az provider register 以注册服务连接器资源提供程序。

    az provider register --namespace Microsoft.ServiceLinker
    
  2. 运行 az spring connection create 命令,以在 customers-service 应用与 Azure MySQL 数据库之间创建服务连接。 将以下设置的占位符替换为自己的信息。 使用单引号将 MySQL 服务器 secret 的值括起来。

    设置 说明
    --connection 用于标识应用与目标服务之间的连接的连接名称。
    --resource-group 包含 Azure Spring Apps 托管的应用的资源组的名称。
    --service Azure Spring Apps 资源的名称。
    --app 连接到目标服务的 Azure Spring Apps 托管的应用程序的名称。
    --target-resource-group 包含存储帐户的资源组的名称。
    --server 要连接到的 MySQL 服务器
    --database 之前创建的数据库的名称。
    --secret name= secret= MySQL 服务器的用户名和密码。
    az spring connection create mysql-flexible \
        --resource-group <Azure-Spring-Apps-resource-group-name> \
        --service <Azure-Spring-Apps-resource-name> \
        --app customers-service \
        --connection <mysql-connection-name-for-app> \
        --target-resource-group <mySQL-server-resource-group> \
        --server <server-name> \
        --database <database-name> \
        --secret name=<username> secret='<secret>'
    

    提示

    如果系统未识别 az spring 命令,请检查是否已通过运行 az extension add --name spring 安装了 Azure Spring Apps 扩展。

重复这些步骤,以创建适用于 customers-servicevets-servicevisits-service 应用程序的连接。

检查与 MySQL 数据库的连接

运行 az spring connection validate 命令,以显示 customers-service 应用与 Azure MySQL 数据库之间连接的状态。 将占位符替换为自己的信息。

az spring connection validate \
    --resource-group <Azure-Spring-Apps-resource-group-name> \
    --service <Azure-Spring-Apps-resource-name> \
    --app customers-service \
    --connection <mysql-connection-name-for-app> \
    --output table

显示以下输出:

Name                                  Result    Description
------------------------------------  --------  -------------
Target resource existence validated.  success
Target service firewall validated.    success
Username and password validated.      success

提示

若要获取有关服务之间的连接的更多详细信息,请从上述命令中删除 --output table

重复这些说明以验证 customers-servicevets-servicevisits-service 应用程序的连接。

更新应用以使用 MySQL 配置文件

以下部分介绍了如何更新应用以连接到 MySQL 数据库。

使用以下命令设置环境变量,以激活 customers-service 应用的配置文件 mysql

az spring app update \
    --resource-group <Azure-Spring-Apps-resource-group-name> \
    --service <Azure-Spring-Apps-resource-name> \
    --name customers-service \
    --env SPRING_PROFILES_ACTIVE=mysql

重复这些说明,以更新 customers-servicevets-servicevisits-service 应用程序的应用配置。

验证应用

要验证 Pet Clinic 服务并从 MySQL 数据库查询记录以确认数据库连接,请按照快速入门:生成应用并将其部署到 Azure Spring Apps验证服务部分中的说明操作。

清理资源

如果打算继续使用后续的快速入门和教程,则可能需要保留这些资源。 如果不再需要资源组,请使用 az group delete 命令删除资源组,该命令会删除资源组中的资源。 将 <resource-group> 替换为资源组的名称。

az group delete --name <resource-group>

后续步骤