AzurePowerShell@5 – Azure PowerShell v5-Aufgabe
Verwenden Sie diese Aufgabe, um ein PowerShell-Skript in einer Azure-Umgebung auszuführen. Der Azure-Kontext wird mit der bereitgestellten Azure Resource Manager-Dienstverbindung authentifiziert.
Hinweis
Standardmäßig verwendet Azure PowerShell v5 PowerShell Core für Linux-Agents und Windows PowerShell für Windows-Agents. Um die neueste Version von PowerShell für Windows-Agents zu verwenden, legen Sie den parameter pwsh
auf true
fest. Stattdessen wird PowerShell Core verwendet.
Syntax
# 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.
Eingänge
azureSubscription
-
Azure-Abonnement-
Eingabealias: ConnectedServiceNameARM
.
string
. Erforderlich.
Das Azure Resource Manager-Abonnement, das vor der Ausführung von PowerShell konfiguriert werden soll.
Sie können Vorlagenausdrücke verwenden, um die Dienstverbindungseingabe anzugeben. Im folgenden Beispiel erstellt das azureSubscription
mithilfe einer Formatzeichenfolge und eines Ausdrucks basierend auf der environmentName
Variablen.
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
-
Skripttyp-
string
. Zulässige Werte: FilePath
(Skriptdateipfad), InlineScript
(Inlineskript). Standardwert: FilePath
.
Der Typ des Skripts: Dateipfad oder Inline.
ScriptPath
-
Skriptpfad
string
. Wahlfrei. Wird verwendet, wenn ScriptType = FilePath
.
Der Pfad des Skripts. Dies sollte ein vollqualifizierter Pfad oder ein pfad relativ zum Standardarbeitsverzeichnis sein.
Inline
-
Inlineskript-
string
. Wahlfrei. Wird verwendet, wenn ScriptType = InlineScript
. Standardwert: # You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments
.
Gibt das auszuführende Skript an. Die maximal unterstützte Inlineskriptlänge beträgt 5000 Zeichen. Verwenden Sie ein Skript aus einer Datei, wenn Sie ein längeres Skript verwenden möchten.
ScriptArguments
-
Skriptargumente
string
. Wahlfrei. Wird verwendet, wenn ScriptType = FilePath
.
Die zusätzlichen Parameter, die an PowerShell übergeben werden sollen. Dabei kann es sich um Ordinal- oder benannte Parameter handelt. Gilt nicht für eine Inlineskriptoption.
errorActionPreference
-
ErrorActionPreference-
string
. Zulässige Werte: stop
, continue
, silentlyContinue
. Standardwert: stop
.
Wählt den Wert der ErrorActionPreference
Variablen zum Ausführen des Skripts aus.
FailOnStandardError
-
fehler bei Standardfehler-
boolean
. Standardwert: false
.
Wenn dies zutrifft, schlägt diese Aufgabe fehl, wenn Fehler in die Fehlerpipeline geschrieben werden oder daten in den Standardfehlerdatenstrom geschrieben werden.
azurePowerShellVersion
-
Azure PowerShell-Version
Eingabealias: TargetAzurePs
.
string
. Zulässige Werte: LatestVersion
(neueste installierte Version), OtherVersion
(Andere Version angeben). Standardwert: OtherVersion
.
Bei gehosteten Agents sind die unterstützten Azure PowerShell-Versionen 1.0.0
, 1.6.0
, 2.3.2
, 2.6.0
und 3.1.0
(gehostete VS2017-Warteschlange).
Um die neueste version auszuwählen, die für den Agent verfügbar ist, wählen Sie LatestVersion
(neueste installierte Version) aus.
Für private Agents können Sie eine bevorzugte Version von Azure PowerShell mithilfe von OtherVersion
angeben (Andere Version angeben).
preferredAzurePowerShellVersion
-
bevorzugte Azure PowerShell-Version
Eingabealias: CustomTargetAzurePs
.
string
. Erforderlich, wenn TargetAzurePs = OtherVersion
.
Die bevorzugte Azure PowerShell-Version muss z. B. eine richtige semantische Version sein.
1.2.3
. Regex wie 2.\*,2.3.\*
wird nicht unterstützt. Der gehostete VS2017-Pool unterstützt derzeit Az-Modulversionen 1.0.0
, 1.6.0
, 2.3.2
, 2.6.0
und 3.1.0
.
pwsh
-
Verwenden von PowerShell Core-
boolean
. Standardwert: false
.
Wenn dies zutrifft, verwenden Aufgaben, die unter Windows-Agents ausgeführt werden, pwsh.exe
von Ihrem Pfad anstelle von powershell.exe
.
validateScriptSignature
-
Überprüfen der Skriptsignatur
boolean
. Wahlfrei. Wird verwendet, wenn ScriptType = FilePath
. Standardwert: false
.
Wenn dies zutrifft, überprüft die Aufgabe zunächst, ob das angegebene Skript signiert und gültig ist, bevor es ausgeführt wird.
workingDirectory
-
Arbeitsverzeichnis-
string
.
Das Arbeitsverzeichnis, in dem das Skript ausgeführt wird.
Aufgabensteuerungsoptionen
Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.
Ausgabevariablen
Keiner.
Bemerkungen
Problembehandlung
Das Skript hat lokal funktioniert, ist aber in der Pipeline fehlgeschlagen.
Dies geschieht in der Regel, wenn die in der Pipeline verwendete Dienstverbindung über unzureichende Berechtigungen zum Ausführen des Skripts verfügt. Lokal wird das Skript mit Ihren Anmeldeinformationen ausgeführt und wäre erfolgreich, da Sie möglicherweise über die erforderlichen Zugriffsberechtigungen verfügen.
Um dieses Problem zu beheben, stellen Sie sicher, dass der Dienstprinzipal/die Anmeldeinformationen für die Authentifizierung über die erforderlichen Berechtigungen verfügen. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf Ihre Azure-Abonnementressourcen mithilfe der rollenbasierten Zugriffssteuerung.
Fehler: Die Module "<Modulname>' mit Version: '<Version>' nicht gefunden. Wenn das Modul kürzlich installiert wurde, versuchen Sie es erneut, nachdem Sie den Azure Pipelines-Task-Agent neu gestartet haben.
Die Azure PowerShell-Aufgabe verwendet das PowerShell-Modul Azure/AzureRM/Az, um mit dem Azure-Abonnement zu interagieren. Dieses Problem tritt auf, wenn das PowerShell-Modul im gehosteten Agent nicht verfügbar ist. Daher muss für eine bestimmte Aufgabenversion bevorzugte Azure PowerShell-Version in den Azure PowerShell-Versionsoptionen aus der Liste der verfügbaren Versionen angegeben werden. Die installierte Software befindet sich in der Tabelle Software- in von Microsoft gehosteten Agents.
Dienstverbindungsprobleme
Informationen zum Beheben von Problemen im Zusammenhang mit Dienstverbindungen finden Sie unter Dienstverbindungs-Problembehandlung.
Beispiele
Das folgende Beispiel zeigt, wie Sie ein Skript aus einer Datei aufrufen und Skriptargumente an sie übergeben.
- 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
Die folgenden Argumente zeigen, wie sie ein Inlineskript aufrufen.
- 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!'
Anforderungen
Anforderung | BESCHREIBUNG |
---|---|
Pipelinetypen | YAML, Classic Build, Classic Release |
Läuft auf | Agent, DeploymentGroup |
Anforderungen | Nichts |
Funktionen | Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag. |
Befehlseinschränkungen | Jegliche |
Settable-Variablen | Jegliche |
Agentversion | 2.115.0 oder höher |
Vorgangskategorie | Einsetzen |