Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Comienza con Acciones de GitHub utilizando un flujo de trabajo para implementar actualizaciones de bases de datos en Azure Database for PostgreSQL.
Prerrequisitos
Necesitas:
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un repositorio de GitHub con datos de ejemplo (
data.sql). Si no tiene una cuenta de GitHub, regístrese para obtener una gratis. - Una instancia de servidor flexible de Azure Database for PostgreSQL.
- Crear una base de datos de Azure para PostgreSQL.
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:
| Section | Tasks |
|---|---|
| Autenticación | 1. Genere las credenciales de implementación. |
| Implementar | 1. Implemente la base de datos. |
Genere las credenciales de implementación.
Para utilizar la acción de inicio de sesión de Azure con OIDC, es necesario configurar una credencial de identidad federada en una aplicación Microsoft Entra o una identidad administrada asignada por el usuario.
Opción 1: aplicaciones de Microsoft Entra
- Cree una aplicación de Microsoft Entra con una entidad de servicio mediante Azure Portal, la CLI de Azure o Azure PowerShell.
- Copie los valores de id. de cliente, id. de suscripcióny id. de directorio (inquilino) para usarlos más adelante en el flujo de trabajo de Acciones de GitHub.
- Asigne un rol adecuado a la entidad de servicio con Azure Portal, la CLI de Azureo Azure PowerShell.
- Configurar una credencial de identidad federada en una aplicación de Microsoft Entra para confiar en los tokens emitidos por GitHub Actions en el repositorio de GitHub.
Opción 2: identidad administrada asignada por el usuario
- Crear una identidad administrada asignada por el usuario.
- Copie los valores de id. de cliente, id. de suscripcióny id. de directorio (inquilino) para usarlos más adelante en el flujo de trabajo de Acciones de GitHub.
- Asigne un rol apropiado a la identidad administrada asignada por el usuario.
- Configura una credencial de identidad federada en una identidad administrada asignada por el usuario para confiar en los tokens emitidos por GitHub Actions en tu repositorio de GitHub.
Copia la cadena de conexión de Azure Database for PostgreSQL
En Azure Portal, vaya a la instancia de servidor flexible de Azure Database for PostgreSQL y, en el menú de recursos, en Configuración, seleccione Conectar. En esa página, use el cuadro combinado Nombre de base de datos para seleccionar el nombre de la base de datos a la que desea conectarse. Expanda la sección Conectar desde su aplicación y copie la cadena de conexión ADO.NET, y sustituya el valor del marcador de posición {your_password} por su contraseña real. La cadena de conexión se parece a esto.
Server={servername.postgres.database.azure.com};Database={your_database};Port=5432;User Id={adminusername};Password={your_password};Ssl Mode=Require;
Use la cadena de conexión como secreto de GitHub.
Configuración de los secretos de GitHub
Debe proporcionar el Identificador de cliente de la aplicación, el Identificador del directorio (arrendatario) y el Identificador de suscripción a la acción de inicio de sesión. Estos valores se pueden proporcionar directamente en el flujo de trabajo o se pueden almacenar en secretos de GitHub y se puede hacer referencia a ellos en el flujo de trabajo. Guardar los valores como secretos de GitHub es la opción más segura.
En GitHub, vaya al repositorio.
Seleccione Seguridad > Secretos y variables > Acciones.
Seleccione New repository secret (Nuevo secreto del repositorio).
Nota:
Para mejorar la seguridad del flujo de trabajo en repositorios públicos, use secretos de entorno en lugar de secretos de repositorio. Si el entorno requiere aprobación, un trabajo no puede acceder a los secretos del entorno hasta que uno de los revisores necesarios lo apruebe.
Cree secretos para
AZURE_CLIENT_ID,AZURE_TENANT_IDyAZURE_SUBSCRIPTION_ID. Copie estos valores desde la aplicación de Microsoft Entra o la identidad administrada asignada por el usuario para los secretos de GitHub.Secreto de GitHub Aplicación de Microsoft Entra o identidad administrada asignada por el usuario AZURE_CLIENT_ID Id. de cliente AZURE_SUBSCRIPTION_ID Id. de suscripción AZURE_TENANT_ID Id. de directorio (inquilino) Nota:
Por motivos de seguridad, se recomienda usar secretos de GitHub en lugar de pasar valores directamente al flujo de trabajo.
Agregar el flujo de trabajo
Vaya a la opción de 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 el siguiente aspecto.name: CI on: push: branches: [ main ] pull_request: branches: [ main ]Cambie el nombre del flujo de trabajo
PostgreSQL for GitHub Actionsy agregue las acciones de restauración e inicio de sesión. Estas acciones verifican el código de tu sitio y se autentican con Azure usando los secretos de GitHub que creó anteriormente.name: PostgreSQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}Use la acción de implementación de Azure PostgreSQL para conectarse a la instancia de servidor flexible de Azure Database for PostgreSQL. Reemplace
POSTGRESQL_SERVER_NAMEpor el nombre del servidor. Debe tener un archivo de datos de Azure Database for PostgreSQL denominadodata.sqlen el nivel raíz del repositorio.- uses: azure/postgresql@v1 with: connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }} server-name: POSTGRESQL_SERVER_NAME plsql-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/workflowsdel repositorio.name: PostgreSQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: azure/postgresql@v1 with: server-name: POSTGRESQL_SERVER_NAME connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }} plsql-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 de Azure Database for PostgreSQL ya no sean necesarios, limpie los recursos implementados mediante la eliminación del grupo de recursos y el repositorio de GitHub.