Вызов функции azure для вызова процедуры в снежинке для загрузки данных вызывает тайм-аут в плане потребления, есть ли другой способ добиться этого?

Я хочу запустить процедуру в хранилище снежинок для загрузки файла из хранилища Azure blob, для этого я реализовал коннектор снежинки как функцию лазурного, и он работает по плану потребления (динамическому). Но план потребления имеет тайм-аут по умолчанию 5 минут, а максимальный тайм-аут может составлять 10 минут. Но мои данные примерно 50 ГБ, и это занимает около 20 минут с кластером снежинок среднего размера. Так есть ли другой способ добиться этого?


person Bilal Shafqat    schedule 21.02.2020    source источник


Ответы (1)


Если вы хотите избавиться от этого ограничения, у вас есть несколько решений.

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

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

В бессерверном плане потребления допустимый диапазон составляет от 1 секунды до 10 минут, а значение по умолчанию - 5 минут.

В плане Premium допустимый диапазон составляет от 1 секунды до 60 минут, а значение по умолчанию - 30 минут.

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

Связанные документы: https://docs.microsoft.com/en-us/azure/azure-functions/functions-host-json#functiontimeout.

В-третьих, используйте надежные функции. По плану потребления обычные готовые функции работают до 10 минут. Но если вы используете долговечные функции, то такого ограничения нет вообще. Он также поддерживает выполнение с отслеживанием состояния, что означает, что последующие вызовы одной и той же функции могут совместно использовать локальные переменные и статические члены. Это расширение стандартной готовой функциональной модели, и для этого требуется некоторый дополнительный шаблонный код, чтобы все функции работали должным образом.

дополнительные сведения о надежных функциях: https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview?tabs=csharp

person Bowman Zhu    schedule 21.02.2020
comment
Правильно, я ценю ваш ответ, но дело обстоит с другими планами не без сервера. Итак, мне нужен эффективный способ. В любом случае, кроме функций Azure, которые не имеют короткого тайм-аута и эффективны, как насчет использования пакета Azure (пользовательское действие в ADF)? - person Bilal Shafqat; 22.02.2020
comment
@BilalShafqat Да, вы можете использовать ADF v2. Таймаут по умолчанию для пользовательской активности в ADF v2 составляет 7 дней. Так что таймаут не малый. :) - person Bowman Zhu; 23.02.2020