Azure CLI 工作
Azure DevOps Services |Azure DevOps Server 2020 |Azure DevOps Server 2019
使用此工作可針對 Azure 訂用帳戶執行包含 Azure CLI 命令的 shell 或批次腳本。 這項工作是用來在 Linux、macOS 或 Windows 作業系統上執行的跨平臺代理程式上執行 Azure CLI 命令。
2.0 版的新功能
- 支援執行 PowerShell 和 PowerShell Core 腳本。
- PowerShell Core 腳本適用于 (Windows、Linux 或 OSX) 的 Xplat 代理程式,請確定代理程式具有 PowerShell 第6版或更高版本。
- powershell 腳本只適用于 Windows 代理程式,請確定代理程式具有 PowerShell 第5版或更低版本。
必要條件
Microsoft Azure 訂用帳戶。
azure Resource Manager 服務連接到您的 azure 帳戶。
Microsoft 裝載的代理程式已預先安裝 Azure CLI。 但是,如果您使用私人代理程式,請在執行組建和發行代理程式的電腦 (s) 上 安裝 Azure CLI 。 如果已在安裝 Azure CLI 的電腦上執行代理程式,請重新開機代理程式,以確保所有相關的階段變數都已更新。
工作輸入
參數 | 描述 |
---|---|
azureSubscription Azure 訂用帳戶 |
(Azure Resource Manager 服務連線所需的) 名稱 |
scriptType 指令碼類型 |
(需要) 的腳本類型: 如果您使用 Linux 代理程式,請選取下列其中一種類型:
|
scriptLocation 指令碼位置 |
(必要) 選擇 scriptPath 使用腳本檔案,或 inlineScript 如果您想要以內嵌方式撰寫腳本預設值: scriptPath |
scriptPath 腳本路徑 |
scriptLocation = scriptPath 必要時機。 腳本檔案的完整路徑,或相對於預設工作目錄的路徑 |
inlineScript 內嵌指令碼 |
scriptLocation = inlineScript 必要時機。 如果您想要以內嵌方式貼上腳本,請使用此選項。 使用以 Linux 為基礎的代理程式時,請使用適用于 Windows 代理程式和 bash 或 PowerShell Core 的 PowerShell、PowerShell Core 或批次腳本。 當您使用 batch 時,請使用每個 Azure 命令前面的 call 前置詞。 您也可以使用引數,將預先定義的自訂變數傳遞至腳本。 範例: PowerShell/PowerShellCore/shell: az--az 版帳戶顯示 batch:呼叫 az--版本呼叫 az account show |
arguments 指令碼引數 |
(傳遞給腳本的選擇性) 引數 |
powerShellErrorActionPreference ErrorActionPreference |
(選擇性) 在 PowerShell/PowerShell Core 腳本頂端前面加上行$ErrorActionPreference = ' VALUE ' 預設值:停止 選項為停止、繼續和 silentlyContinue |
addSpnToEnvironment 存取腳本中的服務主體詳細資料 |
(選擇性) 將您選擇的 Azure 端點的服務主體識別碼和金鑰新增至腳本的執行環境。 您可以在腳本中使用這些變數: $env: servicePrincipalId、$env: servicePrincipalKey 和 $env: tenantId 。 只有在 Azure 端點具有服務主體驗證配置時,才會接受這項功能 預設值: false |
useGlobalConfig 使用全域 Azure CLI 設定 |
(選擇性) 如果為 false,則此工作會使用自己的個別 Azure CLI 設定目錄。 這可以用來在 平行 發行版本中執行 Azure CLI 工作」 預設值: false |
workingDirectory 工作目錄 |
(選擇性) 執行腳本的目前工作目錄。 空的是存放庫的根目錄, (組建) 或構件 (版本) ,也就是 $ (System.defaultworkingdirectory) |
failOnStandardError 發生標準錯誤時失敗 |
(選擇性) 如果是 true,當任何錯誤寫入 StandardError 資料流程時,此工作將會失敗。 取消選取此核取方塊,以忽略標準錯誤並依賴結束代碼來判斷狀態 預設值: false |
powerShellIgnoreLASTEXITCODE 忽略 $LASTEXITCODE |
(選擇性) 如果為 false,則會將該行 if ((Test-Path -LiteralPath variable:\\LASTEXITCODE)) { exit $LASTEXITCODE } 附加至腳本的結尾。 這會導致外部命令的最後一個結束代碼傳播為 PowerShell 的結束代碼。 否則該行不會附加至腳本結尾預設值: false |
範例
以下是 YAML 程式碼片段的範例,其中會列出 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'
相關工作
開放原始碼
這項工作開放原始碼在 GitHub 上。 歡迎您提供意見反應和投稿。
常見問題集
是否需要代理程式?
您至少需要一個 代理程式 來執行您的組建或發行。
我遇到問題。 如何進行疑難排解?
請參閱 疑難排解組建和發行。
我無法選取預設的代理程式組件區,也無法將組建或發行排在佇列中。 我要如何修正此問題?
請參閱 代理程式集區。
我的 NuGet 推送工作失敗,發生下列錯誤:「錯誤:無法取得本機簽發者憑證」。 我該怎麼辦?
您可以藉由新增受信任的根憑證來修正此問題。 您可以將環境變數新增 NODE_EXTRA_CA_CERTS=file
至組建代理程式,也可以在管線中新增工作 NODE.EXTRA.CA.CERTS=file
變數。 如需此變數的詳細資訊,請參閱 Node.js 檔 。 如需在管線中設定變數的指示,請參閱在 管線中設定變數 。