Tarea CLI de Azure

Azure Pipelines

Use esta tarea para ejecutar un shell o un script por lotes que contenga CLI de Azure comandos en una suscripción de Azure. Esta tarea se usa para ejecutar comandos CLI de Azure en agentes multiplataforma que se ejecutan en linux, macOS o Windows operativos.

Novedades de la versión 2.0

  • Admite la ejecución de PowerShell PowerShell Core script.
  • PowerShell Core script funciona con agentes de Xplat (Windows, Linux u OSX), asegúrese de que el agente tiene PowerShell versión 6 o posterior.
  • El script de PowerShell solo funciona Windows agente, asegúrese de que el agente tiene la versión 5 o inferior de PowerShell.

Requisitos previos

  • Una suscripción de Microsoft Azure.

  • Azure Resource Manager conexión de servicio a su cuenta de Azure.

  • Los agentes hospedados por Microsoft tienen la CLI de Azure preinstalada. Si usa agentes privados en su lugar, instale la CLI de Azure en los equipos donde se ejecute el agente de compilación y versión. Si ya hay un agente en ejecución en el equipo en el que está instalada la CLI de Azure, reinicie el agente para asegurarse de que se actualicen todas las variables de fase pertinentes.

Entradas de tareas

Parámetros Descripción
azureSubscription
Suscripción a Azure
(Obligatorio) Nombre de la conexión Azure Resource Manager servicio
scriptType
Tipo de secuencia de comandos
(Obligatorio) Tipo de script:
si usa un agente de
seleccione uno de los siguientes tipos:
  • bash
  • pscore
Si usa un agente Windows ,seleccione uno de los siguientes tipos:
  • batch
  • ps
  • pscore


scriptLocation
Ubicación del script
(Obligatorio) seleccione scriptPath para usar un archivo de script o si desea escribir el script en inlineScript línea.
Valor predeterminado: scriptPath
scriptPath
Ruta de acceso del script
Se requiere cuando scriptLocation = scriptPath . Ruta de acceso completa del archivo de script o una ruta de acceso relativa al directorio de trabajo predeterminado
inlineScript
script en línea.
Se requiere cuando scriptLocation = inlineScript . Use esta opción si desea pegar los scripts en línea. Use PowerShell, PowerShell Core o scripting por lotes para Windows y Bash o PowerShell Core al usar agentes basados en Linux. Use el call prefijo antes de cada comando de Azure cuando use batch. También puede pasar variables predefinidas y personalizadas al script mediante argumentos.
Ejemplos:
PowerShell/PowerShellCore/shell: az --version az account show
batch: llame a az --version call az account show
arguments
Argumentos de script
(Opcional) Argumentos pasados al script
powerShellErrorActionPreference
ErrorActionPreference
(Opcional) Antepone la línea $ErrorActionPreference = 'VALUE' en la parte superior del script de PowerShell/PowerShell Core.
Valor predeterminado: stop
Las opciones son stop, continue y silentlyContinue
addSpnToEnvironment
Acceso a los detalles de la entidad de servicio en el script
(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.
Valor predeterminado: false
useGlobalConfig
Uso de la configuración CLI de Azure global
(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
Directorio de trabajo
(Opcional) Directorio de trabajo actual donde se ejecuta el script. Vacío es la raíz del repositorio (compilación) o artefactos (versión), que es $(System.DefaultWorkingDirectory)
failOnStandardError
Error al producirse un error estándar
(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 confiar en los códigos de salida para determinar el estado.
Valor predeterminado: false
powerShellIgnoreLASTEXITCODE
Omitir $LASTEXITCODE
(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
Valor predeterminado: false

Ejemplo

A continuación se muestra un ejemplo de un fragmento de código YAML que muestra la versión de CLI de Azure y obtiene los detalles de la suscripción.

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptType: ps
    scriptLocation: inlineScript
    inlineScript: |
      az --version
      az account show

En el ejemplo siguiente se muestra cómo pasar argumentos al script.

  • Pasar argumentos a scripts en línea:

    - task: AzureCLI@2
      inputs:
        azureSubscription: <Azure_Resource_Manager_Service_Connection>
        scriptType: 'ps'
        scriptLocation: 'inlineScript'
        arguments: '$(AZURE_STORAGE_ACCOUNT) $(AZURE_STORAGE_KEY)'
        inlineScript: './scripts/publish.ps1 $1 $2'
    
  • Pasar argumentos con la ruta de acceso del script:

    - task: AzureCLI@2
      inputs:
        azureSubscription: <Azure_Resource_Manager_Service_Connection>
        scriptType: 'ps'
        scriptLocation: 'scriptPath'
        arguments: '$(AZURE_STORAGE_ACCOUNT) $(AZURE_STORAGE_KEY)'
        scriptPath: './scripts/publish.ps1'
    

De código abierto

Esta tarea es de código abierto en GitHub. Los comentarios y las contribuciones son bienvenidos.

Preguntas más frecuentes

¿Necesito un agente?

Necesita al menos un agente para ejecutar la compilación o versión.

Tengo problemas. ¿Cómo puedo solucionarlos?

Vea Solución de problemas de compilación y versión.

No se puede seleccionar un grupo de agentes predeterminado y no se puede poner en cola la compilación o versión. ¿Cómo puedo corregirlo?

Vea Grupos de agentes.

La tarea de envío de cambios de NuGet genera el error siguiente: "Error: no se puede obtener el certificado del emisor local". ¿Cómo lo puedo corregir?

Esto se puede corregir si se añade un certificado raíz de confianza. Puede agregar la variable de entorno NODE_EXTRA_CA_CERTS=file al agente de compilación, o bien la variable de tarea NODE.EXTRA.CA.CERTS=file en la canalización. Vea la documentación de Node.js para obtener más detalles sobre esta variable. Consulte Establecimiento de variables en una canalización para obtener instrucciones sobre cómo establecer una variable en la canalización.