référence host.json pour Azure Functions 1.x

Le fichier de métadonnées host.json contient des options de configuration qui affectent l’ensemble des fonctions d’une instance d’application de fonction. Cet article répertorie les paramètres disponibles pour le runtime version 1.x. Le schéma JSON est sur http://json.schemastore.org/host.

Remarque

Cet article conserve la référencehost.json pour Azure Functions runtime 1.x. Pour d’autres informations historiques, voir la référence d’héritage runtime 1.x. Pour la référence host.json actuelle, voir host.json référence pour Azure Functions 2.x et ultérieures.

Les autres options de configuration d’application de fonction sont managées dans vos paramètres d’application.

Certains paramètres host.json sont uniquement utilisés lors de l’exécution locale dans le fichier local.settings.json.

Exemple de fichier host.json

L’exemple de fichier host.json suivant contient toutes les options possibles spécifiées.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    },
    "applicationInsights": {
        "sampling": {
          "isEnabled": true,
          "maxTelemetryItemsPerSecond" : 5
        }
    },
    "documentDB": {
        "connectionMode": "Gateway",
        "protocol": "Https",
        "leaseOptions": {
            "leasePrefix": "prefix"
        }
    },
    "eventHub": {
      "maxBatchSize": 64,
      "prefetchCount": 256,
      "batchCheckpointFrequency": 1
    },
    "functions": [ "QueueProcessor", "GitHubWebHook" ],
    "functionTimeout": "00:05:00",
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    },
    "http": {
        "routePrefix": "api",
        "maxOutstandingRequests": 20,
        "maxConcurrentRequests": 10,
        "dynamicThrottlesEnabled": false
    },
    "id": "9f4ea53c5136457d883d685e57164f08",
    "logger": {
        "categoryFilter": {
            "defaultLevel": "Information",
            "categoryLevels": {
                "Host": "Error",
                "Function": "Error",
                "Host.Aggregator": "Information"
            }
        }
    },
    "queues": {
      "maxPollingInterval": 2000,
      "visibilityTimeout" : "00:00:30",
      "batchSize": 16,
      "maxDequeueCount": 5,
      "newBatchThreshold": 8
    },
    "sendGrid": {
        "from": "Contoso Group <admin@contoso.com>"
    },
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00",
      "autoComplete": true
    },
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    },
    "tracing": {
      "consoleLevel": "verbose",
      "fileLoggingMode": "debugOnly"
    },
    "watchDirectories": [ "Shared" ],
}

Les sections suivantes de cet article expliquent chaque propriété de niveau supérieur. Tous sont facultatifs sauf indication contraire.

agrégateur

Spécifie le nombre d’appels de fonction agrégés lorsque vous calculez des métriques pour Application Insights.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
Propriété Par défaut Descriptif
batchSize 1 000 Nombre maximal de requêtes à agréger.
flushTimeout 00:00:30 Période maximale d’agrégation.

Les invocations de fonctions sont agrégées lorsque la première des deux limites est atteinte.

AnalysesDesApplications

Contrôle la fonctionnalité d’échantillonnage dans Application Insights.

{
        "applicationInsights": {
                "sampling": {
                    "isEnabled": true,
                    "maxTelemetryItemsPerSecond" : 5
                }
        }
}
Propriété Par défaut Descriptif
isEnabled vrai Active ou désactive l’échantillonnage.
maxTelemetryItemsPerSecond 5 Seuil à partir duquel l’échantillonnage débute.

Base de données de documents

Paramètres de configuration du déclencheur et des liaisons Azure Cosmos DB.

{
    "documentDB": {
        "connectionMode": "Gateway",
        "protocol": "Https",
        "leaseOptions": {
            "leasePrefix": "prefix1"
        }
    }
}
Propriété Par défaut Descriptif
GatewayMode Passerelle Mode de connexion utilisé par la fonction lors de la connexion au service Azure Cosmos DB. Les options sont Direct et Gateway.
Protocole Https Protocole de connexion utilisé par la fonction lors de la connexion au service Azure Cosmos DB. Voir l’explication des deux modes.
leasePrefix n/a Préfixe de bail à utiliser dans toutes les fonctions d’une application.

durableTask

Paramètres de configuration pour Durable Functions.

Dans Azure Functions runtime 1.x, la durableTask section se trouve à la racine du fichierhost.json. Les paramètres disponibles dépendent de la version de l’extension Durable Functions. Pour la référence de configuration actuelle, voir Durable Functions host.json paramètres.

eventHub

Paramètres de configuration pour les déclencheurs et liaisons Event Hub.

fonctions

Liste des fonctions que l’hôte de travail exécute. Un tableau vide désigne l’exécution de toutes les fonctions. Utilisée uniquement pour une exécution locale. Dans les applications fonctionnelles Azure, vous devez suivre les étapes du guide How to disable functions in Azure Functions pour désactiver des fonctions spécifiques plutôt que d’utiliser ce paramètre.

{
    "functions": [ "QueueProcessor", "GitHubWebHook" ]
}

functionTimeout

Indique la durée du délai d’expiration de toutes les fonctions. Dans les plans de consommation serverless, la plage valide est comprise entre 1 seconde et 10 minutes, et la valeur par défaut est de 5 minutes. Dans un plan App Service, il n’existe aucune limite globale et la valeur par défaut est null, ce qui indique qu’il n’y a pas de délai d’expiration.

{
    "functionTimeout": "00:05:00"
}

healthMonitor

Paramètres de configuration pour Host health monitor.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Propriété Par défaut Descriptif
enabled vrai Indique si la fonctionnalité est activée.
intervalleDeVérificationDeSanté 10 secondes Intervalle de temps entre les contrôles d’intégrité périodiques en arrière-plan.
healthCheckWindow 2 minutes Une fenêtre de temps coulissante utilisée avec le paramètre healthCheckThreshold.
healthCheckThreshold 6 Nombre maximal de fois où le contrôle d’intégrité peut échouer avant le lancement d’un recyclage de l’hôte.
counterThreshold 0.80 Seuil auquel un compteur de performance est considéré comme non sain.

http

Paramètres de configuration pour les déclencheurs HTTP et les liaisons.

{
    "http": {
        "routePrefix": "api",
        "maxOutstandingRequests": 200,
        "maxConcurrentRequests": 100,
        "dynamicThrottlesEnabled": true
    }
}
Propriété Par défaut Descriptif
dynamicThrottlesEnabled faux Lorsqu’il est activé, ce paramètre provoque la vérification périodique des compteurs de performance système, comme les connexions/les threads/les processus/la mémoire/le processeur, etc., par le pipeline de traitement des requêtes. Si l’un de ces compteurs dépasse un seuil supérieur intégré (80 %), les requêtes sont rejetées avec une réponse 429 (trop de demandes) jusqu’à ce qu’un niveau normal soit retrouvé.
maxConcurrentRequests illimité (-1) Nombre maximal de fonctions HTTP exécutées en parallèle. Ce paramètre vous permet de contrôler la concurrence, et ainsi facilite la gestion de l’utilisation des ressources. Par exemple, vous pouvez disposer d’une fonction HTTP qui utilise de nombreuses ressources système (mémoire/processeur/sockets) et qui provoque par conséquent des situations où la concurrence est trop élevée. Vous pouvez également avoir une fonction qui effectue des requêtes vers un service tiers, et ces appels doivent être limités en débit. Dans ces cas, il peut être pertinent d’appliquer une limitation.
maxOutstandingRequests illimité (-1) Nombre maximal de requêtes en attente retenues à un moment donné. La limite inclut les requêtes qui sont en file d’attente, mais dont l’exécution n’a pas démarré, ainsi que les exécutions en cours. Toutes les requêtes entrantes au-delà de cette limite sont rejetées avec une réponse 429 « Trop occupé ». Ainsi, les appelants peuvent appliquer des stratégies temporelles de nouvelle tentative et vous êtes en mesure de contrôler les latences maximales de requêtes. Ce paramètre contrôle uniquement la mise en file d’attente qui se produit dans le chemin d’accès d’exécution de l’hôte de script. D’autres files d’attente telles que la file d’attente de requêtes ASP.NET sont toujours en vigueur et non affectées par ce paramètre.
préfixe de route api Préfixe d’itinéraire qui s’applique à tous les itinéraires. Utilisez une chaîne vide pour supprimer le préfixe par défaut.

id

ID unique d’un hôte de travail. Il peut s’agir d’un GUID en minuscules dont les tirets ont été supprimés. Requis lors d’une exécution locale. Lors de l’exécution dans Azure, nous vous recommandons de ne pas définir de valeur d’ID. Un ID est généré automatiquement dans Azure lorsque id est omis.

Si vous partagez un compte de stockage entre plusieurs applications fonctionnelles, assurez-vous que chaque application fonctionnelle a une id différente. Vous pouvez omettre la propriété id ou définir manuellement chaque id de l’application de fonction sur une autre valeur. Le déclencheur du minuteur utilise un verrou de stockage pour garantir qu’il n’y aura qu’une seule instance du minuteur quand une application de fonction fera l’objet d’un scale-out vers plusieurs instances. Si deux applications de fonction partagent le même id et que chacune utilise un déclencheur de minuteur, un seul minuteur s’exécute.

{
    "id": "9f4ea53c5136457d883d685e57164f08"
}

logger

Contrôle le filtrage des journaux d’activité écrits par un objet ILogger ou par context.log.

{
    "logger": {
        "categoryFilter": {
            "defaultLevel": "Information",
            "categoryLevels": {
                "Host": "Error",
                "Function": "Error",
                "Host.Aggregator": "Information"
            }
        }
    }
}
Propriété Par défaut Descriptif
Filtre de catégorie n/a Spécifie un filtrage par catégorie.
niveau par défaut Informations Pour toutes les catégories non spécifiées dans le tableau categoryLevels, envoie les journaux d’activité de ce niveau et des niveaux supérieurs à Application Insights.
categoryLevels n/a Tableau des catégories qui spécifie le niveau de journalisation minimal à envoyer à Application Insights pour chaque catégorie. La catégorie indiquée ici contrôle toutes les catégories qui commencent par la même valeur, et les valeurs plus longues sont prioritaires. Dans l’exemple de fichier host.json précédent, toutes les catégories qui commencent par « Host.Aggregator » journalisent au niveau Information. Toutes les autres catégories qui commencent par « Host », comme « Host.Executor », journalisent au niveau Error.

queues

Paramètre de configuration des déclencheurs et liaisons de file d’attente de stockage.

{
    "queues": {
      "maxPollingInterval": 2000,
      "visibilityTimeout" : "00:00:30",
      "batchSize": 16,
      "maxDequeueCount": 5,
      "newBatchThreshold": 8
    }
}
Propriété Par défaut Descriptif
maxPollingInterval 60000 Intervalle maximal en millisecondes entre les sondages de la file d’attente.
visibilityTimeout 0 Intervalle de temps entre les nouvelles tentatives en cas d’échec du traitement d’un message.
taille de lot 16 Le nombre de messages de file d’attente que le runtime Functions récupère simultanément et traite en parallèle. Quand le nombre de messages en cours de traitement descend à newBatchThreshold, le runtime obtient un autre lot et commence à traiter ces messages. Par conséquent, le nombre maximal de messages traités simultanément par fonction est batchSize plus newBatchThreshold. Cette limite s’applique séparément à chaque fonction déclenchée par une file d’attente.

Si vous souhaitez éviter les exécutions parallèles pour les messages reçus sur une file d’attente, vous pouvez définir batchSize sur 1. Toutefois, ce paramètre évite les opérations simultanées uniquement pendant l’exécution de votre application de fonction sur une machine virtuelle unique. Si l’application de fonction augmente la taille des instances sur plusieurs machines virtuelles, chaque machine virtuelle peut exécuter une instance de chaque fonction déclenchée par une file d’attente.

La valeur batchSize maximale est de 32.
maxDequeueCount 5 Nombre de tentatives de traitement d’un message avant de le placer dans la file d’attente des messages empoisonnés.
newBatchThreshold batchSize/2 Quand le nombre de messages traités simultanément passe en dessous de cette valeur, le runtime récupère un autre lot.

SendGrid

Paramètres de configuration pour la liaison de sortie SendGrid.

{
    "sendGrid": {
        "from": "Contoso Group <admin@contoso.com>"
    }
}    
Propriété Par défaut Descriptif
de n/a Adresse e-mail de l’expéditeur dans toutes les fonctions.

serviceBus

Paramètre de configuration pour déclencheurs et liaisons de Service Bus.

{ 
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00",
      "autoComplete": true
    }
}
Propriété Par défaut Descriptif
maxConcurrentCalls 16 Nombre maximal d’appels simultanés vers un rappel que la pompe de messages doit initier. Par défaut, le runtime Functions traite plusieurs messages simultanément. Pour que le runtime ne traite qu’un message de file d’attente ou de rubrique à la fois, définissez maxConcurrentCalls sur 1.
prefetchCount n/a La valeur par défaut de PrefetchCount qui sera utilisée par l’instance ServiceBusReceiver sous-jacente.
autoRenewTimeout 00:05:00 Durée maximale pendant laquelle le verrouillage de message doit être renouvelé automatiquement.
autoComplete vrai Lorsque la valeur est true, le déclencheur termine automatiquement le traitement du message en cas d’exécution réussie de l’opération. Lorsque la valeur est false, la fonction est chargée de terminer le message avant de le retourner.

singleton

Paramètres de configuration du comportement de verrouillage Singleton. Pour plus d’informations, consultez l’article sur le problème de GitHub relatif à la prise en charge de singleton.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
Propriété Par défaut Descriptif
lockPeriod 00:00:15 Période pendant laquelle des verrous sont établis au niveau des fonctions. Les verrous se renouvellent automatiquement.
listenerLockPeriod 00:01:00 Période pendant laquelle des verrous sont établis au niveau des écouteurs.
listenerLockRecoveryPollingInterval 00:01:00 Intervalle de temps utilisé pour la récupération des verrous d’écouteurs si un verrou de ce type n’a pas pu être acquis au démarrage.
lockAcquisitionTimeout 00:01:00 Période de temps maximale pendant laquelle le runtime essaie d’acquérir un verrou.
lockAcquisitionPollingInterval n/a Intervalle écoulé entre les tentatives d’acquisition de verrou.

tracing

Version 1.x

Paramètres de configuration des journaux que vous créez en utilisant un objet TraceWriter. Pour en savoir plus, consultez [Journalisation en C#].

{
    "tracing": {
      "consoleLevel": "verbose",
      "fileLoggingMode": "debugOnly"
    }
}
Propriété Par défaut Descriptif
consoleLevel info Niveau de suivi pour la journalisation de la console. Options : off, error, warning, info et verbose.
mode de journalisation des fichiers debugOnly Niveau de suivi de la journalisation des fichiers. Options : never, always, debugOnly.

watchDirectories

Ensemble de répertoires de code partagé dont les modifications doivent être surveillées. Garantit que lorsque le code contenu dans ces répertoires est modifié, les modifications sont prises en compte par vos fonctions.

{
    "watchDirectories": [ "Shared" ]
}

Étapes suivantes