Устранение проблем с общими ресурсами

В этой статье обсуждаются проблемы, которые могут возникать при использовании общих ресурсов в службе автоматизации Azure.

Модули

Сценарий. Модуль завис во время импорта

Проблема

При импорте или обновлении модуля в службе автоматизации Azure обнаружилось, что модуль завис в состоянии Импорт.

Причина

Так как импорт модулей PowerShell — это сложный многоэтапный процесс, модуль может быть неправильно импортирован и может зависнуть в переходном состоянии. Подробнее о процессе импорта см. в статье Импорт модуля PowerShell.

Решение

Чтобы устранить эту проблему, необходимо удалить зависший модуль с помощью командлета Remove-AzAutomationModule. Затем можно повторить импорт модуля.

Remove-AzAutomationModule -Name ModuleName -ResourceGroupName ExampleResourceGroup -AutomationAccountName ExampleAutomationAccount -Force

Сценарий. Модули AzureRM зависают во время импорта после попытки обновления

Проблема

После попытки обновления модулей AzureRM в вашей учетной записи остается баннер со следующим сообщением.

Azure modules are being updated

Причина

Это известная проблема, которая может возникать при обновлении модулей AzureRM в учетной записи службы автоматизации. Эта проблема, в частности, возникает, если модули находятся в группе ресурсов, имя которой представляет собой число и начинается с 0.

Решение

Чтобы была возможность обновить модули AzureRM в учетной записи службы автоматизации, учетная запись должна находиться в группе ресурсов с буквенно-цифровым именем. В настоящее время в группах ресурсов с цифровыми именами, начинающимися с 0, модули AzureRM обновить невозможно.

Сценарий. Не удается импортировать модуль, или после импорта не выполняются командлеты

Проблема

Модулю не удается осуществить импорт, либо импорт выполнен успешно, но командлеты не извлекаются.

Причина

Ниже приведены наиболее распространенные причины, из-за которых модуль не может успешно завершить импорт в службу автоматизации Azure.

  • Структура не соответствует той, которая требуется для службы автоматизации.
  • Модуль зависит от другого модуля, который не был развернут в учетной записи службы автоматизации.
  • В папке отсутствуют зависимости модуля.
  • Командлет New-AzAutomationModule используется для передачи модуля, при этом полный путь для хранения не указан или модуль не загружен с помощью общедоступного URL-адреса.

Решение

Для решения проблемы используйте одно из следующих решений.

  • Убедитесь, что модуль имеет следующий формат: имя_модуля.zip -> имя_модуля или номер_версии -> (имя_модуля.psm1, имя_модуля.psd1).
  • Откройте файл PSD1 и проверьте, есть ли у модуля зависимости. Если зависимости есть, отправьте эти модули в учетную запись службы автоматизации.
  • Убедитесь, что все указанные DLL-файлы находятся в папке модуля.

Сценарий. Update-AzureModule.ps1 приостанавливается при обновлении модулей

Проблема

Если для обновления модулей Azure используется модуль runbook Update-AzureModule.ps1, процесс обновления приостанавливается.

Причина

Для данного модуля runbook значение, определяющее количество одновременно обновляемых модулей, по умолчанию равно 10. Процесс обновления подвержен ошибкам, если одновременно обновляются слишком много модулей.

Решение

Очень редко все модули AzureRM или Az требуются в одной учетной записи службы автоматизации. Следует импортировать только необходимые модули.

Примечание

Не импортируйте весь модуль Az.Automation или AzureRM.Automation, который импортирует все автономные модули.

Если процесс обновления приостанавливается, добавьте параметр SimultaneousModuleImportJobCount в сценарий Update-AzureModules.ps1 и укажите более низкое значение, чем значение по умолчанию, равное 10. Если вы реализуете эту логику, попробуйте начать со значения 3 или 5. SimultaneousModuleImportJobCount — параметр системного модуля runbook Update-AutomationAzureModulesForAccount, который используется для обновления модулей Azure. Если вы внесете указанное изменение, процесс обновления будет выполняться дольше, но вероятность его завершения будет более высокой. В следующем примере показан параметр и его место в runbook:

$Body = @"
   {
      "properties":{
      "runbook":{
            "name":"Update-AutomationAzureModulesForAccount"
      },
      "parameters":{
            ...
            "SimultaneousModuleImportJobCount":"3",
            ... 
      }
      }
   }
"@

Учетная запись запуска от имени

Сценарий. Не удается создать или обновить учетную запись запуска от имени

Проблема

При попытке создать или обновить учетную запись запуска от имени появляется сообщение об ошибке примерно следующего содержания.

You do not have permissions to create…

Причина

У вас нет разрешений, необходимых для создания или обновления учетной записи запуска от имени, или ресурс заблокирован на уровне группы ресурсов.

Решение

Чтобы создать или обновить учетную запись запуска от имени, необходимо иметь соответствующие разрешения на различные ресурсы, используемые этой учетной записью.

Если проблема связана с блокировкой, убедитесь, что эту блокировку можно снять. Затем на портале Azure перейдите к ресурсу, который заблокирован, щелкните блокировку правой кнопкой мыши и выберите Удалить.

Сценарий. При выполнении runbook появляется сообщение об ошибке "Не удается найти точку входа GetPerAdapterInfo в библиотеке DLL iplpapi.dll"

Проблема

При выполнении модуля runbook возникает следующее исключение.

Unable to find an entry point named 'GetPerAdapterInfo' in DLL 'iplpapi.dll'

Причина

Скорее всего, эта ошибка возникает из-за неправильной настройки учетной записи запуска от имени.

Решение

Убедитесь, что учетная запись запуска от имени настроена правильно. Затем убедитесь, что в модуле runbook у вас правильный код проверки подлинности в Azure. В следующем примере показан фрагмент кода модуля runbook для проверки подлинности в Azure с использованием учетной записи запуска от имени.

$connection = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzAccount -ServicePrincipal -Tenant $connection.TenantID `
-ApplicationID $connection.ApplicationID -CertificateThumbprint $connection.CertificateThumbprint

Дальнейшие действия

Если эта статья не помогла вам решить проблему, попробуйте использовать один из следующих каналов для получения дополнительной поддержки.

  • Получите ответы специалистов Azure на форумах Azure.
  • Обратитесь за помощью в Твиттер — @AzureSupport. Это официальная учетная запись Microsoft Azure для доступа к ресурсам сообщества Azure (ответы на вопросы, поддержка и консультации специалистов).
  • Отправьте запрос в службу поддержки Azure Перейдите на сайт поддержки Azure и выберите Получить поддержку.