Tarea de Azure PowerShell

Azure Pipelines

Use esta tarea para ejecutar un script de PowerShell dentro de un entorno de Azure. El contexto de Azure se autentica con la conexión Azure Resource Manager servicio.

Fragmento de código YAML

# Azure PowerShell
# Run a PowerShell script within an Azure environment
- task: AzurePowerShell@5
  inputs:
    #azureSubscription: Required. Name of Azure Resource Manager service connection
    #scriptType: 'FilePath' # Optional. Options: filePath, inlineScript
    #scriptPath: # Optional
    #inline: '# You can write your Azure PowerShell scripts inline here. # You can also pass predefined and custom variables to this script using arguments' # Optional
    #scriptArguments: # Optional
    #errorActionPreference: 'stop' # Optional. Options: stop, continue, silentlyContinue
    #failOnStandardError: false # Optional
    #azurePowerShellVersion: 'OtherVersion' # Required. Options: latestVersion, otherVersion
    #preferredAzurePowerShellVersion: # Required when azurePowerShellVersion == OtherVersion
    #pwsh: true # Optional. If true, then will use PowerShell Core pwsh.exe

Argumentos

Argumento Descripción
ConnectedServiceNameARM
Suscripción de Azure
(Obligatorio) Nombre de una conexión Azure Resource Manager servicio para la autenticación.
Alias de argumento: azureSubscription
ScriptType
Tipo de secuencia de comandos
(Opcional) Tipo del script: filePath o inlineScript
Valor predeterminado: FilePath
ScriptPath
Ruta de acceso del script
(Opcional) Ruta de acceso del script. Debe ser una ruta de acceso completa o relativa al directorio de trabajo predeterminado.
Inline
script en línea.
(Opcional) Escriba el script que se ejecutará.
Valor predeterminado:
# Puede escribir los scripts Azure PowerShell en línea aquí.
ScriptArguments
Argumentos de script
(Opcional) Parámetros adicionales que se pasarán a PowerShell. Puede ser parámetros ordinales o con nombre. No es aplicable a la opción de script en línea.
errorActionPreference
ErrorActionPreference
(Opcional) Seleccione el valor de la variable ErrorActionPreference para ejecutar el script.
Valor predeterminado: stop
FailOnStandardError
Error cuando se produce un error estándar
(Opcional) Si esto es así, se producirá un error en esta tarea si se escribe algún error en la canalización de errores o si se escribe algún dato en la secuencia de errores estándar.
Valor predeterminado: false
TargetAzurePs
Azure PowerShell versión
(Obligatorio) En el caso de los agentes hospedados por Microsoft, la versión Azure PowerShell compatible. Para elegir la versión más reciente disponible en el agente, seleccione Latest installed version.
En el caso de los agentes auto-hospedados, puede especificar la versión preferida de Azure PowerShell mediante "Especificar versión".
Valor predeterminado: OtherVersion
Alias de argumento: azurePowerShellVersion
CustomTargetAzurePs
preferredAzurePowerShellVersion
(Obligatorio cuando TargetAzurePs = OtherVersion)
Preferred Azure PowerShell Version debe ser una versión semántica adecuada. Por ejemplo, 1.2.3. No se admite regex como 2.*,2.3.*.
Alias de argumento: preferredAzurePowerShellVersion
pwsh
Uso de PowerShell Core
(Opcional) Si esto es así, en Windows, la tarea usará pwsh.exe de path en lugar de powershell.exe.
workingDirectory
Directorio de trabajo
(Opcional) Directorio de trabajo donde se ejecuta el script.

Ejemplos

- task: AzurePowerShell@5
  inputs:
    azureSubscription: my-arm-service-connection
    scriptType: filePath
    scriptPath: $(Build.SourcesDirectory)\myscript.ps1
    scriptArguments:
      -Arg1 val1 `
      -Arg2 val2 `
      -Arg3 val3
    azurePowerShellVersion: latestVersion
    pwsh: true

Solución de problemas

El script funcionaba localmente, pero no se pudo ejecutar en la canalización

Esto suele ocurrir cuando la conexión de servicio usada en la canalización no tiene permisos suficientes para ejecutar el script. Localmente, el script se ejecuta con sus credenciales y se ejecutaría correctamente, ya que puede tener el acceso necesario.

Para resolver este problema, asegúrese de que las credenciales de autenticación o principio de servicio tienen los permisos necesarios. Para más información, consulte Uso de Role-Based Access Control para administrar el acceso a los recursos de la suscripción de Azure.

Error: No se pudieron encontrar los módulos: ' < nombre del módulo ' con la > versión: ' versión <> '. Si el módulo se instaló recientemente, vuelva a intentarlo después de reiniciar el Azure Pipelines de tareas.

Azure PowerShell tarea usa el módulo azure/azurerm/az de PowerShell para interactuar con la suscripción de Azure. Este problema se produce cuando el módulo de PowerShell no está disponible en el agente hospedado. Por lo tanto, para una versión de tarea determinada, la versión Azure PowerShell preferida debe especificarse en las opciones Azure PowerShell versión de la lista de versiones disponibles. El software instalado se puede encontrar en la tabla Software de los agentes hospedados por Microsoft.

Problemas de conexión de servicio

Para solucionar problemas relacionados con las conexiones de servicio, consulte Solución de problemas de conexiones de servicio.

Código Abierto

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