Исключения нехватки памяти для функций Azure

#azure #powershell #azure-functions #out-of-memory #azure-blob-storage

#azure #powershell #azure-функции #нехватка памяти #azure-blob-хранилище

Вопрос:

У меня есть ядро Azure Functions Powershell, как показано ниже:

 # Input bindings are passed in via param block.
param([byte[]] $InputBlob, $TriggerMetadata)

# Write out the blob name and size to the information log.
Write-Host "PowerShell Blob trigger function Processed blob! Name: $($TriggerMetadata.Name) Size: $($InputBlob.Length) bytes  Uri: $($TriggerMetadata.Uri)"
  

Используя триггер больших двоичных объектов, я хочу прочитать образы VDH OS с помощью Powershell из Azure Blob и преобразовать их на управляемый диск. Размер изображения составляет 30 ГБ. Когда функция запускается, я получаю систему.Исключение OutOfMemoryException ниже:

 2020-09-07T09:52:44.704 [Error] Executed 'Functions.BlobTrigger1' (Failed, Id=93b00718-9941-4379-abd0-348137cdcff2, Duration=56449ms)Exception of type 'System.OutOfMemoryException' was thrown.
2020-09-07T09:52:45.061 [Information] Stopping JobHost
  

Я увеличил план приложения, чтобы иметь 14 ГБ памяти, но я получил то же исключение из памяти.

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

У вас есть какие-либо советы?

Ответ №1:

Проверьте конфигурацию платформы приложения-функции :

Функция -> Конфигурация -> Общие настройки -> Платформа

введите описание изображения здесь

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

Если это ваш случай, рекомендуем вам перейти на 64-разрядную версию.

Комментарии:

1. с планом потребления я все еще получаю исключения нехватки памяти. С планом приложения на 14 ГБ у меня теперь есть [ошибка], выполняемые ‘Функции. BlobTrigger1’ (сбой, Идентификатор = 5a9b8ae0-3fbb-40fa-9797-488319c15384, длительность = 88405 мс) Поток был слишком длинным.

2. Почему этот ответ не популярен, это решило нашу большую проблему! Большое спасибо! Мы вставляем 1 миллион объектов с 50 свойствами каждый — успешно запущенный в локальном консольном приложении, но всегда сбой в функции Azure. обновлен до 64-разрядной версии, и все работает гладко