Share via


Azure Pipelines タスク - Azure Database for PostgreSQL - フレキシブル サーバー

適用対象: Azure Database for PostgreSQL - フレキシブル サーバー

Azure Pipelines を使用してビルドが成功するたびに、データベースの更新を Azure Database for PostgreSQL フレキシブル サーバーに自動的にデプロイできます。 Azure CLI タスクを使用すれば、データベースに対して SQL ファイルまたはインライン SQL スクリプトのいずれかを使用してデータベースを更新できます。 このタスクは、Linux、macOS、または Windows オペレーティング システムで実行されているクロスプラットフォーム エージェント上で実行できます。

前提条件

SQL ファイルを使用する

次の例は、データベース引数を渡して execute コマンドを実行する方法を示しています

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptType: 'pscore'
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
    inlineScript: |
      az login --allow-no-subscription
      az postgres flexible-server execute --name $(SERVERNAME) \
      --admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
      --database-name $(DBNAME) --file-path /code/sql/db-schema-update.sql

インライン SQL スクリプトを使用する

次の例は、execute コマンドを使用してインライン SQL スクリプトを実行する方法を示しています。

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptType: 'pscore'
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
      -INLINESCRIPT 
    inlineScript: |
      az login --allow-no-subscription 
      az postgres flexible-server execute --name $(SERVERNAME) --admin-user $(DBUSER) \
      --admin-password '$(DBPASSWORD)'  --database-name $(DBNAME) \
      --querytext "UPDATE items SET items.retail = items.retail * 0.9 WHERE items.id =100;" 

タスク入力

Azure Pipelines で Azure CLI タスクを使用する際のすべてのタスク入力を示した完全な一覧を参照できます。

パラメーター 説明
azureSubscription (必須) デプロイのための Azure Resource Manager サブスクリプションを指定します。 Azure CLI タスク v1.0 でサポートされているのは Azure Resource Manager サブスクリプションのみであるため、このパラメーターは、選択したタスクのバージョンが 0.* の場合にのみ表示されます。
scriptType (必須) スクリプトの種類を指定します。 サポートされているスクリプトは、PowerShell、PowerShell Core、バッチ、シェル、スクリプトです。 Linux エージェントで実行する場合は、bash または pscore のいずれかを選びます。 Windows エージェントで実行する場合は、batchpspscore のいずれかを選択します。
scriptLocation (必須) 実際のファイル パスなど、スクリプトへのパスを指定します。または、スクリプトをインラインで指定するときには Inline script を使用します。 既定値は scriptPath です。
scriptPath (必須) スクリプトの完全修飾パス (Windows ベースのエージェントを使用する場合は .ps1、.bat、.cmd で、Linux ベースのエージェントを使用する場合は .ps1 または .sh )、または既定の作業ディレクトリに対する相対パス。
inlineScript (必須) ここでスクリプトをインラインで記述できます。 Windows エージェントを使用する場合は、PowerShell、PowerShell Core、またはバッチ スクリプトを使用します。一方、Linux ベースのエージェントを使用する場合は PowerShell Core またはシェル スクリプトを使用します。 バッチ ファイルの場合は、すべての Azure コマンドの前にプレフィックス "call" を使用します。 引数を使用して、定義済みの変数やカスタム変数をこのスクリプトに渡すこともできます。
PowerShell/PowerShellCore/シェルの場合の例: az --version az account show
バッチの場合の例: call az --version call az account show
引数 (省略可能) スクリプトに渡すすべての引数を指定します。 例: -SERVERNAME mydemoserver
powerShellErrorActionPreference (省略可能) PowerShell または PowerShell Core スクリプトの先頭に、$ErrorActionPreference = 'VALUE' という行を付加します。 既定値は stop です。 サポートされている値は、stop、continue、silentlyContinue です。
addSpnToEnvironment (省略可能) 選択した Azure エンドポイントのサービス プリンシパル ID とキーをスクリプトの実行環境に追加します。 スクリプトでは、変数 $env:servicePrincipalId、$env:servicePrincipalKey、$env:tenantId を使用できます。 これが有効なのは、Azure エンドポイントにサービス プリンシパル認証スキームがある場合のみです。 既定値は false です。
useGlobalConfig (省略可能) これが false の場合、このタスクでは独自の異なる Azure CLI 構成ディレクトリが使用されます。 これは、並列リリースで Azure CLI タスクを実行するために使用できます。
既定値: false
workingDirectory (省略可能) スクリプトが実行される現在の作業ディレクトリ。 未指定であればリポジトリ (ビルド) または成果物 (リリース) のルートであり、$(System.DefaultWorkingDirectory) です。
failOnStandardError (省略可能) これが true の場合、このタスクは、StandardError ストリームに何らかのエラーが書き込まれると失敗します。 標準的なエラーを無視し、終了コードに基づいて状態を決定するには、このチェック ボックスをオフにします。 既定値は false です。
powerShellIgnoreLASTEXITCODE (省略可能) これが false の場合、スクリプトの末尾に if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } という行が追加されます。 これにより、外部コマンドの最後の終了コードが、PowerShell の終了コードとして反映されます。 そうでなければ、この行はスクリプトの末尾に追加されません。 既定値は false です。

CLI のタスクで問題が発生する場合は、ビルドとリリースのトラブルシューティングを行う方法に関するページを参照してください。

次のステップ

Azure Pipelines でのデプロイに使用できる関連タスクをいくつか次に示します。