Compartir a través de


Azure Pipelines for Azure Database for MySQL: Servidor flexible

Después de cada compilación correcta con Azure Pipelines, puede implementar automáticamente las actualizaciones de base de datos en Servidor flexible de Azure Database for MySQL. Se puede usar una tarea de la CLI de Azure para actualizar la base de datos con un archivo SQL o un script SQL insertado en la base de datos. Esta tarea se puede ejecutar en agentes multiplataforma que se ejecutan en los sistemas operativos Linux, macOS o Windows.

Requisitos previos

En este tutorial rápido se usan como punto de partida los recursos creados en una de estas guías:

Uso de un archivo SQL

En el siguiente ejemplo, se muestra cómo pasar argumentos de base de datos y ejecutar el comando execute.

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
    inlineScript: |
      az login --allow-no-subscription
      az mysql flexible-server execute --name $(SERVERNAME) \
      --admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
      --database-name $(DBNAME) \
      --file-path /code/sql/db-schema-update.sql

Uso de un script SQL insertado

En el siguiente ejemplo, se muestra cómo ejecutar un script SQL insertado con el comando execute.

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
      -INLINESCRIPT
    inlineScript: |
      az login --allow-no-subscription
      az mysql flexible-server execute --name $(SERVERNAME) \
      --admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
      --database-name $(DBNAME) \
      --query-text "UPDATE items SET items.retail = items.retail * 0.9 WHERE items.id =100;"

Entradas de la tarea

Puede ver la lista completa de todas las entradas de la tarea al usar una tarea de la CLI de Azure con Azure Pipelines.

Parámetro Descripción
azureSubscription (Obligatorio) Proporcione la suscripción de Azure Resource Manager de la implementación. Este parámetro se muestra únicamente cuando la versión de la tarea seleccionada es 0.*, ya que la versión 1.0 de la tarea de la CLI de Azure solo admite suscripciones Azure Resource Manager.
scriptType (Obligatorio) Proporcione el tipo de script. Los scripts admitidos son PowerShell, PowerShell Core, Bat, Shell y script. Cuando se ejecuta en un agente de Linux, seleccione una de las siguientes opciones: bash o pscore. Cuando se ejecuta en un agente de Windows, seleccione una de las siguientes opciones: batch, ps o pscore.
scriptLocation (Obligatorio) Proporcione la ruta de acceso al script, por ejemplo, la ruta de acceso del archivo real, o use Inline script al especificar scripts insertados. El valor predeterminado es scriptPath.
scriptPath (Obligatorio) Ruta de acceso completa del script (.ps1, .bat o .cmd si se usa un agente basado en Windows, o .ps1 o .sh si se usa un agente basado en Linux), o bien la ruta de acceso correspondiente al directorio de trabajo predeterminado.
inlineScript (Obligatorio) Aquí se pueden escribir los scripts insertados. Si usa un agente de Windows, use PowerShell, PowerShell Core o scripts por lotes; si usa un agente basado en Linux, use en su lugar scripts de PowerShell Core o de shell. En los archivos por lotes, use el prefijo "call" antes de cada comando de Azure. También se pueden pasar variables predefinidas y personalizadas a este script mediante argumentos.
Ejemplo para PowerShell, PowerShellCore y el shell: az --version az account show
Ejemplo para script por lotes: call az --version call az account show
argumentos (Opcional) Proporcione todos los argumentos pasados al script. Por ejemplo, -SERVERNAME mydemoserver.
powerShellErrorActionPreference (Opcional) Antepone la línea $ErrorActionPreference = 'VALUE' al inicio del script de PowerShell o PowerShell Core. El valor predeterminado es stop. Los valores admitidos son stop, continue y silentlyContinue.
addSpnToEnvironment (Opcional) Agrega el identificador de la entidad de servicio y la clave del punto de conexión de Azure que haya elegido al entorno de ejecución del script. En el script se pueden usar estas variables: $env:servicePrincipalId, $env:servicePrincipalKey y $env:tenantId. Esto solo se respeta cuando el punto de conexión de Azure tiene un esquema de autenticación de entidad de servicio. El valor predeterminado es false.
useGlobalConfig (Opcional) Si es false, esta tarea usará su propio directorio de configuración de la CLI de Azure independiente. Se puede usar para ejecutar tareas de la CLI de Azure en versiones paralelas.
Valor predeterminado: false
workingDirectory (Opcional) Directorio de trabajo actual donde se ejecuta el script. Si está vacío, es la raíz del repositorio (compilación) o de los artefactos (versión), que es $(System.DefaultWorkingDirectory).
failOnStandardError (Opcional) Si es true, la tarea no se llevará a cabo cuando se escriban errores en la secuencia StandardError. Anule la selección de la casilla para omitir los errores estándar y basarse en los códigos de salida para determinar el estado. El valor predeterminado es false.
powerShellIgnoreLASTEXITCODE (Opcional) Si es false, la línea if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } se anexa al final del script. Esto hará que el último código de salida de un comando externo se propague como el código de salida de PowerShell. De lo contrario, la línea no se anexa al final del script. El valor predeterminado es false.
Si tiene problemas con la tarea de la CLI, consulte Solución de problemas de ejecuciones de canalizaciones.