Condividi tramite


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.0e 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.0e 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