使用azure cli捕获错误消息从keyvault删除和清除

问题描述

我在devops中使用AzureCLI @ 2执行(通过Powershell)cli命令以首先删除然后清除。

如果您从密钥库中删除证书,则在其完全删除之前无法清除它。

CLI的错误处理很麻烦(您不能使用try / catch(请参阅https://rajbos.github.io/blog/2019/07/12/Azure-CLI-PowerShell

当该物品仍在删除时会产生错误消息,而在清除该物品时也会产生错误消息。

我需要知道这两种情况之间的区别。知道我如何才能真正收到错误消息吗?

解决方法

如果azure cli命令失败,则可以在任务AzureCLI @ 2的日志中找到错误消息。通过它不输出到任务日志中的错误流。请参见下面的屏幕截图。

enter image description here

您可以将属性failOnStandardError设置为true。错误将被输出到日志中的错误流。

正如您提到的博客所指出的,try/catch不适用于azure cli,因为azure cli命令不是为Powershell设计的。您还可以将错误消息写入错误流,以指示实际错误消息在日志中的位置:请参见以下内容:

$output = az keyvault key delete --name keyName --vault-name .. 
if(!$output){
   Write-Host "[Error] Error in deleting key keyName"
}