Sdílet prostřednictvím


AzurePowerShell@5 – úloha Azure PowerShellu v5

Tuto úlohu použijte ke spuštění skriptu PowerShellu v prostředí Azure. Kontext Azure se ověřuje pomocí poskytnutého připojení služby Azure Resource Manager.

Poznámka:

Azure PowerShell v5 ve výchozím nastavení používá PowerShell Core pro agenty Linuxu a Windows PowerShell pro agenty Windows. Pokud chcete používat nejnovější verzi PowerShellu v agentech Windows, nastavte parametr pwsh na true. Místo toho se použije PowerShell Core.

Syntaxe

# 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.

Vstupy

azureSubscription - předplatného Azure
Vstupní alias: ConnectedServiceNameARM. string. Povinné.

Před spuštěním PowerShellu nakonfigurujete předplatné Azure Resource Manageru.

Pomocí výrazů šablon můžete zadat vstup připojení služby. V následujícím příkladu azureSubscription vytváří pomocí formátového řetězce a výrazu založeného na proměnné 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 - typ skriptu
string. Povolené hodnoty: FilePath (cesta k souboru skriptu), InlineScript (vložený skript). Výchozí hodnota: FilePath.

Typ skriptu: cesta k souboru nebo vložená.


cesta ke skriptu ScriptPath -
string. Volitelný. Používá se při ScriptType = FilePath.

Cesta skriptu. Měla by to být plně kvalifikovaná cesta nebo cesta vzhledem k výchozímu pracovnímu adresáři.


Inline - vložený skript
string. Volitelný. Používá se při ScriptType = InlineScript. Výchozí hodnota: # You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments.

Specifikuje skript, který se má spustit. Maximální podporovaná délka vloženého skriptu je 5 000 znaků. Pokud chcete použít delší skript, použijte skript ze souboru.


ScriptArguments - argumenty skriptu
string. Volitelný. Používá se při ScriptType = FilePath.

Další parametry, které se mají předat do PowerShellu. Mohou to být buď řadové, nebo pojmenované parametry. Nelze použít pro možnost vloženého skriptu.


errorActionPreference - ErrorActionPreference
string. Povolené hodnoty: stop, continue, silentlyContinue. Výchozí hodnota: stop.

Vybere hodnotu ErrorActionPreference proměnné pro spuštění skriptu.


Selhání FailOnStandardError - na standardním chyb
boolean. Výchozí hodnota: false.

Pokud je to pravda, tato úloha selže, pokud se do kanálu chyby zapíšou nějaké chyby nebo pokud se nějaká data zapíšou do standardního datového proudu chyb.


azurePowerShellVersion - verze Azure PowerShellu
Vstupní alias: TargetAzurePs. string. Povolené hodnoty: LatestVersion (nejnovější nainstalovaná verze), OtherVersion (zadejte jinou verzi). Výchozí hodnota: OtherVersion.

V případě hostovaných agentů jsou podporované verze Azure PowerShellu 1.0.0, 1.6.0, 2.3.2, 2.6.0a 3.1.0 (hostovaná fronta VS2017). Pokud chcete vybrat nejnovější verzi dostupnou v agentu, vyberte LatestVersion (nejnovější nainstalovaná verze).

U privátních agentů můžete zadat upřednostňovanou verzi Azure PowerShellu pomocí OtherVersion (zadejte jinou verzi).


preferredAzurePowerShellVersion - upřednostňovanou verzi Azure PowerShellu
Vstupní alias: CustomTargetAzurePs. string. Požadováno při TargetAzurePs = OtherVersion.

Upřednostňovaná verze Azure PowerShellu musí být správná sémantická verze, např. 1.2.3. Regulární výrazy jako 2.\*,2.3.\* se nepodporují. Hostovaný fond VS2017 v současné době podporuje verze modulů Az 1.0.0, 1.6.0, 2.3.2, 2.6.0a 3.1.0.


pwsh - použití PowerShellu Core
boolean. Výchozí hodnota: false.

Pokud je to pravda, budou úlohy spuštěné na agentech systému Windows místo pwsh.exepoužívat powershell.exe z vaší cesty .


validateScriptSignature - ověření podpisu skriptu
boolean. Volitelný. Používá se při ScriptType = FilePath. Výchozí hodnota: false.

Pokud je to pravda, úloha nejprve zkontroluje, zda je zadaný skript podepsán a platný před jeho spuštěním.


workingDirectory - pracovní adresář
string.

Pracovní adresář, ve kterém se skript spouští.


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace naleznete v tématu Možnosti ovládacího prvku a běžné vlastnosti úloh.

Výstupní proměnné

Žádné.

Poznámky

Řešení problémů

Skript fungoval místně, ale v kanálu selhal

K tomu obvykle dochází v případě, že připojení služby použité v kanálu nemá dostatečná oprávnění ke spuštění skriptu. Místně se skript spustí s vašimi přihlašovacími údaji a bude úspěšný, protože máte požadovaný přístup.

Pokud chcete tento problém vyřešit, ujistěte se, že přihlašovací údaje instančních objektů nebo ověřování mají požadovaná oprávnění. Další informace najdete v tématu Použití řízení přístupu na základě role ke správě přístupu k prostředkům předplatného Azure.

Chyba: Moduly se nepodařilo najít:<název modulu>s verzí:<verze>. Pokud byl modul nedávno nainstalovaný, zkuste to znovu po restartování agenta úloh Azure Pipelines.

Úloha Azure PowerShellu používá k interakci s předplatným Azure modul Azure, AzureRM/Az PowerShell. K tomuto problému dochází v případě, že modul PowerShellu není k dispozici v hostovaném agentu. V případě konkrétní verze úlohy proto upřednostňovaná verze Azure PowerShellu musí být zadána v možnostech verze Azure PowerShellu ze seznamu dostupných verzí. Nainstalovaný software najdete v tabulce Software v agentech hostovaných Microsoftem.

Problémy s připojením ke službě

Informace o řešení potíží souvisejících s připojením ke službě najdete v tématu Řešení potíží s připojením ke službě.

Příklady

Následující příklad ukazuje, jak vyvolat skript ze souboru a předat do něj argumenty skriptu.

- 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

Následující argumenty ukazují, jak vyvolat vložený 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!'

Požadavky

Požadavek Popis
Typy kanálů YAML, klasické sestavení, klasická verze
Běží na Agent, DeploymentGroup
požadavky Žádný
možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
omezení příkazů Jakýkoliv
nastavitelné proměnné Jakýkoliv
Verze agenta 2.115.0 nebo vyšší
Kategorie úkolu Nasadit