Creación e implementación de proyectos de bases de datos en Acciones de GitHub y Azure DevOps

Completado

Dado que las bases de datos son componentes integrales de soluciones más grandes, los desarrolladores deben encontrar formas eficaces de administrar el desarrollo de bases de datos de forma similar a cómo controlan el código de la aplicación. Esta tarea es especialmente complicada porque el desarrollo de bases de datos está estrechamente entrelazado con los datos almacenados en la base de datos, lo que agrega capas de complejidad.

Afortunadamente, herramientas como Acciones de GitHub y Azure DevOps Services ofrecen soluciones sólidas para administrar estas complejidades. Ambas plataformas admiten la implementación de DACPAC, lo que simplifica el proceso de implementación de cambios de base de datos al empaquetarlas en un paquete de componente de aplicación de capa de datos (DAC). Este enfoque no solo garantiza la coherencia y fiabilidad en las implementaciones de bases de datos, sino que también se integra perfectamente con canalizaciones de integración continua e implementación continua (CI/CD), lo que facilita a los desarrolladores mantener y actualizar bases de datos junto con su código de aplicación.

En los ejemplos de esta unidad se supone que ya tiene:

Uso de Acciones de GitHub para conectarse a Azure SQL Database

Puede usar Acciones de GitHub para conectarse a la base de datos de Azure SQL y publicar proyectos de SQL mediante archivos DACPAC.

El uso de Acciones de GitHub para conectarse a una base de datos de Azure SQL tiene tres pasos principales.

  1. Clonación del repositorio de GitHub en Visual Studio Code.
  2. Creación de un proyecto de base de datos en Visual Studio Code.
  3. Configuración de la integración continua (CI) con Acciones de GitHub.

Clonación del repositorio de GitHub

Puede clonar el repositorio de GitHub que creó siguiendo estos pasos.

  1. En el Visual Studio Code, seleccione Ver>Paleta de comandos.
  2. En la paleta de comandos, escriba Git: Clonar y luego selecciónelo.
  3. Escriba la dirección URL del repositorio y seleccione Clonar.
  4. Seleccione o cree una carpeta para almacenar los archivos del repositorio.

Creación de un proyecto de base de datos en Visual Studio Code

En Visual Studio Code, configure un nuevo proyecto de base de datos y guarde el proyecto en la misma carpeta donde ha clonado el repositorio de GitHub.

Para obtener más información sobre cómo crear un proyecto de base de datos en Visual Studio Code, vea Desarrollo de SQL Server con Visual Studio Code.

Una vez creado el proyecto de base de datos, agregue código para modificar la base de datos de Azure SQL. A continuación, vuelva a confirmarlo en el repositorio de GitHub para asegurarse de que se realiza el seguimiento y se integra en el sistema de control de versiones.

Configuración de la integración continua (CI) con Acciones de GitHub

Para configurar las integraciones continuas (CI) con Acciones de GitHub, cree un archivo .yml en la ruta de acceso /.github/workflows/ del repositorio. El archivo .yml tiene dos secciones.

  1. Configuración de la autenticación
  2. Creación de un flujo de trabajo de GitHub

La sección Configurar la autenticación permite configurar secretos de GitHub y la segunda sección permite crear un flujo de trabajo de Acciones de GitHub.

Administración

Primero tiene que crear una entidad de servicio con el comando az ad sp create-for-rbac en la CLI de Azure. Use Azure Cloud Shell en Azure Portal para ejecutar el siguiente código de la CLI de Azure. Reemplace los marcadores de posición por el identificador de la suscripción, el nombre del grupo de recursos y el nombre de la aplicación.

az ad sp create-for-rbac --name "myML" --role contributor --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> --json-auth

La salida es un objeto JSON con las credenciales de asignación de roles. Guarde el archivo tal y como se guarda como un secreto de GitHub.

En segundo lugar, cree la cadena de conexión SQL. Puede copiarla desde Azure Portal. En la base de datos de Azure SQL, abra Configuración>Cadenas de conexión.

Captura de pantalla que muestra la configuración de la conexión de base de datos de Azure SQL.

Copie la cadena de conexión ADO.NET y luego reemplace los valores de marcador de posición por su base de datos y su contraseña. La cadena de conexión se parece a esta:

Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

Esta cadena de conexión también se almacenará como un secreto de GitHub.

En el repositorio de GitHub, agregará secretos en Configuración>Seguridad ->Secretos y variables>Acciones. Cree nuevos secretos denominados AZURE_CREDENTIALS para almacenar el texto JSON y AZURE_SQL_CONNECTION_STRING para almacenar la cadena de conexión.

Ya está listo para crear el flujo de trabajo.

Nota:

En un entorno de producción, considere la posibilidad de usar identidades administradas para la Acción de GitHub para acceder a la base de datos en lugar de la autenticación de SQL. Para obtener más información, vea las Identidades administradas en Microsoft Entra para Azure SQL.

Creación de un flujo de trabajo de GitHub

En el repositorio de GitHub, seleccione Acciones y Configurar un flujo de trabajo por su cuenta. Se abre un archivo main.yml vacío.

Ahora puede compilar el archivo YAML. Para obtener instrucciones y sintaxis detalladas, consulte el Flujo de trabajo para Acciones de GitHub. Por ejemplo, la etiqueta nombre: especifica el nombre del flujo de trabajo, mientras que el valor en determina los eventos que desencadenan el flujo de trabajo que se va a ejecutar.

Sugerencia

El Inicio rápido de Acciones de GitHub le permite empezar a trabajar con características adicionales de Acciones de GitHub.

Implementación de base de datos de Azure SQL con Azure DevOps Services

También puede implementar actualizaciones en una base de datos de Azure SQL mediante Azure DevOps Services. Para empezar, necesitará una cuenta de Azure DevOps Services, un sistema de control de versiones (como Azure Repos o GitHub) y Visual Studio Code con la extensión SQL Database instalada.

Azure DevOps Services incluye Azure Pipelines, que compila, prueba e implementa código automáticamente. Con Azure Pipelines, puede admitir la integración continua y la implementación continua (CI/CD) de las modificaciones de una base de datos de Azure SQL en el proyecto. Esta integración garantiza que los cambios de la base de datos se apliquen de forma coherente y fiable.

Azure Pipelines se integra perfectamente con varios sistemas de control de versiones, incluidos GitHub y Azure Repos. Azure Pipelines permite ejecutar scripts de SQL como parte de una canalización, mediante scripts de Azure PowerShell para crear y quitar reglas de firewall en Azure, lo que garantiza una administración segura y eficaz de bases de datos.

Para obtener más información sobre las opciones de implementación de base de datos de Azure SQL, consulte Implementación de base de datos de Azure SQL en la documentación de Azure DevOps Services.