次の方法で共有


AzurePowerShell@5 - Azure PowerShell v5 タスク

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

既定では、Azure PowerShell v5 では Linux エージェント用の PowerShell Core と Windows エージェント用の Windows PowerShell が使用されます。 Windows エージェントで最新バージョンの PowerShell を使用するには、pwsh パラメーターを trueに設定します。 代わりに 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.

入力

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

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

テンプレート式を使用して、サービス接続の入力を指定できます。 次の例では、azureSubscription は書式指定文字列と、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 - スクリプトの種類
string. 使用できる値: FilePath (スクリプト ファイル パス)、InlineScript (インライン スクリプト)。 既定値: FilePath.

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


ScriptPath - スクリプト パスの
string. 任意 ScriptType = FilePathするときに使用します。

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


インライン スクリプト の
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.01.6.02.3.22.6.0、および 3.1.0 (ホストされた VS2017 キュー) です。 エージェントで使用可能な最新バージョンを選択するには、LatestVersion (インストールされている最新バージョン) を選択します。

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


推奨される Azure PowerShell バージョンpreferredAzurePowerShellVersion - する
入力エイリアス: CustomTargetAzurePsstring. TargetAzurePs = OtherVersionする場合に必要です。

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


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

これが当てはまる場合、Windows エージェントで実行されているタスクは、pwsh.exeの代わりにパスから powershell.exe を使用します。


validateScriptSignature - スクリプト署名の検証
boolean. 任意 ScriptType = FilePathするときに使用します。 既定値: false.

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


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

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


タスク コントロールのオプション

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

出力変数

なし。

注釈

トラブルシューティング

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

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

この問題を解決するには、サービスプリンシパル/認証資格情報に必要なアクセス許可があることを確認します。 詳細については、ロールベースのアクセス制御を使った Azure サブスクリプション リソースへのアクセスの管理に関する記事を参照してください。

エラー: '<モジュール名>' とバージョン: '<バージョン>' が見つかりませんでした。 モジュールが最近インストールされた場合は、Azure Pipelines タスク エージェントを再起動した後に再試行してください

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

サービス接続の問題

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

例示

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

- 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
の需要 なし
機能の このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 どれでも
設定可能な変数 どれでも
エージェントのバージョン 2.115.0 以上
タスク カテゴリ 展開