AzurePowerShell@5 - v5 タスクのAzure PowerShell

このタスクを使用して、Azure 環境内で PowerShell スクリプトを実行します。 Azure コンテキストは、指定された Azure Resource Manager サービス接続で認証されます。

注意

既定では、Azure PowerShell v5 では Linux エージェント用の PowerShell Core と Windows エージェント用のWindows PowerShellが使用されます。 Windows エージェントで最新バージョンの PowerShell を使用するには、 パラメーターを pwshtrue設定します。 その後、代わりに PowerShell Core が使用されます。

構文

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

入力

azureSubscription - Azure サブスクリプション
入力エイリアス: ConnectedServiceNameARMstring. 必須です。

PowerShell を実行する前に構成する Azure Resource Manager サブスクリプション。


ScriptType - スクリプトの種類
string. 使用できる値: FilePath (スクリプト ファイル パス) InlineScript 、(インライン スクリプト)。 既定値: FilePath

スクリプトの種類: ファイル パスまたはインライン。


ScriptPath - スクリプト パス
string. 省略可能。 の場合は ScriptType = FilePathを使用します。

スクリプトのパス。 これは、完全修飾パス、または既定の作業ディレクトリに対する相対パスである必要があります。


Inline - インライン スクリプト
string. 省略可能。 の場合は ScriptType = InlineScriptを使用します。 既定値: # You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments

実行するスクリプトを指定します。 サポートされているインライン スクリプトの最大長は 5,000 文字です。 より長いスクリプトを使用する場合は、ファイルのスクリプトを使用します。


ScriptArguments - スクリプト引数
string. 省略可能。 の場合は ScriptType = FilePathを使用します。

PowerShell に渡す追加のパラメーター。 これらは、序数パラメーターまたは名前付きパラメーターのいずれかです。 インライン スクリプト オプションには適用されません。


errorActionPreference - ErrorActionPreference
string. 許可値: stopcontinuesilentlyContinue。 既定値: stop

スクリプトを実行するための変数の ErrorActionPreference 値を選択します。


FailOnStandardError - 標準エラー時に失敗する
boolean. 既定値: false

これが true の場合、エラーがエラー パイプラインに書き込まれた場合、または標準エラー ストリームにデータが書き込まれた場合、このタスクは失敗します。


azurePowerShellVersion - Azure PowerShell バージョン
入力エイリアス: TargetAzurePsstring. 使用できる値: LatestVersion (インストールされている最新バージョン) OtherVersion 、(他のバージョンを指定します)。 既定値: OtherVersion

ホストされているエージェントの場合、サポートされているAzure PowerShellバージョンは1.0.0、、1.6.02.3.22.6.0、および 3.1.0 (ホストされた VS2017 キュー) です。 エージェントで使用可能な最新バージョンを選択するには、[(インストールされている最新バージョン)] を選択 LatestVersion します。

プライベート エージェントの場合は、(他のバージョンを指定する) を使用して、Azure PowerShellの優先バージョンをOtherVersion指定できます。


preferredAzurePowerShellVersion - 優先Azure PowerShellバージョン
入力エイリアス: CustomTargetAzurePsstring. TargetAzurePs = OtherVersion の場合に必要です。

推奨されるAzure PowerShellバージョンは、適切なセマンティックバージョンである必要があります。 1.2.3. のような 2.\*,2.3.\* 正規表現はサポートされていません。 現在、ホストされている VS2017 プールでは、Az モジュール の1.0.0バージョン 、、2.3.21.6.02.6.0、および 3.1.0がサポートされています。


pwsh - PowerShell Core を使用する
boolean. 既定値: false

これが true の場合、Windows エージェントで実行されているタスクでは、 ではなくpowershell.exeパスから が使用pwsh.exeされます。


validateScriptSignature - スクリプト署名を検証する
boolean. 省略可能。 の場合は ScriptType = FilePathを使用します。 既定値: false

これが true の場合、タスクは最初にチェックして、指定したスクリプトが署名され、実行前に有効であることを確認します。


workingDirectory - 作業ディレクトリ
string.

スクリプトが実行される作業ディレクトリ。


タスク制御オプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。

出力変数

[なし] :

解説

トラブルシューティング

スクリプトはローカルで動作しましたが、パイプラインで失敗しました

これは通常、パイプラインで使用されるサービス接続にスクリプトを実行するためのアクセス許可が不十分な場合に発生します。 ローカルでは、スクリプトは資格情報を使用して実行され、必要なアクセス権を持っている可能性があるため、成功します。

この問題を解決するには、サービスプリンシパル/認証資格情報に必要なアクセス許可があることを確認します。 詳細については、「Role-Based Access Controlを使用して Azure サブスクリプション リソースへのアクセスを管理する」を参照してください。

エラー: 'module name>' と Version: '<version>' のモジュールが<見つかりませんでした。 モジュールが最近インストールされた場合は、Azure Pipelines タスク エージェントを再起動した後に再試行します

Azure PowerShell タスクでは、Azure/AzureRM/Az PowerShell モジュールを使用して Azure サブスクリプションと対話します。 この問題は、PowerShell モジュールがホステッド エージェントで使用できない場合に発生します。 そのため、特定のタスク バージョンの場合は、使用可能なバージョンの一覧のAzure PowerShellバージョン オプションで優先Azure PowerShellバージョンを指定する必要があります。 インストールされているソフトウェアは、Microsoft ホスト型エージェントソフトウェア テーブルにあります。

サービス接続の問題

サービス接続に関連する問題のトラブルシューティングについては、「 サービス接続のトラブルシューティング」を参照してください。

次の例は、ファイルからスクリプトを呼び出し、それにスクリプト引数を渡す方法を示しています。

- 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

次の引数は、インライン スクリプトを呼び出す方法を示しています。

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

要件

要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
実行日 エージェント、DeploymentGroup
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 2.115.0 以上
タスクのカテゴリ 配置