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
Advertencia
Microsoft recomienda usar el flujo de autenticación más seguro disponible. El flujo de autenticación que se describe en este procedimiento requiere un alto grado de confianza en la aplicación y conlleva riesgos que no están presentes en otros flujos. Solo debe usar este flujo cuando otros flujos más seguros, como las identidades administradas, no sean viables.
Requisitos previos
- Instale JDK 8 u 11.
- Registro para obtener una suscripción a Azure
- Instale la versión 2.0.67 de la CLI de Azure o cualquier versión posterior e instale la extensión de Azure Spring Apps con el comando
az extension add --name spring
.
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.
Actualice la CLI de Azure con la extensión de Azure Spring Apps.
az extension update --name spring
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>
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
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
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
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.Clonación del código de ejemplo
git clone https://github.com/Azure-Samples/serviceconnector-springcloud-mysql-springboot.git
Compile el proyecto mediante Maven.
cd serviceconnector-springcloud-mysql-springboot mvn clean package -DskipTests
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
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.