脚本,使用azure devops中的azure powershell内联任务获取azure功能键并将其放入keyvault中

问题描述 投票:0回答:1

我已经在Azure DevOps中的3.1.0版本的Azure内联脚本任务中运行了以下命令。

$accountInfo = az account show

$accountInfoObject = $accountInfo | ConvertFrom-Json

$subscriptionId  = $accountInfoObject.id

$resourceGroup = "BZE1ERG01"

$functionName = "BAZE1EFA01"

$functionkeylist = az rest --method post --uri "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.Web/sites/$functionName/host/default/listKeys?api-version=2018-11-01"

$keylistobject = $functionkeylist | ConvertFrom-Json
$functionKey = $keylistobject.functionKeys.default    

$tmpSecret1 = ConvertTo-SecureString $functionKey -AsPlainText -Force

Set-AzKeyVaultSecret -VaultName 'azu-qa-keyvault' -Name functionkeysecret -SecretValue $tmpSecret1

DevOps屏幕截图

enter image description here

我遇到错误

enter image description here

azure-devops azure-functions continuous-deployment azure-powershell paas
1个回答
0
投票

您得到此消息是因为看起来您使用az cli进行的呼叫未通过身份验证。跟随docs

使用此任务可以在Azure环境中运行PowerShell脚本。使用提供的Azure资源对Azure上下文进行身份验证管理员服务连接。

[您应该使用普通的PowerShell Az模块,或者,如果您想使用az li,请考虑使用Azure CLI task,它将自动处理。您可以使用az keyvault secret set在KeyVault中创建/更新机密。请查看documentation了解更多详细信息。当然,所有powershell代码在此任务中都是有效的。

[似乎其中一个的身份验证不适用于另一个。您也可以使用以下语法从任务中登录az cli:

az login --service-principal --username <app-id> --password <password> --tenant <tenant-id>
© www.soinside.com 2019 - 2024. All rights reserved.