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