web-dev-qa-db-fra.com

Délai d'expiration Azure Functions pour le plan de consommation

Existe-t-il un moyen de modifier le délai d'expiration actuel de 5 minutes pour les fonctions Azure exécutées dans le cadre du plan de consommation?

Pour certains calculs d'analyse de données, 5 minutes ne suffisent pas.

L'alternative d'utiliser des webjobs ne permet pas l'exécution parallèle de la fonction.

12
donquijote

(L'autre réponse est un peu déroutante, donc écrire au lieu de beaucoup éditer)

Azure Functions peut désormais fonctionner jusqu'à 10 minutes à l'aide du plan de consommation:

Remarque Le délai d'expiration par défaut pour les fonctions d'un plan de consommation est de 5 minutes. La valeur peut être augmentée à 10 minutes pour l'application Function en modifiant la propriété functionTimeout dans Host.json.

Source: https://docs.Microsoft.com/en-us/Azure/azure-functions/functions-scale#consumption-plan

Fichier: Host.json

// Value indicating the timeout duration for all functions.
// In Dynamic SKUs, the valid range is from 1 second to 10 minutes and the default value is 5 minutes.
// In Paid SKUs there is no limit and the default value is null (indicating no timeout).

// Set functionTimeout to 10 minutes
{
    "functionTimeout": "00:10:00"
}

La source:
https://buildazure.com/2017/08/17/Azure-functions-extend-execution-timeout-past-5-minutes/
https://github.com/Azure/azure-webjobs-sdk-script/wiki/Host.json

19

Actuellement, il n'y a aucun moyen d'avoir une fonction en cours d'exécution pendant plus de 5 minutes sur le plan de consommation. Vous pouvez vérifier la réponse de l'équipe ici:

La raison pour laquelle nous expirons à 5 minutes avec le plan dynamique est que sous le plan dynamique, le VM qui héberge votre fonction s'arrêtera (environ) 5 minutes après le dernier déclencheur déclenché. le délai d'expiration comme nous le faisons aujourd'hui est un moyen de fournir une expérience cohérente avec la journalisation qui explique pourquoi la fonction a cessé de fonctionner. Avant cela, vous verriez les fonctions disparaître simplement à mi-invocation sans aucune indication de pourquoi. Nous évaluons les améliorations dans ce et sera mis à jour lorsque nous aurons des détails plus concrets.

Les fonctions de longue durée qui ne peuvent pas être décomposées en morceaux plus petits se heurteront actuellement à des problèmes dans le plan dynamique. Cependant, il existe souvent des solutions pour décomposer des fonctions uniques de longue durée en fonctions plus petites et plus rapides. Par exemple, si vous avez une fonction qui démarre une longue opération ailleurs, puis interroge pour l'achèvement, pourriez-vous obtenir un "operationId" à partir de cette opération, puis placez-le dans un message planifié Service Bus (ou même dans un message de file d'attente avec un délai d'invisibilité), et avoir une deuxième fonction "CheckStatus" qui lit ces messages et interroge pour l'achèvement

https://github.com/Azure/azure-webjobs-sdk-script/issues/18

et aussi https://github.com/Azure/Azure-Functions/issues/75

[~ # ~] mise à jour [~ # ~]

Azure Functions peut désormais fonctionner jusqu'à 10 minutes à l'aide du plan de consommation: https://docs.Microsoft.com/en-us/Azure/azure-functions/functions-scale

6
Thiago Custodio