referencia de host.json para Azure Functions 1.x

El archivo de metadatos host.json contiene las opciones de configuración global que afectan a todas las funciones de dicha instancia de aplicación de funciones. En este artículo se incluye una lista de las opciones de configuración disponibles para el entorno en tiempo de ejecución de la versión 1.x. El esquema JSON está en http://json.schemastore.org/host.

Nota

Este artículo preserva la referenciahost.json para Azure Functions runtime 1.x. Para más información histórica, consulta la referencia de legado en runtime 1.x. Para la referencia actual dehost.json, véase host.json referencia para Azure Functions 2.x y posteriores.

Otras opciones de configuración de las funciones de la aplicación se administran en su configuración de la aplicación.

Algunas opciones de configuración de host.json solo se usan con la ejecución local en el archivo local.settings.json.

Archivo host.json de ejemplo

El siguiente archivo host.json de ejemplo tiene especificadas todas las opciones posibles.

{
    "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" ],
}

Las siguientes secciones de este artículo explican cada propiedad de nivel superior. Todas son opcionales, a menos que se indique lo contrario.

aggregator

Especifica cuántas llamadas a funciones se agregan cuando se calculan las métricas para Application Insights.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
Propiedad Valor predeterminado Descripción
batchSize 1 000 Número máximo de solicitudes a agregar.
flushTimeout 00:00:30 Período máximo de tiempo para agregar.

Las invocaciones de funciones se agregan cuando se alcanza el primero de los dos límites.

PerspectivasDeAplicación

Controla la característica de muestreo de Application Insights.

{
        "applicationInsights": {
                "sampling": {
                    "isEnabled": true,
                    "maxTelemetryItemsPerSecond" : 5
                }
        }
}
Propiedad Valor predeterminado Descripción
isEnabled cierto Habilita o deshabilita el muestreo.
maxTelemetryItemsPerSecond 5 Umbral donde comienza el muestreo.

DocumentDB

Opciones de configuración del desencadenador y los enlaces de Azure Cosmos DB.

{
    "documentDB": {
        "connectionMode": "Gateway",
        "protocol": "Https",
        "leaseOptions": {
            "leasePrefix": "prefix1"
        }
    }
}
Propiedad Valor predeterminado Descripción
GatewayMode Puerta de enlace Modo de conexión utilizado por la función al conectarse al servicio Azure Cosmos DB. Las opciones son Direct y Gateway
Protocolo Https Protocolo de conexión utilizado por la función cuando se establece la conexión con el servicio Azure Cosmos DB. Lea aquí para obtener una explicación de los dos modos
leasePrefix N/D Prefijo de concesión que se usará en todas las funciones de una aplicación.

durableTask

Opciones de configuración para Durable Functions.

En Azure Functions runtime 1.x, la durableTask sección está en la raíz del archivo host.json. Los ajustes disponibles dependen de la versión de la extensión Durable Functions. Para la referencia de configuración actual, consulta Durable Functions host.json configuración.

eventHub

Opciones de configuración para los desencadenadores y enlaces del Centro de eventos.

funciones

Lista de las funciones que el host de trabajo ejecuta. Una matriz vacía significa ejecutar todas las funciones. Su uso está previsto solo cuando se ejecuta localmente. En las aplicaciones de funciones de Azure, debe seguir los pasos descritos en Cómo deshabilitar funciones en Azure Functions para deshabilitar funciones específicas en lugar de usar esta configuración.

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

functionTimeout

Indica la duración del tiempo de espera para todas las funciones. En un plan de consumo sin servidor, el intervalo válido es de 1 segundo a 10 minutos, y el valor predeterminado es 5 minutos. En un plan de App Service, no hay ningún límite general y el valor predeterminado es null, lo que indica que no hay tiempo de espera.

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

healthMonitor

Opciones de configuración del monitor de salud del Host.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Propiedad Valor predeterminado Descripción
enabled cierto Especifica si está habilitada la característica.
healthCheckInterval 10 segundos El intervalo de tiempo entre las comprobaciones periódicas de mantenimiento en segundo plano.
ventana de verificación de salud 2 minutos Período de tiempo deslizante que se usa con la configuración healthCheckThreshold.
healthCheckThreshold 6 Número máximo de veces que puede producirse un error en la comprobación de mantenimiento antes de que se inicie un reciclaje del host.
counterThreshold 0.80 El umbral a partir del cual se considerará que un contador de rendimiento es no saludable.

HTTP

Configuración para disparadores HTTP y enlaces.

{
    "http": {
        "routePrefix": "api",
        "maxOutstandingRequests": 200,
        "maxConcurrentRequests": 100,
        "dynamicThrottlesEnabled": true
    }
}
Propiedad Valor predeterminado Descripción
dynamicThrottlesEnabled falso Cuando se habilita, esta configuración hace que la canalización de procesamiento de la solicitud compruebe periódicamente contadores de rendimiento del sistema como conexiones, subprocesos, procesos, memoria o CPU y, si cualquiera de esos contadores superan un umbral alto integrado (80 %), las solicitudes se rechazan con una respuesta 429 "Ocupado" hasta que los contadores vuelvan a niveles normales.
máximo de solicitudes concurrentes ilimitado (-1) Número máximo de funciones HTTP que se ejecutarán en paralelo. Esto permite controlar la simultaneidad, que a su vez puede ayudar a administrar el uso de recursos. Por ejemplo, podría tener una función HTTP que utiliza una gran cantidad de recursos del sistema (memoria/cpu/sockets) y causa problemas cuando la simultaneidad es demasiado alta. O bien podría tener una función que realiza solicitudes de salida a un servicio de terceros y puede que haya que limitar la velocidad de dichas llamadas. En estos casos puede ayudar aplicar una limitación.
máximo de solicitudes pendientes ilimitado (-1) Número máximo de solicitudes pendientes que se mantienen en un momento dado. Este límite incluye las solicitudes que están en cola pero no han empezado a ejecutarse y cualquier ejecución en curso. Se rechazan todas las solicitudes entrantes que superen este límite con una respuesta 429 "Too Busy" (demasiado ocupado). Esto permite que los llamadores empleen estrategias de reintento basadas en tiempo y también le ayuda a controlar las latencias de solicitud máximas. Únicamente se controlan los movimientos de la cola que se producen dentro de la ruta de ejecución del host del script. Otras colas, como la ASP.NET cola de solicitudes, seguirán en vigor y no se verán afectadas por esta configuración.
routePrefix Interfaz de Programación de Aplicaciones (API) Prefijo de ruta que se aplica a todas las rutas. Use una cadena vacía para quitar el prefijo predeterminado.

id

Id. exclusivo de un host de trabajo. Puede ser un GUID en minúsculas sin guiones. Requerido cuando se realiza la ejecución localmente. Al ejecutar en Azure, se recomienda no establecer un valor de identificador. Un identificador se genera automáticamente en Azure cuando se omite id.

Si comparte una cuenta de almacenamiento entre varias aplicaciones de función, asegúrese de que cada aplicación de función tiene otro id. Puede omitir la propiedad id o establecer manualmente el id de cada aplicación de función en un valor diferente. El desencadenador de temporizador utiliza un bloqueo de almacenamiento para asegurarse de que solo hay una instancia de temporizador cuando una aplicación de función se escala a varias instancias. Si dos aplicaciones de función comparten el mismo id y cada una usa un desencadenador de temporizador, solo se ejecuta un temporizador.

{
    "id": "9f4ea53c5136457d883d685e57164f08"
}

logger

Controla el filtrado de los registros escritos por un objeto ILogger o context.log.

{
    "logger": {
        "categoryFilter": {
            "defaultLevel": "Information",
            "categoryLevels": {
                "Host": "Error",
                "Function": "Error",
                "Host.Aggregator": "Information"
            }
        }
    }
}
Propiedad Valor predeterminado Descripción
filtro de categoría N/D Especifica el filtrado por categoría
nivel predeterminado Información Para las categorías no especificadas en la matriz categoryLevels, envía registros en este nivel y superiores a Application Insights.
categoryLevels N/D Matriz de categorías que especifica el nivel de registro mínimo para enviar a Application Insights para cada categoría. La categoría especificada aquí controla todas las categorías que comienzan por el mismo valor, y los valores más largos tienen prioridad. En el archivo host.json del ejemplo anterior, todas las categorías que comienzan por "Host.Aggregator" se registran en el nivel Information. Todas las demás categorías que comienzan por "Host", como "Host.Executor", se registran en el nivel Error.

Colas

Opciones de configuración para los desencadenadores y enlaces de la cola de Storage.

{
    "queues": {
      "maxPollingInterval": 2000,
      "visibilityTimeout" : "00:00:30",
      "batchSize": 16,
      "maxDequeueCount": 5,
      "newBatchThreshold": 8
    }
}
Propiedad Valor predeterminado Descripción
intervaloMáximoDeSondeo 60000 Intervalo máximo, en milisegundos, entre sondeos de la cola.
visibilityTimeout 0 Intervalo de tiempo entre los reintentos cuando se produce un error al procesar un mensaje.
batchSize 16 El número de mensajes en cola que el entorno de ejecución de Functions recupera simultáneamente y procesa en paralelo. Cuando el número que se está procesando llega a newBatchThreshold el runtime obtiene otro lote y empieza a procesar esos mensajes. Por lo tanto, el número máximo de mensajes simultáneos que se procesan por función es batchSize más newBatchThreshold. Este límite se aplica por separado a cada función desencadenada por la cola.

Si desea evitar la ejecución en paralelo de los mensajes de una cola, puede establecer batchSize en 1. Sin embargo, este valor solo elimina la simultaneidad siempre y cuando la aplicación de función se ejecute en una única máquina virtual (VM). Si la aplicación de función se escala horizontalmente a varias máquinas virtuales, cada una de ellas podría ejecutar una instancia de cada función desencadenada por la cola.

El valor máximo de batchSize es 32.
maxDequeueCount 5 Número de veces que se intenta procesar un mensaje antes de pasarlo a la cola de mensajes dudosos.
newBatchThreshold batchSize/2 Siempre que el número de mensajes que se procesan simultáneamente llega a este número, el runtime recupera otro lote.

SendGrid

Configuración para la vinculación de salida de SendGrid.

{
    "sendGrid": {
        "from": "Contoso Group <admin@contoso.com>"
    }
}    
Propiedad Valor predeterminado Descripción
desde N/D Dirección de correo electrónico del remitente en todas las funciones.

serviceBus

Opción de configuración para los desencadenadores y enlaces de Service Bus.

{ 
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00",
      "autoComplete": true
    }
}
Propiedad Valor predeterminado Descripción
máximo de llamadas simultáneas 16 Número máximo de llamadas simultáneas a la devolución de llamada que el bombeo de mensajes debe iniciar. De forma predeterminada, el entorno de ejecución de Functions procesa simultáneamente varios mensajes. Para indicar al entorno de ejecución que procese solo los mensajes de una única cola o tema, establezca maxConcurrentCalls en 1.
prefetchCount N/D Valor predeterminado de PrefetchCount que utilizará el ServiceBusReceiver subyacente.
autoRenewTimeout 00:05:00 Duración máxima dentro de la cual el bloqueo de mensajes se renovará automáticamente.
autoComplete cierto Cuando es true, el desencadenador completa el procesamiento de mensajes automáticamente cuando la operación se ejecuta correctamente. Cuando sea false, es responsabilidad de la función completar el mensaje antes de volver.

singleton

Opciones de configuración para el comportamiento de bloqueo Singleton. Para obtener más información, vea la incidencia de GitHub sobre el soporte para singleton.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
Propiedad Valor predeterminado Descripción
período de bloqueo 00:00:15 Período durante el cual se producen los bloqueos de nivel de función. Los bloqueos se renuevan automáticamente.
listenerLockPeriod 00:01:00 Período durante el cual se producen los bloqueos de agente de escucha.
listenerLockRecoveryPollingInterval 00:01:00 Intervalo de tiempo utilizado para la recuperación del bloqueo de escucha si no se pudo adquirir dicho bloqueo durante el inicio.
lockAcquisitionTimeout 00:01:00 Cantidad máxima de tiempo que el entorno en tiempo de ejecución intenta adquirir un bloqueo.
lockAcquisitionPollingInterval N/D Intervalo entre intentos de adquisición de bloqueo.

tracing

Versión 1.x

Opciones de configuración para los registros que se crean mediante un objeto TraceWriter. Para más información, consulte [Registro de C#].

{
    "tracing": {
      "consoleLevel": "verbose",
      "fileLoggingMode": "debugOnly"
    }
}
Propiedad Valor predeterminado Descripción
consoleLevel info Nivel de seguimiento para el registro de la consola. Las opciones son: off, error, warning, info y verbose.
fileLoggingMode debugOnly Nivel de seguimiento para el registro de archivos. Las opciones son never, always, debugOnly.

watchDirectories

Conjunto de directorios de código compartido en los que se deben supervisar los cambios. Garantiza que cuando se cambie el código en estos directorios, las funciones recibirán los cambios.

{
    "watchDirectories": [ "Shared" ]
}

Pasos siguientes