swi*_*czu 4 automation azure azure-devops azure-pipelines
我想在管道中添加“创建工作项”步骤。它应该是在管道发生故障时创建错误单。我在自己的虚拟机上运行管道,因此我必须登录 Azure 并且我想为其使用服务主体:
az login --service-principal -u <app-id> -p <password-or-cert> --tenant <tenant>
我相信这一步效果很好,因为我收到了回复(如下面的屏幕截图所示)。接下来,我执行命令来创建错误单:
az boards work-item create --organization https://dev.azure.com/my_org --project "Project" --type Bug --title "title" --description "desc" --output json --assigned-to ...
此时我不断收到错误:
"TF401444: Please sign-in at least once as: credentials/of/tenant in a web browser to enable access to the service".
我已经尝试使用我的帐户凭据进行登录
az login -u mail -p psw
它工作正常,并且创建了错误票证,但正如您可以猜到的那样,我不想继续使用我的登录凭据在管道中登录到 Azure。我还尝试使用 PAT 来实现,命令如下:
echo $(PAT) | az login
但这需要我连接到虚拟机才能登录我的帐户并通知一条消息:
WARNING: A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with az login --use-device-code.
记录后,还创建了错误票证,但我不想每次执行都执行此操作,因为管道应该是自动化的。
你知道我怎样才能摆脱这个错误吗?
或者您对更好的日志记录有什么建议吗?
我发现了一些解决方法:您可以使用 $(System.AccessToken) 在管道中使用“脚本”步骤登录,而不是使用 AzureCLI。
- script: az config set extension.use_dynamic_install=yes_without_prompt
displayName: 'Allow extensions'
- script: echo $(System.AccessToken) | az devops login
displayName: 'Login to DevOps'
- script: |
az boards work-item create --organization https://dev.azure.com/org --project "abc" --type Bug ...
displayName: 'Create a bug ticket'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4778 次 |
| 最近记录: |