Как избавиться от сообщения об ошибке в Powershell при перечислении более 5000 больших двоичных объектов с помощью Azure CLI?

#azure #powershell #command-line-interface #azure-blob-storage

#azure #powershell #интерфейс командной строки #azure-blob-хранилище

Вопрос:

Для сценария очистки некоторых ( 10 тыс.) больших двоичных объектов в контейнере в учетной записи хранилища Azure мы сначала выбираем все большие двоичные объекты и подсчитываем их с помощью следующей команды:

  (az storage blob list --num-results * --account-name "ourstorageaccount" --container-name "ourcontainer" --query "[*].name").Length
  

Мы специально добавили —num-results, чтобы убедиться, что возвращается более 5000 больших двоичных объектов, но все равно мы видим следующую ошибку в powershell:

 az : WARNING: Next Marker:
At line:1 char:2
  (az storage blob list --num-results * --account-name "ourstorageaccount" - ...
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      CategoryInfo          : NotSpecified: (WARNING: Next Marker::String) [], RemoteException
      FullyQualifiedErrorId : NativeCommandError

WARNING: 2!152!MDAwMDY5IUZQLVBTUUwtMjAxNi0wMSRQUk9EX0lkZW50aXR5U2VydmVyNFBlcnNpc3RlZF9MT0dfMjAxOTA0MDhybiEwMDAwMjghOTk5OS0xMi0zMVQyMzo1OTo1OS45OTk5OTk5WiE-
  

Результат команды правильный, но ошибка создает впечатление, что что-то пошло не так.
Мы хотели бы подавить сообщение или адаптировать команду таким образом, чтобы ошибка не отображалась.

Версия Azure CLI:

 azure-cli                         2.0.62

acr                                2.2.4
acs                               2.3.21
advisor                            2.0.0
ams                                0.4.4
appservice                        0.2.17
backup                             1.2.3
batch                              4.0.0
batchai                            0.4.8
billing                            0.2.1
botservice                        0.1.10
cdn                                0.2.2
cloud                              2.1.1
cognitiveservices                  0.2.5
command-modules-nspkg               2.0.2
configure                         2.0.21
consumption                        0.4.2
container                         0.3.16
core                              2.0.62
cosmosdb                           0.2.9
dla                                0.2.5
dls                                0.1.8
dms                                0.1.3
eventgrid                          0.2.2
eventhubs                          0.3.4
extension                          0.2.5
feedback                           2.2.0
find                               0.3.2
hdinsight                          0.3.3
interactive                        0.4.3
iot                                0.3.7
iotcentral                         0.1.6
keyvault                          2.2.14
kusto                              0.2.2
lab                                0.1.6
maps                               0.3.4
monitor                           0.2.12
network                            2.3.6
nspkg                              3.0.3
policyinsights                     0.1.2
privatedns                         1.0.0
profile                            2.1.5
rdbms                              0.3.9
redis                              0.4.2
relay                              0.1.4
reservations                       0.4.2
resource                          2.1.13
role                               2.5.0
search                             0.1.1
security                           0.1.1
servicebus                         0.3.4
servicefabric                     0.1.16
signalr                            1.0.0
sql                                2.2.1
sqlvm                              0.1.1
storage                            2.4.0
telemetry                          1.0.2
vm                                2.2.18
  

Ответ №1:

Вы должны добавить -ErrorAction SilentlyContinue флаг, который игнорирует ошибки, отображаемые в результате выполнения команды. Дайте мне знать, если это сработает.

Ответ №2:

Разве более раннее решение не было бы для PowerShell? Вопрос касается AzureCLI, поэтому для подавления сообщения об ошибке единственный известный мне способ — перенаправить stderr в /dev/null, добавив 2> /dev/null в конец команды.