Azure Pipelines 工作 - 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器
適用於:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器
您可以使用 Azure Pipelines 每次成功建置之後,自動將資料庫更新部署到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器。 您可以使用 Azure CLI 工作,以 SQL 檔案或針對資料庫使用內嵌 SQL 腳本來更新資料庫。 這項工作可以在Linux、macOS或 Windows 作業系統上執行的跨平臺代理程式上執行。
必要條件
- Azure 帳戶。 如果您沒有訂用帳戶, 請取得免費試用。
- Azure Resource Manager 服務連線 到您的 Azure 帳戶
- Microsoft 裝載的代理程式已預安裝 Azure CLI。 不過,如果您使用私人代理程式, 請在執行組建和發行代理程式的計算機上安裝 Azure CLI 。 如果代理程式已在安裝 Azure CLI 的電腦上執行,請重新啟動代理程式,以確保更新所有相關階段變數。
- 使用 Azure 入口網站 或 Azure CLI 建立 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例
使用 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 腳本
下列範例說明如何使用 命令執行內嵌 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
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 CLI 工作搭配 Azure Pipelines 時,您可以看到所有工作輸入的完整清單。
參數 | 描述 |
---|---|
azureSubscription | (必要)提供部署的 Azure Resource Manager 訂用帳戶。 只有當選取的工作版本是 0.* 時,才會顯示此參數,因為 Azure CLI 工作 v1.0 僅支援 Azure Resource Manager 訂用帳戶。 |
scriptType | (必要)提供腳本的類型。 支援的腳本包括 PowerShell、PowerShell Core、Bat、Shell 和腳本。 在 Linux 代理程式上執行時,請選擇下列其中一項:bash 或 pscore 。 執行 Windows 代理程式時,請選擇下列其中一項: batch 、ps 和 pscore 。 |
scriptLocation | (必要)提供腳本的路徑,例如實際檔案路徑,或在內嵌提供腳本時使用 Inline script 。 預設值是 scriptPath 。 |
scriptPath | (必要)腳本的完整路徑(.ps1 或 .bat 或 .cmd 在使用 Windows 型代理程式,或使用.ps1 .sh 以 Linux 為基礎的代理程式時)或相對於預設工作目錄的路徑。 |
inlineScript | (必要)您可以在這裏內嵌撰寫文稿。 使用 Windows 代理程式時,請使用 PowerShell 或 PowerShell Core 或批次腳本,而在使用以 Linux 為基礎的代理程式時,則使用 PowerShell Core 或殼層腳本。 對於批處理檔,請在每個 Azure 命令之前,使用前置詞「呼叫」。 您也可以使用自變數,將預先定義的和自定義變數傳遞至此腳本。 PowerShell/PowerShellCore/shell 的範例: 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 端點服務主體識別碼和金鑰新增至腳本的執行環境。 您可以使用下列變數: $env:servicePrincipalId、$env:servicePrincipalKey 和腳本中的 $env:tenantId 。 只有在 Azure 端點具有服務主體驗證配置時,才會接受這項作業。 預設值為 false。 |
useGlobalConfig | (選擇性)如果這是 false,此工作將會使用自己的個別 Azure CLI 組態目錄。 這可用來以平行版本執行 Azure CLI 工作」 預設值:false |
workingDirectory | (選擇性)執行文稿的目前工作目錄。 空白是存放庫 (build) 或成品 (release) 的根目錄,也就是 $(System.DefaultWorkingDirectory)。 |
failOnStandardError | (選擇性)如果這是 true,當任何錯誤寫入 StandardError 數據流時,此工作將會失敗。 取消選取複選框以忽略標準錯誤,並依賴結束代碼來判斷狀態。 預設值為 false。 |
powerShellIgnoreLASTEXITCODE | (選擇性)如果這是 false,則會將這一行 if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } 附加至腳本的結尾。 這會導致外部命令的最後一個結束代碼傳播為 PowerShell 的結束代碼。 否則,此行不會附加至腳本的結尾。 預設值為 false。 |
CLI 工作發生問題,請參閱 如何針對組建和發行進行疑難解答。
下一步
以下是一些可用來與 Azure Pipelines 一起部署的相關工作。