AzurePowerShell@5 - Attività di Azure PowerShell v5
Usare questa attività per eseguire uno script di PowerShell all'interno di un ambiente Azure. Il contesto di Azure viene autenticato con la connessione al servizio Azure Resource Manager fornita.
Nota
Per impostazione predefinita, Azure PowerShell v5 usa PowerShell Core per gli agenti Linux e Windows PowerShell per gli agenti Windows. Per usare la versione più recente di PowerShell negli agenti Windows, impostare il parametro pwsh
su true
. PowerShell Core verrà quindi usato.
Sintassi
# Azure PowerShell v5
# Run a PowerShell script within an Azure environment.
- task: AzurePowerShell@5
inputs:
azureSubscription: # string. Alias: ConnectedServiceNameARM. Required. Azure Subscription.
#ScriptType: 'FilePath' # 'FilePath' | 'InlineScript'. Script Type. Default: FilePath.
#ScriptPath: # string. Optional. Use when ScriptType = FilePath. Script Path.
#Inline: # string. Optional. Use when ScriptType = InlineScript. Inline Script.
#ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments.
#errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#FailOnStandardError: false # boolean. Fail on Standard Error. Default: false.
# Azure PowerShell version options
#azurePowerShellVersion: 'OtherVersion' # 'LatestVersion' | 'OtherVersion'. Alias: TargetAzurePs. Azure PowerShell Version. Default: OtherVersion.
preferredAzurePowerShellVersion: # string. Alias: CustomTargetAzurePs. Required when TargetAzurePs = OtherVersion. Preferred Azure PowerShell Version.
# Advanced
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#validateScriptSignature: false # boolean. Optional. Use when ScriptType = FilePath. Validate script signature. Default: false.
#workingDirectory: # string. Working Directory.
# Azure PowerShell v5
# Run a PowerShell script within an Azure environment.
- task: AzurePowerShell@5
inputs:
azureSubscription: # string. Alias: ConnectedServiceNameARM. Required. Azure Subscription.
#ScriptType: 'FilePath' # 'FilePath' | 'InlineScript'. Script Type. Default: FilePath.
#ScriptPath: # string. Optional. Use when ScriptType = FilePath. Script Path.
#Inline: # string. Optional. Use when ScriptType = InlineScript. Inline Script.
#ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments.
#errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#FailOnStandardError: false # boolean. Fail on Standard Error. Default: false.
# Azure PowerShell version options
#azurePowerShellVersion: 'OtherVersion' # 'LatestVersion' | 'OtherVersion'. Alias: TargetAzurePs. Azure PowerShell Version. Default: OtherVersion.
preferredAzurePowerShellVersion: # string. Alias: CustomTargetAzurePs. Required when TargetAzurePs = OtherVersion. Preferred Azure PowerShell Version.
# Advanced
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
Ingressi dati
azureSubscription
-
sottoscrizione di Azure
Alias di input: ConnectedServiceNameARM
.
string
. Obbligatorio.
Sottoscrizione di Azure Resource Manager da configurare prima di eseguire PowerShell.
È possibile usare espressioni modello per specificare l'input di connessione del servizio. Nell'esempio seguente il azureSubscription
sta creando usando una stringa di formato e un'espressione basata sulla variabile environmentName
.
pool:
vmImage: ubuntu-latest
variables:
# Format string for the service connection
azureSubscriptionFormat: 'connectionString-{0}-001'
stages:
- stage: Prepare
variables:
environmentName: 'test'
# Stage level variable with the service connection name
# Evaluates to conenctionString-test-001
azureSubscription: ${{ format(variables.azureSubscriptionFormat, variables.environmentName) }}
jobs:
- job: RunStuff
steps:
- task: AzureCLI@2
inputs:
# Set this input to the computed value
azureSubscription: ${{ variables.azureSubscription }}
scriptType: bash
scriptLocation: inlineScript
inlineScript: 'echo Hello ${{ variables.azureSubscription }}'
- task: AzurePowerShell@5
inputs:
# Set this input to the computed value
azureSubscription: ${{ variables.azureSubscription }}
azurePowerShellVersion: 'LatestVersion'
scriptType: 'InlineScript'
inline: Write-Host "Hello ${{ variables.azureSubscription }}"
ScriptType
-
tipo di script
string
. Valori consentiti: FilePath
(percorso file script), InlineScript
(script inline). Valore predefinito: FilePath
Tipo dello script: percorso del file o inline.
ScriptPath
-
percorso script
string
. Opzionale. Usare quando ScriptType = FilePath
.
Percorso dello script. Deve trattarsi di un percorso completo o di un percorso relativo alla directory di lavoro predefinita.
Inline
-
script inline
string
. Opzionale. Usare quando ScriptType = InlineScript
. Valore predefinito: # You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments
Specifica lo script da eseguire. La lunghezza massima supportata dello script inline è di 5000 caratteri. Usare uno script da un file se si vuole usare uno script più lungo.
argomenti script ScriptArguments
-
string
. Opzionale. Usare quando ScriptType = FilePath
.
Parametri aggiuntivi da passare a PowerShell. Possono essere ordinali o parametri denominati. Non applicabile per un'opzione di script inline.
errorActionPreference
-
ErrorActionPreference
string
. Valori consentiti: stop
, continue
, silentlyContinue
. Valore predefinito: stop
Seleziona il valore della variabile ErrorActionPreference
per l'esecuzione dello script.
FailOnStandardError
-
errore standard
boolean
. Valore predefinito: false
In questo caso, questa attività avrà esito negativo se vengono scritti errori nella pipeline di errore o se i dati vengono scritti nel flusso di errore standard.
azurePowerShellVersion
-
versione di Azure PowerShell
Alias di input: TargetAzurePs
.
string
. Valori consentiti: LatestVersion
(versione installata più recente), OtherVersion
(specificare un'altra versione). Valore predefinito: OtherVersion
In caso di agenti ospitati, le versioni di Azure PowerShell supportate sono 1.0.0
, 1.6.0
, 2.3.2
, 2.6.0
e 3.1.0
(coda VS2017 ospitata).
Per selezionare la versione più recente disponibile nell'agente, selezionare LatestVersion
(versione installata più recente).
Per gli agenti privati è possibile specificare una versione preferita di Azure PowerShell usando OtherVersion
(specificare un'altra versione).
preferredAzurePowerShellVersion
-
di versione preferita di Azure PowerShell
Alias di input: CustomTargetAzurePs
.
string
. Obbligatorio quando TargetAzurePs = OtherVersion
.
La versione di Azure PowerShell preferita deve essere una versione semantica appropriata, ad esempio.
1.2.3
. L'espressione regolare come 2.\*,2.3.\*
non è supportata. Il pool di VS2017 ospitato supporta attualmente le versioni del modulo Az 1.0.0
, 1.6.0
, 2.3.2
, 2.6.0
e 3.1.0
.
pwsh
-
Usare powerShell Core
boolean
. Valore predefinito: false
Se questo è vero, le attività in esecuzione negli agenti Windows useranno pwsh.exe
dal percorso invece di powershell.exe
.
validateScriptSignature
-
Convalidare la firma dello script
boolean
. Opzionale. Usare quando ScriptType = FilePath
. Valore predefinito: false
Se è true, l'attività verificherà prima di tutto che lo script specificato sia firmato e valido prima di eseguirlo.
workingDirectory
-
directory di lavoro
string
.
Directory di lavoro in cui viene eseguito lo script.
Opzioni di controllo delle attività
Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.
Variabili di output
Nessuno.
Osservazioni:
Risoluzione dei problemi
Lo script ha funzionato in locale, ma non è riuscito nella pipeline
Ciò si verifica in genere quando la connessione al servizio usata nella pipeline non dispone di autorizzazioni sufficienti per eseguire lo script. In locale, lo script viene eseguito con le credenziali e avrà esito positivo perché potrebbe essere disponibile l'accesso necessario.
Per risolvere questo problema, assicurarsi che le credenziali di autenticazione/entità servizio dispongano delle autorizzazioni necessarie. Per altre informazioni, vedere Usare il controllo degli accessi in base al ruolo per gestire l'accesso alle risorse della sottoscrizione di Azure.
Errore: Impossibile trovare i moduli: ' nome modulo<>' con Versione: '<versione>'. Se il modulo è stato installato di recente, riprovare dopo il riavvio dell'agente attività di Azure Pipelines
L'attività di Azure PowerShell usa il modulo Azure/AzureRM/Az PowerShell per interagire con la sottoscrizione di Azure. Questo problema si verifica quando il modulo PowerShell non è disponibile nell'agente ospitato. Di conseguenza, per una determinata versione dell'attività, versione preferita di Azure PowerShell deve essere specificata nelle opzioni della versione di Azure PowerShell dall'elenco delle versioni disponibili. Il software installato è disponibile nella tabella Software in agenti ospitati da Microsoft.
Problemi di connessione al servizio
Per risolvere i problemi relativi alle connessioni al servizio, vedere risoluzione dei problemi di connessione al servizio .
Esempi
Nell'esempio seguente viene illustrato come richiamare uno script da un file e passarvi argomenti script.
- 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
Gli argomenti seguenti illustrano come richiamare uno script inline.
- task: AzurePowerShell@5
inputs:
azureSubscription: 'Azure subscription connection placeholder'
azurePowerShellVersion: LatestVersion
ScriptType: 'InlineScript'
Inline: |
# You can write your azure powershell scripts inline here.
# You can also pass predefined and custom variables to this script using arguments
Write-Host 'Hello'
Write-Host 'World!'
Requisiti
Requisito | Descrizione |
---|---|
Tipi di pipeline | YAML, build classica, versione classica |
Viene eseguito in | Agente, DeploymentGroup |
richieste | Nessuno |
funzionalità di | Questa attività non soddisfa alcuna richiesta di attività successive nel processo. |
restrizioni dei comandi | Qualunque |
variabili impostabili | Qualunque |
Versione dell'agente | 2.115.0 o versione successiva |
Categoria attività | Distribuire |