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 |
|---|---|
ConnectedServiceNameARMSuscripción de Azure |
(Obligatorio) Nombre de una conexión Azure Resource Manager servicio para la autenticación. Alias de argumento: azureSubscription |
ScriptTypeTipo de secuencia de comandos |
(Opcional) Tipo del script: filePath o inlineScript Valor predeterminado: FilePath |
ScriptPathRuta de acceso del script |
(Opcional) Ruta de acceso del script. Debe ser una ruta de acceso completa o relativa al directorio de trabajo predeterminado. |
Inlinescript en línea. |
(Opcional) Escriba el script que se ejecutará. Valor predeterminado: # Puede escribir los scripts Azure PowerShell en línea aquí. |
ScriptArgumentsArgumentos 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. |
errorActionPreferenceErrorActionPreference |
(Opcional) Seleccione el valor de la variable ErrorActionPreference para ejecutar el script. Valor predeterminado: stop |
FailOnStandardErrorError 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 |
TargetAzurePsAzure 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 |
CustomTargetAzurePspreferredAzurePowerShellVersion |
(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 |
pwshUso de PowerShell Core |
(Opcional) Si esto es así, en Windows, la tarea usará pwsh.exe de path en lugar de powershell.exe. |
workingDirectoryDirectorio 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.