AzureCLI@2 - Azure CLI v2 タスク

Linux エージェントで実行する場合は、PowerShell Core/shell スクリプトで Azure サブスクリプションに対して Azure CLI コマンドを実行します。 または、Windows エージェントで実行するときに、PowerShell/PowerShell Core/batch スクリプトで Azure サブスクリプションに対して Azure CLI コマンドを実行します。

Linux エージェントで実行する場合は、PowerShell Core/shell スクリプトで Azure サブスクリプションに対して Azure CLI コマンドを実行します。 または、Windows エージェントで実行するときに、PowerShell/Powershell Core/batch スクリプトで Azure サブスクリプションに対して Azure CLI コマンドを実行します。

構文

# Azure CLI v2
# Run Azure CLI commands against an Azure subscription in a PowerShell Core/Shell script when running on Linux agent or PowerShell/PowerShell Core/Batch script when running on Windows agent.
- task: AzureCLI@2
  inputs:
    azureSubscription: # string. Alias: connectedServiceNameARM. Required. Azure Resource Manager connection. 
    scriptType: # 'ps' | 'pscore' | 'batch' | 'bash'. Required. Script Type. 
    scriptLocation: 'scriptPath' # 'inlineScript' | 'scriptPath'. Required. Script Location. Default: scriptPath.
    scriptPath: # string. Required when scriptLocation = scriptPath. Script Path. 
    #inlineScript: # string. Required when scriptLocation = inlineScript. Inline Script. 
    #arguments: # string. Alias: scriptArguments. Script Arguments. 
    #powerShellErrorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. Optional. Use when scriptType = ps || scriptType = pscore. ErrorActionPreference. Default: stop.
  # Advanced
    #addSpnToEnvironment: false # boolean. Access service principal details in script. Default: false.
    #useGlobalConfig: false # boolean. Use global Azure CLI configuration. Default: false.
    #workingDirectory: # string. Alias: cwd. Working Directory. 
    #failOnStandardError: false # boolean. Fail on Standard Error. Default: false.
    #powerShellIgnoreLASTEXITCODE: false # boolean. Optional. Use when scriptType = ps || scriptType = pscore. Ignore $LASTEXITCODE. Default: false.
# Azure CLI v2
# Run Azure CLI commands against an Azure subscription in a PowerShell Core/Shell script when running on Linux agent or PowerShell/Powershell Core/Batch script when running on Windows agent.
- task: AzureCLI@2
  inputs:
    azureSubscription: # string. Alias: connectedServiceNameARM. Required. Azure Resource Manager connection. 
    scriptType: # 'ps' | 'pscore' | 'batch' | 'bash'. Required. Script Type. 
    scriptLocation: 'scriptPath' # 'inlineScript' | 'scriptPath'. Required. Script Location. Default: scriptPath.
    scriptPath: # string. Required when scriptLocation = scriptPath. Script Path. 
    #inlineScript: # string. Required when scriptLocation = inlineScript. Inline Script. 
    #arguments: # string. Alias: scriptArguments. Script Arguments. 
    #powerShellErrorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. Optional. Use when scriptType = ps || scriptType = pscore. ErrorActionPreference. Default: stop.
  # Advanced
    #addSpnToEnvironment: false # boolean. Access service principal details in script. Default: false.
    #useGlobalConfig: false # boolean. Use global Azure CLI configuration. Default: false.
    #workingDirectory: # string. Alias: cwd. Working Directory. 
    #failOnStandardError: false # boolean. Fail on Standard Error. Default: false.
    #powerShellIgnoreLASTEXITCODE: false # boolean. Optional. Use when scriptType = ps || scriptType = pscore. Ignore $LASTEXITCODE. Default: false.

入力

azureSubscription - Azure Resource Manager接続
入力エイリアス: connectedServiceNameARMstring. 必須です。

デプロイ用の Azure Resource Manager サービス接続を選択します。


scriptType - スクリプトの種類
string. 必須です。 使用できる値: ps (PowerShell)、 pscore (PowerShell Core)、 batch、、 bash (シェル)。

スクリプトの種類。 Linux エージェントで実行する場合は bash 、 または pscore スクリプトを選択します。 または、Windows エージェントで batch実行するときに、、 ps、または pscore スクリプトを選択します。 スクリプトは pscore 、クロスプラットフォーム エージェント (Linux、macOS、または Windows) で実行できます。


scriptType - スクリプトの種類
string. 必須です。 使用できる値: ps (Powershell)、 pscore (Powershell Core)、 batchbash (シェル)。

スクリプトの種類。 Linux エージェントで実行する場合は bash 、 または pscore スクリプトを選択します。 または、Windows エージェントで batch実行するときに、、 ps、または pscore スクリプトを選択します。 スクリプトは pscore 、クロスプラットフォーム エージェント (Linux、macOS、または Windows) で実行できます。


scriptLocation - スクリプトの場所
string. 必須です。 使用できる値: inlineScript (インライン スクリプト)、 scriptPath (スクリプト パス)。 既定値: scriptPath

スクリプトへのパス。


scriptPath - スクリプト パス
string. scriptLocation = scriptPath の場合に必要です。

スクリプトの完全修飾パス。 .ps1.batWindows ベースのエージェントを使用する場合は、または .cmd を使用します。 Linux ベースのエージェントまたは既定の作業ディレクトリに対する相対パスを使用する場合は、 または .sh を使用.ps1します。


inlineScript - インライン スクリプト
string. scriptLocation = inlineScript の場合に必要です。

スクリプトはインラインで記述できます。 Windows エージェントを使用する場合は、PowerShell、PowerShell Core、またはバッチ スクリプトを使用します。 Linux ベースのエージェントを使用する場合は、PowerShell Core またはシェル スクリプトを使用します。 バッチ ファイルの場合は、すべての Azure コマンドの前にプレフィックス call を使用します。 引数を使用して、このスクリプトに定義済み変数とカスタム変数を渡すこともできます。

PowerShell/PowerShellCore/shell の例を次に示します。

az --version 
az account show 

バッチの例を次に示します。

call  az --version 
call az account show

arguments - スクリプト引数
入力エイリアス: scriptArgumentsstring.

スクリプトに渡される引数。


powerShellErrorActionPreference - ErrorActionPreference
string. 省略可能。 の場合は scriptType = ps || scriptType = pscoreを使用します。 許可値: stopcontinuesilentlyContinue。 既定値: stop

PowerShell/PowerShell Core スクリプトの先頭に行 $ErrorActionPreference = 'VALUE' を追加します。


addSpnToEnvironment - スクリプトでサービス プリンシパルの詳細にアクセスする
boolean. 既定値: false

スクリプトの実行環境に、選択した Azure エンドポイントのサービス プリンシパル ID、サービス プリンシパル キーまたはワークロード ID フェデレーション トークン、テナント ID を追加します。 スクリプトで 、servicePrincipalIdservicePrincipalKey、、idTokenおよび tenantId 変数を使用できます。

これは、Azure エンドポイントにサービス プリンシパル認証スキームまたはワークロード ID フェデレーション認証スキームがある場合にのみ適用されます。

次の一覧は、スクリプトの種類に基づいて環境変数にアクセスするための構文を示しています。

  • PowerShell スクリプトの構文: $env:servicePrincipalId

  • バッチ スクリプトの構文: %servicePrincipalId%

  • シェル スクリプトの構文: $servicePrincipalId


useGlobalConfig - グローバル Azure CLI 構成を使用する
boolean. 既定値: false

この入力が false の場合、このタスクでは独自の Azure CLI 構成ディレクトリが使用されます。 このタスクを使用して、Azure CLI タスクを 並列 リリースで実行します。


workingDirectory - 作業ディレクトリ
入力エイリアス: cwdstring.

スクリプトが実行される現在の作業ディレクトリ。 空白のままにした場合、この入力はリポジトリ (ビルド) または成果物 (リリース) のルート () になります $(System.DefaultWorkingDirectory)


failOnStandardError - 標準エラーで失敗する
boolean. 既定値: false

この入力が true の場合、エラーが StandardError ストリームに書き込まれると、このタスクは失敗します。 標準エラーを無視する場合はチェック ボックスをオフにし、代わりに終了コードを使用して状態を判断します。


powerShellIgnoreLASTEXITCODE - $LASTEXITCODEを無視する
boolean. 省略可能。 の場合は scriptType = ps || scriptType = pscoreを使用します。 既定値: false

この入力が false の場合、スクリプトの末尾に行 if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } が追加されます。 これにより、PowerShell の終了コードとして、外部コマンドから最後の終了コードが伝達されます。 それ以外の場合、行はスクリプトの末尾に追加されません。


タスク制御オプション

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

出力変数

[なし] :

解説

バージョン タスク バージョン 2.0 の新機能

  • PowerShell および PowerShell Core スクリプトのサポート。
  • PowerShell Core はクロスプラットフォーム エージェント (Linux、macOS、または Windows) で動作します。エージェントに PowerShell バージョン 6 以上があることを確認します。
  • PowerShell スクリプトは Windows エージェントでのみ動作し、エージェントに PowerShell バージョン 5 以下があることを確認します。

前提条件

  • Microsoft Azure サブスクリプションが必要です。
  • Azure アカウントへの Azure Resource Manager サービス接続
  • Microsoft ホステッド エージェントには Azure CLI が事前にインストールされています。 ただし、プライベート エージェントを使用する予定の場合は、ビルドおよびリリースのエージェントを実行するコンピューターに Azure CLI をインストールします。 Azure CLI がインストールされているマシンでエージェントが既に実行中の場合は、関連するすべてのステージ変数が確実に更新されるように、エージェントを再起動します。

次の例では、Azure CLI のバージョンを一覧表示し、サブスクリプションの詳細を取得します。

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptType: ps
    scriptLocation: inlineScript
    inlineScript: |
      az --version
      az account show

次の例は、スクリプトに引数を渡す方法を示しています。

  • インライン スクリプトに引数を渡す:

    - task: AzureCLI@2
      inputs:
        azureSubscription: <Azure_Resource_Manager_Service_Connection>
        scriptType: 'ps'
        scriptLocation: 'inlineScript'
        arguments: '$(AZURE_STORAGE_ACCOUNT) $(AZURE_STORAGE_KEY)'
        inlineScript: './scripts/publish.ps1 $1 $2'
    
  • スクリプト パスを使用して引数を渡す:

    - task: AzureCLI@2
      inputs:
        azureSubscription: <Azure_Resource_Manager_Service_Connection>
        scriptType: 'ps'
        scriptLocation: 'scriptPath'
        arguments: '$(AZURE_STORAGE_ACCOUNT) $(AZURE_STORAGE_KEY)'
        scriptPath: './scripts/publish.ps1'
    

要件

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

こちらもご覧ください