Dela via


AzurePowerShell@5 – Azure PowerShell v5-uppgift

Använd den här uppgiften för att köra ett PowerShell-skript i en Azure-miljö. Azure-kontexten autentiseras med den tillhandahållna Azure Resource Manager-tjänstanslutningen.

Anmärkning

Som standard använder Azure PowerShell v5 PowerShell Core för Linux-agenter och Windows PowerShell för Windows-agenter. Om du vill använda den senaste versionen av PowerShell på Windows-agenter anger du parametern pwsh till true. PowerShell Core används sedan i stället.

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.

Ingångar

azureSubscription - Azure-prenumeration
Indataalias: ConnectedServiceNameARM. string. Obligatoriskt.

Den Azure Resource Manager-prenumeration som ska konfigureras innan du kör PowerShell.

Du kan använda malluttryck för att ange tjänstanslutningsindata. I följande exempel skapar azureSubscription med hjälp av en formatsträng och ett uttryck baserat på variabeln 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 - skripttyp
string. Tillåtna värden: FilePath (skriptfilsökväg), InlineScript (infogat skript). Standardvärde: FilePath.

Typ av skript: filsökväg eller infogad.


ScriptPath - skriptsökväg
string. Valfritt. Använd när ScriptType = FilePath.

Sökvägen till skriptet. Detta bör vara en fullständigt kvalificerad sökväg eller en i förhållande till standardarbetskatalogen.


Inline - infogat skript
string. Valfritt. Använd när ScriptType = InlineScript. Standardvärde: # You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments.

Anger vilket skript som ska köras. Den maximala längden på infogade skript som stöds är 5 000 tecken. Använd ett skript från en fil om du vill använda ett längre skript.


ScriptArguments - skriptargument
string. Valfritt. Använd när ScriptType = FilePath.

De ytterligare parametrar som ska skickas till PowerShell. Dessa kan vara antingen ordningstal eller namngivna parametrar. Inte tillämpligt för ett infogat skriptalternativ.


errorActionPreference - ErrorActionPreference
string. Tillåtna värden: stop, continue, silentlyContinue. Standardvärde: stop.

Väljer värdet för variabeln ErrorActionPreference för körning av skriptet.


FailOnStandardError - fel vid standardfel
boolean. Standardvärde: false.

När detta är sant misslyckas den här uppgiften om några fel skrivs till felpipelinen eller om några data skrivs till standardfelströmmen.


azurePowerShellVersion - Azure PowerShell-version
Indataalias: TargetAzurePs. string. Tillåtna värden: LatestVersion (senaste installerade versionen), OtherVersion (Ange annan version). Standardvärde: OtherVersion.

När det gäller värdbaserade agenter är de Azure PowerShell-versioner som stöds 1.0.0, 1.6.0, 2.3.2, 2.6.0och 3.1.0 (värdbaserad VS2017-kö). Välj den senaste versionen som är tillgänglig för agenten genom att välja LatestVersion (senaste installerade versionen).

För privata agenter kan du ange en önskad version av Azure PowerShell med hjälp av OtherVersion (Ange annan version).


preferredAzurePowerShellVersion - Föredragen Azure PowerShell-version
Indataalias: CustomTargetAzurePs. string. Krävs när TargetAzurePs = OtherVersion.

Den föredragna Azure PowerShell-versionen måste vara en korrekt semantisk version t.ex. 1.2.3. Regex som 2.\*,2.3.\* stöds inte. Den värdbaserade VS2017-poolen stöder för närvarande Az-modulversioner 1.0.0, 1.6.0, 2.3.2, 2.6.0och 3.1.0.


pwsh - Använda PowerShell Core
boolean. Standardvärde: false.

Om detta är sant använder aktiviteter som körs på Windows-agenter pwsh.exe från sökvägen i stället för powershell.exe.


validateScriptSignature - Verifiera skriptsignatur
boolean. Valfritt. Använd när ScriptType = FilePath. Standardvärde: false.

Om detta är sant kontrollerar aktiviteten först att det angivna skriptet är signerat och giltigt innan det körs.


workingDirectory - Arbetskatalog
string.

Arbetskatalogen där skriptet körs.


Kontrollalternativ för aktivitet

Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Ingen.

Anmärkningar

Felsökning

Skriptet fungerade lokalt, men misslyckades i pipelinen

Detta inträffar vanligtvis när tjänstanslutningen som används i pipelinen inte har tillräckliga behörigheter för att köra skriptet. Lokalt körs skriptet med dina autentiseringsuppgifter och kan lyckas eftersom du kan ha nödvändig åtkomst.

Lös problemet genom att se till att autentiseringsuppgifterna för tjänsten har behörigheterna som krävs. Mer information finns i Använda rollbaserad åtkomstkontroll för att hantera åtkomsten till dina Azure-prenumerationsresurser.

Fel: Det gick inte att hitta modulerna:<modulnamn>med version:<version>. Om modulen nyligen har installerats försöker du igen när du har startat om Azure Pipelines-aktivitetsagenten

Azure PowerShell-uppgifter använder Azure/AzureRM/Az PowerShell-modulen för att interagera med Azure-prenumerationen. Det här problemet uppstår när PowerShell-modulen inte är tillgänglig på den värdbaserade agenten. För en viss aktivitetsversion måste därför Önskad Azure PowerShell-version anges i Azure PowerShell-versionsalternativ från listan över tillgängliga versioner. Den installerade programvaran finns i tabellen Software i Microsoft-värdbaserade agenter.

Problem med tjänstanslutning

Information om hur du felsöker problem som rör tjänstanslutningar finns i felsöka Service Connection.

Exempel

I följande exempel visas hur du anropar ett skript från en fil och skickar skriptargument till den.

- 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

Följande argument visar hur du anropar ett infogat skript.

- 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!'

Krav

Krav Beskrivning
Pipelinetyper YAML, klassisk version, klassisk version
Körs på Agent, DeploymentGroup
kräver Ingen
funktioner Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Kommandobegränsningar Vilken som helst
variabler som kan Vilken som helst
Agentversion 2.115.0 eller senare
Aktivitetskategori Gruppera