Tutorial: Implementación de una aplicación en Azure Spring Apps y su conexión a Azure Database for MySQL (servidor flexible) mediante Service Connector

En este tutorial completará las siguientes tareas desde Azure Portal o la CLI de Azure. Ambos métodos se explican en los siguientes procedimientos.

  • Aprovisionamiento de una instancia de Azure Spring Apps
  • Compilación e implementación de aplicaciones en Azure Spring Apps
  • Integración de Azure Spring Apps con Azure Database for MySQL con Service Connector

Requisitos previos

Aprovisionamiento de una instancia de Azure Spring Apps

En el siguiente procedimiento se usa la extensión de la CLI de Azure para aprovisionar una instancia de Azure Spring Apps.

  1. Actualice la CLI de Azure con la extensión de Azure Spring Apps.

    az extension update --name spring
    
  2. Inicie sesión en la CLI de Azure y elija una suscripción activa.

    az login
    az account list -o table
    az account set --subscription <Name or ID of subscription, skip if you only have 1 subscription>
    
  3. Cree un grupo de recursos para que contenga la aplicación y una instancia del servicio Azure Spring Apps.

    az group create --name ServiceConnector-tutorial-mysqlf --location eastus
    
  4. Cree una instancia de Azure Spring Apps. Su nombre debe tener entre 4 y 32 caracteres, y solo puede contener números, letras minúsculas y guiones. El primer carácter del nombre de la instancia de Azure Spring Apps debe ser una letra y el último, una letra o un número.

    az spring create -n my-azure-spring -g ServiceConnector-tutorial-mysqlf
    

Creación de un servidor flexible de Azure Database for MySQL

Cree un servidor flexible de MySQL. En el comando siguiente, reemplace <admin-username> y <admin-password> por las credenciales de su elección para crear un usuario administrador para el servidor flexible de MySQL. El nombre de inicio de sesión del administrador no puede ser azure_superuser, azure_pg_admin, admin, administrator, root, guest ni public. No puede empezar por pg_ . La contraseña debe contener entre 8 y 128 caracteres de tres de las siguientes categorías: letras mayúsculas en inglés, letras minúsculas en inglés, números y caracteres no alfanuméricos (como !, # o %). La contraseña no puede contener username.

az mysql flexible-server create \
    --resource-group ServiceConnector-tutorial-mysqlf \
    --name mysqlf-server \
    --database-name mysqlf-db \
    --admin-user <admin-username> \
    --admin-password <admin-password>

El servidor se crea con los siguientes valores predeterminados a menos que se invaliden manualmente:

Configuración Valor predeterminado Descripción
server-name Generado por el sistema Un nombre único que identifica al servidor de Azure Database for MySQL.
sku-name GP_Gen5_2 El nombre de la SKU. Sigue la convención {plan de tarifa}_{generación de procesos}_{núcleos virtuales} en forma abreviada. El valor predeterminado es un servidor de uso general Gen5 con 2 núcleos virtuales. Para más información sobre los precios, consulte la página de precios.
backup-retention 7 Cuánto tiempo deben conservarse las copias de seguridad. La unidad es días.
geo-redundant-backup Disabled Si se deben habilitar las copias de seguridad con redundancia geográfica en este servidor o no.
ubicación westus2 La ubicación de Azure para el servidor.
ssl-enforcement habilitado Si SSL debe habilitarse o no en este servidor.
storage-size 5120 La capacidad de almacenamiento del servidor (la unidad es megabytes).
version 5.7 La versión principal de MySQL.

Nota

De forma predeterminada, se usa el SKU Standard_B1ms. Consulte Precios de Azure Database for MySQL para más información sobre los precios.

Nota

Para más información acerca del comando az mysql flexible-server create y sus parámetros adicionales, consulte la documentación de la CLI de Azure.

Compilación e implementación de la aplicación

  1. Cree la aplicación con el punto de conexión público asignado. Si seleccionó la versión 11 de Java al generar el proyecto de Azure Spring Apps, incluya el modificador --runtime-version=Java_11.

    az spring app create -n hellospring -s my-azure-spring -g ServiceConnector-tutorial-mysqlf --assign-endpoint true
    
  2. Ejecute el comando az spring connection create para conectar la aplicación implementada en Azure Spring Apps a la base de datos del servidor flexible de MySQL. Reemplace los marcadores de posición por sus propios valores.

    az spring connection create mysql-flexible \
        --resource-group ServiceConnector-tutorial-mysqlf \
        --service my-azure-spring \
        --app hellospring \
        --target-resource-group ServiceConnector-tutorial-mysqlf \
        --server mysqlf-server \
        --database mysqlf-db \
        --secret name=<admin-username> secret=<admin-secret>
    
    Configuración Descripción
    --resource-group Nombre del grupo de recursos que contiene una aplicación hospedada por Azure Spring Apps.
    --service Nombre del recurso de Azure Spring Apps.
    --app Nombre de la aplicación hospedada por Azure Spring Apps que se conecta al servicio de destino.
    --target-resource-group Nombre del grupo de recursos con la cuenta de almacenamiento.
    --server Servidor flexible de MySQL al que desea conectarse.
    --database Nombre de la base de datos que creó anteriormente.
    --secret name Nombre de usuario del servidor flexible de MySQL.
    --secret Contraseña del servidor flexible de MySQL.

    Nota

    Si ve el mensaje de error "La suscripción no está registrada para usar Microsoft.ServiceLinker", ejecute az provider register -n Microsoft.ServiceLinker para registrar el proveedor de recursos del conector de servicio y vuelva a ejecutar el comando de conexión.

  3. Clonación del código de ejemplo

    git clone https://github.com/Azure-Samples/serviceconnector-springcloud-mysql-springboot.git
    
  4. Compile el proyecto mediante Maven.

    cd serviceconnector-springcloud-mysql-springboot
    mvn clean package -DskipTests 
    
  5. Implemente el archivo JAR de la aplicación target/demo-0.0.1-SNAPSHOT.jar.

    az spring app deploy \
        --name hellospring \
        --service my-azure-spring \
        --resource-group ServiceConnector-tutorial-mysqlf \
        --artifact-path target/demo-0.0.1-SNAPSHOT.jar
    
  6. Consulte el estado de la aplicación después de la implementación con el siguiente comando.

    az spring app list  --resource-group ServiceConnector-tutorial-mysqlf --service my-azure-spring --output table
    

    Debería ver la siguiente salida:

    Name         Location    ResourceGroup                     Public Url                                                 Production Deployment    Provisioning State    CPU    Memory    Running Instance    Registered Instance    Persistent Storage    Bind Service Registry    Bind Application Configuration Service
    -----------  ----------  --------------------------------  ---------------------------------------------------------  -----------------------  --------------------  -----  --------  ------------------  ---------------------  --------------------  -----------------------  ----------------------------------------
    hellospring  eastus      ServiceConnector-tutorial-mysqlf  https://my-azure-spring-hellospring.azuremicroservices.io  default                  Succeeded             1      1Gi       1/1                 0/1                    -                     -
    
    

Pasos siguientes

Para más información sobre Service Connector, siga los tutoriales que se enumeran a continuación.