Azure Pipelines タスク - Azure Database for PostgreSQL - フレキシブル サーバー
適用対象: Azure Database for PostgreSQL - フレキシブル サーバー
Azure Pipelines を使用すると、ビルドが成功するたびに、データベース更新プログラムを Azure Database for PostgreSQL フレキシブル サーバーに自動的にデプロイできます。 Azure CLI タスクを使用すれば、データベースに対して SQL ファイルまたはインライン SQL スクリプトのいずれかを使用してデータベースを更新できます。 このタスクは、Linux、macOS、または Windows オペレーティング システムで実行されているクロスプラットフォーム エージェント上で実行できます。
前提条件
- Azure アカウント。 所有していない場合は、無料試用版を入手してください。
- お使いの Azure アカウントへの Azure Resource Manager サービス接続。
- Microsoft ホステッド エージェントには Azure CLI が事前にインストールされています。 ただし、プライベート エージェントを使用する場合は、ビルドおよびリリースのエージェントを実行するコンピューターに Azure CLI をインストールします。 Azure CLI がインストールされているマシンでエージェントが既に実行中の場合は、関連するすべてのステージ変数が確実に更新されるように、エージェントを再起動します。
- Azure Database for PostgreSQL - フレキシブル サーバー インスタンスを作成します。
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 エージェントで実行する場合は、batch 、ps 、pscore のいずれかを選択します。 |
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 のタスクで問題が発生する場合は、ビルドとリリースのトラブルシューティングを行う方法に関するページを参照してください。