Inicio rápido: Uso de Acciones de GitHub para conectarse a Azure Database for PostgreSQL: servidor flexible

SE APLICA A: Azure Database for PostgreSQL: servidor único Azure Database for PostgreSQL: servidor flexible

Importante

El servicio de servidor único de Azure Database for PostgreSQL está en proceso de retirada. Se recomienda encarecidamente actualizar a Azure Database for PostgreSQL: servidor flexible. Para más información sobre la migración al servidor flexible de Azure Database for PostgreSQL, consulte ¿Qué sucederá con el servicio de servidor único de Azure Database for PostgreSQL?

Comience a trabajar con Acciones de GitHub usando un flujo de trabajo para implementar actualizaciones de base de datos en Azure Database for PostgreSQL: servidor flexible.

Requisitos previos

Necesita:

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 del servidor flexible de Azure Database for PostgreSQL

En Azure Portal, vaya a la instancia del servidor flexible de Azure Database for PostgreSQL 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. La cadena de conexión se parece a esto.

Importante

  • Para Azure Database for PostgreSQL: servidor único use user=adminusername@servername. Tenga en cuenta que se necesita @servername.
  • Para Azure Database for PostgreSQL: servidor flexible, use user= adminusername sin @servername.
psql host={servername.postgres.database.azure.com} port=5432 dbname={your_database} user={adminusername} password={your_database_password} sslmode=require

Use la cadena de conexión como secreto de GitHub.

Configuración de los secretos de GitHub

  1. En GitHub, vaya al repositorio.

  2. Vaya a Configuración en el menú de navegación.

  3. Seleccione Seguridad > Secretos y variables > Acciones.

    Captura de pantalla de la adición de un secreto

  4. Seleccione New repository secret (Nuevo secreto del repositorio).

  5. 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.

  6. Seleccione Add secret (Agregar secreto).

Agregar el flujo de trabajo

  1. Vaya a Acciones del repositorio de GitHub.

  2. Seleccione Set up your workflow yourself (Configure el flujo de trabajo usted mismo).

  3. 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 ]
    
  4. Cambie el nombre del flujo de trabajo PostgreSQL for GitHub Actions y 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@v1
        with:
            creds: ${{ secrets.AZURE_CREDENTIALS }}
    
  5. 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_NAME por el nombre del servidor. Debe tener un archivo de datos de servidor flexible de Azure Database for PostgreSQL denominado data.sql a 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'
    
  6. 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: 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@v1
        with:
            client-id: ${{ secrets.AZURE_CREDENTIALS }}
    
    - 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

  1. Vaya a la opción de Acciones del repositorio de GitHub.

  2. Abra el primer resultado para ver los registros detallados de la ejecución del flujo de trabajo.

    Registro de ejecución de Acciones de GitHub.

Limpieza de recursos

Cuando la base de datos y el repositorio del servidor flexible de Azure Database for PostgreSQL dejen de ser necesarios, elimine el grupo de recursos y el repositorio de GitHub para limpiar los recursos.

Pasos siguientes