Inicio rápido: Uso de Acciones de GitHub para conectarse al servidor flexible para Azure Database for MySQL
Comience a trabajar con Acciones de GitHub usando un flujo de trabajo para implementar actualizaciones de base de datos en el servidor flexible para Azure Database for MySQL.
Requisitos previos
Necesitará:
Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
Una cuenta de GitHub. Si no tiene una cuenta de GitHub, regístrese para obtener una gratis.
Un repositorio de GitHub con datos de ejemplo (
data.sql
).Importante
En este artículo de inicio rápido se da por supuesto que ha clonado un repositorio de GitHub en el equipo para que pueda agregar la dirección IP asociada a una regla de firewall, si es necesario.
Una instancia del servidor flexible para Azure Database for MySQL.
Información general sobre el archivo de flujo de trabajo
Un flujo de trabajo de Acciones de GitHub se define mediante un archivo YAML (.yml) en la ruta de acceso /.github/workflows/
de su repositorio. En esta definición se incluyen los diversos pasos y parámetros que componen el flujo de trabajo.
El archivo tiene dos secciones:
Sección | Tareas |
---|---|
Autenticación | 1. Genere las credenciales de implementación. |
Implementar | 1. Implemente la base de datos. |
Genere las credenciales de implementación.
Cree una entidad de servicio mediante el comando az ad sp create-for-rbac de la CLI de Azure. Puede ejecutar este comando mediante Azure Cloud Shell en Azure Portal o haciendo clic en el botón Probar.
az ad sp create-for-rbac --name "myML" --role contributor \
--scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
--json-auth
El parámetro --json-auth
está disponible en las versiones de la CLI de Azure >= 2.51.0. Las versiones anteriores a esta usan --sdk-auth
con una advertencia de desuso.
En este ejemplo, reemplace los marcadores de posición por su identificador de suscripción, el nombre del grupo de recursos y el nombre de la aplicación. La salida es un objeto JSON con las credenciales de asignación de roles que proporcionan acceso a la aplicación App Service similar al siguiente. Copie este objeto JSON para más adelante.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Copia de la cadena de conexión de MySQL
En Azure Portal, vaya a la instancia del servidor flexible para Azure Database for MySQL y abra Configuración>Cadenas de conexión. Copie la cadena de conexión de ADO.NET. Reemplace los valores de marcador de posición your_database
y your_password
.
Importante
- Para el servidor único de Azure Database for MySQL, use Uid=adminusername@servername. Tenga en cuenta que @servername es obligatorio.
- Para el servidor flexible de Azure Database for MySQL, use Uid=adminusername sin el @servername.
Usará la cadena de conexión como secreto de GitHub.
Configuración de secretos de GitHub
En GitHub, vaya al repositorio.
Vaya a Configuración en el menú de navegación.
Seleccione Seguridad > Secretos y variables > Acciones.
Seleccione New repository secret (Nuevo secreto del repositorio).
Pegue la salida JSON completa del comando de la CLI de Azure en el campo de valor del secreto. Asigne al secreto el nombre
AZURE_CREDENTIALS
.Seleccione Add secret (Agregar secreto).
Agregar el flujo de trabajo
Vaya a Acciones del repositorio de GitHub.
Seleccione Set up your workflow yourself (Configure el flujo de trabajo usted mismo).
Elimine todo lo que aparezca después de la sección
on:
del archivo de flujo de trabajo. Por ejemplo, el flujo de trabajo restante puede tener este aspecto.name: CI on: push: branches: [ main ] pull_request: branches: [ main ]
Cambie el nombre del flujo de trabajo
MySQL for GitHub Actions
y agregue las acciones de restauración e inicio de sesión. Estas acciones comprueban el código de sitio y se autentican con Azure mediante el secreto de GitHubAZURE_CREDENTIALS
que creó anteriormente.name: MySQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }}
Use la acción de implementación de Azure MySQL para conectarse a la instancia de MySQL. Reemplace
MYSQL_SERVER_NAME
por el nombre del servidor. Debe tener un archivo de datos de MySQL denominadodata.sql
en el nivel raíz del repositorio.- uses: azure/mysql@v1 with: server-name: MYSQL_SERVER_NAME connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }} sql-file: './data.sql'
Para completar el flujo de trabajo, agregue una acción al cierre de sesión de Azure. Este es el flujo de trabajo completado. El archivo aparece en la carpeta
.github/workflows
del repositorio.name: MySQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - uses: azure/mysql@v1 with: server-name: MYSQL_SERVER_NAME connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }} sql-file: './data.sql' # Azure logout - name: logout run: | az logout
Revisar la implementación
Vaya a la opción de Acciones del repositorio de GitHub.
Abra el primer resultado para ver los registros detallados de la ejecución del flujo de trabajo.
Limpieza de recursos
Cuando la base de datos y el repositorio del servidor flexible para Azure Database for MySQL ya no sean necesarios, limpie los recursos que implementó eliminando el grupo de recursos y el repositorio de GitHub.