Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use essa tarefa para executar um script do PowerShell em um ambiente do Azure. O contexto do Azure é autenticado com a conexão de serviço Azure Resource Manager fornecida.
Observação
Por padrão, o Azure PowerShell v5 usa o PowerShell Core para agentes do Linux e o Windows PowerShell para agentes do Windows. Para usar a versão mais recente do PowerShell em agentes do Windows, defina o parâmetro pwsh
como true
. Em vez disso, o PowerShell Core será usado.
Sintaxe
# 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.
Entradas
azureSubscription
-
assinatura do Azure
Alias de entrada: ConnectedServiceNameARM
.
string
. Obrigatório
A assinatura do Azure Resource Manager a ser configurada antes de executar o PowerShell.
Você pode usar expressões de modelo para especificar a entrada de conexão de serviço. No exemplo a seguir, o azureSubscription
está criando usando uma cadeia de caracteres de formato e uma expressão com base na variável 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 de script
string
. Valores permitidos: FilePath
(caminho do arquivo de script), InlineScript
(script embutido). Valor padrão: FilePath
.
O tipo do script: caminho do arquivo ou embutido.
ScriptPath
-
caminho de script
string
. Opcional. Use quando ScriptType = FilePath
.
O caminho do script. Esse deve ser um caminho totalmente qualificado ou um relativo ao diretório de trabalho padrão.
Inline
-
script embutido
string
. Opcional. Use quando ScriptType = InlineScript
. Valor padrão: # You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments
.
Especifica o script a ser executado. O comprimento máximo de script embutido com suporte é de 5.000 caracteres. Use um script de um arquivo se quiser usar um script mais longo.
argumentos de script ScriptArguments
-
string
. Opcional. Use quando ScriptType = FilePath
.
Os parâmetros adicionais a serem passados para o PowerShell. Eles podem ser parâmetros ordinais ou nomeados. Não aplicável a uma opção de script embutido.
ErrorActionPreference errorActionPreference
-
string
. Valores permitidos: stop
, continue
, silentlyContinue
. Valor padrão: stop
.
Seleciona o valor da variável ErrorActionPreference
para executar o script.
FailOnStandardError
-
falha no de erro padrão
boolean
. Valor padrão: false
.
Quando isso for verdadeiro, essa tarefa falhará se algum erro for gravado no pipeline de erros ou se algum dado for gravado no fluxo de erros padrão.
azurePowerShellVersion
-
versão do Azure PowerShell
Alias de entrada: TargetAzurePs
.
string
. Valores permitidos: LatestVersion
(versão mais recente instalada), OtherVersion
(especificar outra versão). Valor padrão: OtherVersion
.
No caso de agentes hospedados, as versões do Azure PowerShell com suporte são 1.0.0
, 1.6.0
, 2.3.2
, 2.6.0
e 3.1.0
(Fila VS2017 hospedada).
Para escolher a versão mais recente disponível no agente, selecione LatestVersion
(versão mais recente instalada).
Para agentes privados, você pode especificar uma versão preferencial do Azure PowerShell usando OtherVersion
(especifique outra versão).
preferredAzurePowerShellVersion
-
versão preferencial do Azure PowerShell
Alias de entrada: CustomTargetAzurePs
.
string
. Necessário quando TargetAzurePs = OtherVersion
.
A versão preferencial do Azure PowerShell precisa ser uma versão semântica adequada, por exemplo.
1.2.3
. Não há suporte para Regex como 2.\*,2.3.\*
. Atualmente, o Pool vs2017 hospedado dá suporte às versões do módulo Az 1.0.0
, 1.6.0
, 2.3.2
, 2.6.0
e 3.1.0
.
pwsh
-
usar o PowerShell Core
boolean
. Valor padrão: false
.
Se isso for verdadeiro, as tarefas em execução em agentes do Windows usarão pwsh.exe
do seu caminho em vez de powershell.exe
.
validateScriptSignature
-
Validar de assinatura de script
boolean
. Opcional. Use quando ScriptType = FilePath
. Valor padrão: false
.
Se isso for verdadeiro, a tarefa primeiro verificará se o script especificado está assinado e válido antes de executá-lo.
do Diretório de Trabalho do workingDirectory
-
string
.
O diretório de trabalho em que o script é executado.
Opções de controle de tarefa
Todas as tarefas têm opções de controle além das suas entradas de tarefas. Para obter mais informações, consulte as opções de Controle de e as propriedades comuns da tarefa.
Variáveis de saída
Nenhum.
Observações
Resolução de problemas
O script funcionou localmente, mas falhou no pipeline
Isso normalmente ocorre quando a conexão de serviço usada no pipeline não tem permissões suficientes para executar o script. Localmente, o script é executado com suas credenciais e teria êxito, pois você pode ter o acesso necessário.
Para resolver esse problema, verifique se as credenciais de autenticação/princípio de serviço têm as permissões necessárias. Para obter mais informações, confira Usar o controle de acesso baseado em função para gerenciar o acesso aos recursos da sua assinatura do Azure.
Erro: não foi possível localizar os módulos: '<nome do módulo>' com Versão: '<versão>'. Se o módulo tiver sido instalado recentemente, tente novamente após reiniciar o agente de tarefa do Azure Pipelines
A tarefa do Azure PowerShell usa o Módulo Azure/AzureRM/Az PowerShell para interagir com a Assinatura do Azure. Esse problema ocorre quando o módulo do PowerShell não está disponível no Agente Hospedado. Portanto, para uma versão de tarefa específica, versão preferencial do Azure PowerShell deve ser especificada nas opções de versão do Azure PowerShell na lista de versões disponíveis. O software instalado pode ser encontrado na tabela Software em agentes hospedados pela Microsoft.
Problemas de conexão de serviço
Para solucionar problemas relacionados a conexões de serviço, consulte de solução de problemas de Conexão de Serviço.
Exemplos
O exemplo a seguir mostra como invocar um script de um arquivo e passar argumentos de script para ele.
- 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
Os argumentos a seguir mostram como invocar um script embutido.
- 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!'
Requisitos
Requisito | Descrição |
---|---|
Tipos de pipeline | YAML, build clássico, versão clássica |
Execuções em | Agent, DeploymentGroup |
de demandas | Nenhum |
recursos | Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho. |
restrições de comando | Qualquer |
variáveis settable | Qualquer |
Versão do agente | 2.115.0 ou superior |
Categoria de tarefa | Implantar |