Запуск выделенных виртуальных машин (3-6) с помощью Azure Cli занимает около получаса. - PullRequest
0 голосов
/ 31 октября 2019

Я написал сценарий оболочки, который содержит команду azure cli и хочу запустить освобожденные виртуальные машины, идентифицируемые по их тегу. Машины запускаются через короткое время (около 1-2 минут), но команда продолжает работать и завершается примерно через полчаса.

Команда выглядит следующим образом:

az vm start \
  --ids $(az resource list \
  --tag "environment=$env" \
  --query "[?type=='Microsoft.Compute/virtualMachines'].id" \
  -o tsv)

, когда вВ режиме отладки я вижу, что этот блок повторяется во всех случаях:

00:00:27.352  DEBUG: urllib3.connectionpool : https://management.azure.com:443 "GET /subscriptions/****/providers/Microsoft.Compute/locations/westeurope/operations/hduske73-sg43-156df-afg4-4jefasfgs?api-version=2019-03-01 HTTP/1.1" 200 None
00:00:27.352  DEBUG: msrest.http_logger : Response status: 200
00:00:27.352  DEBUG: msrest.http_logger : Response headers:
00:00:27.352  DEBUG: msrest.http_logger :     'Cache-Control': 'no-cache'
00:00:27.352  DEBUG: msrest.http_logger :     'Pragma': 'no-cache'
00:00:27.352  DEBUG: msrest.http_logger :     'Transfer-Encoding': 'chunked'
00:00:27.352  DEBUG: msrest.http_logger :     'Content-Type': 'application/json; charset=utf-8'
00:00:27.352  DEBUG: msrest.http_logger :     'Content-Encoding': 'gzip'
00:00:27.352  DEBUG: msrest.http_logger :     'Expires': '-1'
00:00:27.352  DEBUG: msrest.http_logger :     'Retry-After': '9'
00:00:27.352  DEBUG: msrest.http_logger :     'Vary': 'Accept-Encoding'
00:00:27.352  DEBUG: msrest.http_logger :     'x-ms-ratelimit-remaining-resource': 'Microsoft.Compute/GetOperation3Min;14997,Microsoft.Compute/GetOperation30Min;29997'
00:00:27.352  DEBUG: msrest.http_logger :     'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
00:00:27.352  DEBUG: msrest.http_logger :     'x-ms-request-id': '3876g8d-h383-d8eh-h482-dhu372dfg'
00:00:27.352  DEBUG: msrest.http_logger :     'Server': 'Microsoft-HTTPAPI/2.0, Microsoft-HTTPAPI/2.0'
00:00:27.352  DEBUG: msrest.http_logger :     'x-ms-ratelimit-remaining-subscription-reads': '11938'
00:00:27.352  DEBUG: msrest.http_logger :     'x-ms-correlation-request-id': 'dh3819874-4fb4i3-1435-5215-behxb3819'
00:00:27.352  DEBUG: msrest.http_logger :     'x-ms-routing-request-id': 'GERMANYNORTH:20191031T091214Z:dh3819874-4fb4i3-1435-5215-behxb3819'
00:00:27.352  DEBUG: msrest.http_logger :     'X-Content-Type-Options': 'nosniff'
00:00:27.352  DEBUG: msrest.http_logger :     'Date': 'Thu, 31 Oct 2019 09:12:13 GMT'
00:00:27.352  DEBUG: msrest.http_logger : Response content:
00:00:27.352  DEBUG: msrest.http_logger : {
00:00:27.352    "startTime": "2019-10-31T09:12:02.7728761+00:00",
00:00:27.352    "status": "InProgress",
00:00:27.352    "name": "efu2728392-38f9-2a24-24d2-c214152g1245"
00:00:27.352  }

Может кто-нибудь помочь мне найти проблему?

1 Ответ

0 голосов
/ 01 ноября 2019

Я также сталкиваюсь с тем, что виртуальные машины запускаются в течение короткого времени, но команда продолжает работать в течение длительного времени с помощью Azure-Cli 2.0.75. Кажется, что команда предназначена для того, чтобы просто циклически проходить по массиву идентификаторов, а не идти параллельно.

MSFT имеет пояснения по этому поводу здесь .

спроектируйте прямо сейчас, так как основной слой просто зацикливается на массиве id и вызывает одну и ту же команду один за другим. Договорились, мы должны улучшить это, идя параллельно. Вызов REST связан с io, поэтому параллельное выполнение команд будет намного быстрее.

...