Azure Pipelines para Azure Database for MySQL: servidor único
SE APLICA A: Azure Database for MySQL: servidor único
Comience con Azure Database for MySQL al implementar una actualización de base de datos con Azure Pipelines. Azure Pipelines permite compilar, probar e implementar con integración continua (CI) y entrega continua (CD) mediante Azure DevOps.
Usará la tarea de implementación de Azure Database for MySQL. La tarea de implementación de Azure Database for MySQL solo funciona con Azure Database for MySQL: servidor único.
Requisitos previos
Antes de comenzar, necesitará lo siguiente:
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Una organización activa de Azure DevOps. Suscribirse a Azure Pipelines.
- Repositorio de GitHub que puede usar para la canalización. Si no tiene un repositorio existente, consulte Creación de la primera canalización.
En este tutorial rápido se usan como punto de partida los recursos creados en una de estas guías:
- Create an Azure Database for MySQL server using Azure Portal (Creación de un servidor de Azure Database for MySQL mediante Azure Portal)
- Create an Azure Database for MySQL server using Azure CLI (Creación de un servidor de Azure Database for MySQL mediante la CLI de Azure)
Creación de la canalización
Usará la canalización de inicio como base para la canalización.
Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.
En el proyecto, vaya a la página Pipelines (Canalizaciones). A continuación, elija la acción para crear una canalización.
Siga los pasos del asistente y seleccione primero GitHub como ubicación del código fuente.
Puede que se le redirija a GitHub para iniciar sesión. Si es así, escriba sus credenciales de GitHub.
Cuando aparezca la lista de repositorios, seleccione el que quiera.
Azure Pipelines analizará el repositorio y ofrecerá opciones de configuración. Seleccione Canalización inicial.
Crear un secreto
Deberá conocer el nombre del servidor de bases de datos, el nombre de usuario de SQL y la contraseña de SQL para usarlos con la tarea de implementación de Azure Database for MySQL.
Por motivos de seguridad, querrá guardar la contraseña de SQL como una variable secreta en la interfaz de usuario de configuración de la canalización.
Vaya a la página Canalizaciones, seleccione la canalización adecuada y, después, seleccione Editar.
Seleccione Variables.
Agregue una nueva variable denominada
SQLpass
y seleccione Mantener este valor como secreto para cifrar y guardar la variable.Seleccione Aceptar y Guardar para agregar la variable.
Comprobación de los permisos de la base de datos
Para acceder a la base de datos MySQL con Azure Pipelines, debe configurar la base de datos para que acepte conexiones de todos los recursos de Azure.
En Azure Portal, abra el recurso de la base de datos.
Seleccione Seguridad de la conexión.
Establezca Permitir el acceso a servicios de Azure en Sí.
Adición de la tarea de implementación de Azure Database for MySQL
En este ejemplo, crearemos una nueva base de datos denominada quickstartdb
y agregaremos una tabla de inventario. El script SQL insertado hará lo siguiente:
- Borrar
quickstartdb
, si existe, y crear una nueva base de datosquickstartdb
. - Eliminar la tabla
inventory
, si existe, y crear una nueva tablainventory
. - Insertar tres filas en
inventory
. - Mostrar todas las filas.
- Actualizar el valor de la primera fila de
inventory
. - Eliminar la segunda fila de
inventory
.
Deberá reemplazar los siguientes valores en la tarea de implementación.
Entrada | Descripción | Ejemplo |
---|---|---|
azureSubscription |
Autentíquese con la suscripción de Azure con una conexión de servicio. | My Subscription |
ServerName |
Nombre del servidor de Azure Database for MySQL. | fabrikam.mysql.database.azure.com |
SqlUsername |
Nombre de usuario de la Azure Database for MySQL. | mysqladmin@fabrikam |
SqlPassword |
Contraseña del nombre de usuario. Se debe definir como una variable secreta. | $(SQLpass) |
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- task: AzureMysqlDeployment@1
inputs:
azureSubscription: '<your-subscription>
ServerName: '<db>.mysql.database.azure.com'
SqlUsername: '<username>@<db>'
SqlPassword: '$(SQLpass)'
TaskNameSelector: 'InlineSqlTask'
SqlInline: |
DROP DATABASE IF EXISTS quickstartdb;
CREATE DATABASE quickstartdb;
USE quickstartdb;
-- Create a table and insert rows
DROP TABLE IF EXISTS inventory;
CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);
INSERT INTO inventory (name, quantity) VALUES ('banana', 150);
INSERT INTO inventory (name, quantity) VALUES ('orange', 154);
INSERT INTO inventory (name, quantity) VALUES ('apple', 100);
-- Read
SELECT * FROM inventory;
-- Update
UPDATE inventory SET quantity = 200 WHERE id = 1;
SELECT * FROM inventory;
-- Delete
DELETE FROM inventory WHERE id = 2;
SELECT * FROM inventory;
IpDetectionMethod: 'AutoDetect'
Implementación y comprobación de recursos
Seleccione Guardar y ejecutar para implementar la canalización. El trabajo de canalización se iniciará y, después de unos minutos, el estado del trabajo debe indicar Success
.
Puede comprobar que la canalización se ejecutó correctamente dentro de la tarea AzureMysqlDeployment
en la ejecución de la canalización.
Abra la tarea y compruebe que las dos últimas entradas muestran dos filas en inventory
. Hay dos filas porque se ha eliminado la segunda fila.
Limpieza de recursos
Cuando haya terminado de trabajar con la canalización, elimine quickstartdb
en Azure Database for MySQL. También puede eliminar la canalización de implementación que ha creado.