Freigeben über


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 truefest. 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.0und 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.0und 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