![](/img/trans.png)
[英]How Can I Run/Execute Databricks notebook from azure DevOps pipeline
[英]How can I login azure on PowerShell that run on Azure DevOps
我有一個 PowerShell 文件,用於從我們的 Azure Key Vault 之一獲取秘密值供以后使用(使用服務主體登錄 Power BI)。 這是 DevOps 的截圖,
這是我的 PS 代碼,
Write-Output "Get Secret from AKV"
$secret = az keyvault secret show --vault-name PA01 --name <my key vault secret name> --output json
$x = $secret | ConvertFrom-Json
$azureAplicationId = "<my client id>"
$azureTenantId= "<my tenant id>"
Write-Output "Generate Credential"
$azurePassword = ConvertTo-SecureString $x.value -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($azureAplicationId , $azurePassword)
Write-Output "Login SP"
Connect-PowerBIServiceAccount -Tenant $azureTenantId -ServicePrincipal -Credential $psCred
我可以在 Cloud shell 上成功運行它,但在我的 Azure DevOps 管道上卻失敗了。 正如您在下面的屏幕截圖中看到的那樣,
我認為運行此命令時作業失敗:
$secret = az keyvault secret show --vault-name PA01 --name <my key vault secret name> --output json
因為雖然作業自動運行Connect-AzAccount命令,但登錄無效,據我所知,這就是為什么它說“錯誤:請運行 az login to setup account”(我猜是這樣),所以“az keyvault”命令無法運行。
是的,我可以在我的腳本中添加“az login --use-device-code”並通過手動輸入代碼成功運行,但問題是,
我不希望在登錄過程中有任何交互體驗,因為我希望這個工作是全自動和無人值守的。
那么,有什么解決辦法嗎? 對您的幫助深表感謝!
請檢查這些:
PowerShell 腳本僅適用於 Windows 代理,確保代理具有 PowerShell 版本 5 或更低版本。
解決方法
(或者)
通常Azure Cli 任務將使用az login進行身份驗證。 作為解決方法,請嘗試使用 Az CLI 任務和帶有服務連接名稱的 azureSubscription。 這包括針對 azure 訂閱的身份驗證作為其設置的一部分,因此你將能夠運行 az cli 命令。
- task: AzureCLI@2
displayName: Azure CLI
inputs:
azureSubscription: <Name of the Azure Resource service connection>
scriptType: ps
.....
此處還要檢查管道中使用的服務連接是否具有足夠的權限來運行腳本。為此確保服務原則/身份驗證憑據具有所需的權限。
嘗試將托管代理池上的 azure-cli 版本降級/升級到接近 2.0.64 或使用托管 VS2017 代理運行 az 命令
查看Azure PowerShell 任務 - Azure 管道 | 微軟文檔
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.