host.json referência para Funções do Azure 1.x

O arquivo de metadados host.json contém opções de configuração que afetam todas as funções em uma instância de aplicativo de função. Este artigo lista as configurações que estão disponíveis para o tempo de execução da versão 1.x. O esquema JSON está em http://json.schemastore.org/host.

Nota

Este artigo preserva a referênciahost.json para Funções do Azure runtime 1.x. Para outras informações históricas, consulte a referência legado do runtime 1.x. Para a referência host.json atual, veja host.json referência para Funções do Azure 2.x e posteriores.

Outras opções de configuração de funções são geridas nas configurações do seu aplicativo.

Algumas configurações de host.json são usadas apenas quando executadas localmente no arquivo local.settings.json .

Exemplo de arquivo host.json

Os arquivos de host.json de exemplo a seguir têm todas as opções possíveis especificadas.

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

As seções a seguir deste artigo explicam cada propriedade de nível superior. Todos são opcionais, salvo indicação em contrário.

agregador

Especifica quantas invocações de função são agregadas ao calcular métricas para o Application Insights.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
Propriedade Predefinição Descrição
batchSize 1000 Número máximo de solicitações a agregar.
flushTimeout 00:00:30 Período máximo de tempo para agregação.

As invocações de funções são agregadas quando o primeiro dos dois limites é atingido.

applicationInsights

Controla a funcionalidade de amostragem no Application Insights.

{
        "applicationInsights": {
                "sampling": {
                    "isEnabled": true,
                    "maxTelemetryItemsPerSecond" : 5
                }
        }
}
Propriedade Predefinição Descrição
isEnabled verdadeiro Habilita ou desabilita a amostragem.
maxTelemetryItemsPerSecond 5 O limiar a partir do qual se inicia a amostragem.

DocumentDB

Definições de configuração para o gatilho e as ligações do Azure Cosmos DB.

{
    "documentDB": {
        "connectionMode": "Gateway",
        "protocol": "Https",
        "leaseOptions": {
            "leasePrefix": "prefix1"
        }
    }
}
Propriedade Predefinição Descrição
Modo Gateway Portal O modo de ligação utilizado pela função ao ligar ao serviço Azure Cosmos DB. As opções são Direct e Gateway
Protocolo Https O protocolo de ligação utilizado pela função ao ligar ao serviço Azure Cosmos DB. Leia aqui uma explicação de ambos os modos
prefixo de arrendamento n/d Prefixo de concessão para usar em todas as funções em um aplicativo.

tarefa durável

Definições de configuração para Durable Functions.

Em Funções do Azure runtime 1.x, a durableTask secção está na raiz do ficheirohost.json. As definições disponíveis dependem da versão da extensão Durable Functions. Para a referência de configuração atual, veja Durable Functions host.json definições.

Hub de eventos

Definições de configuração para acionadores e associações do Hub de Eventos.

funções

Uma lista de funções que o host de trabalho executa. Uma matriz vazia significa executar todas as funções. Destina-se a ser usado apenas quando executado localmente. Nas aplicações de funções em Azure, deves antes seguir os passos em Como desativar funções em Funções do Azure para desativar funções específicas em vez de usar esta definição.

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

função de tempo limite

Indica a duração do tempo de espera para todas as funções. Em um plano de Consumo sem servidor, o intervalo válido é de 1 segundo a 10 minutos e o valor padrão é 5 minutos. Em um plano do Serviço de Aplicativo, não há limite geral e o padrão é nulo, o que indica que não há tempo limite.

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

monitor de saúde

Definições de configuração para Monitor de saúde do host.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Propriedade Predefinição Descrição
ativado verdadeiro Especifica se o recurso está habilitado.
intervaloDeVerificaçãoDeSaúde 10 segundos O intervalo de tempo entre as verificações periódicas de integridade de antecedentes.
janelaVerificaçãoSaúde 2 minutos Uma janela de tempo deslizante usada com a configuração healthCheckThreshold.
limiarDeVerificaçãoDeSaúde 6 Número máximo de vezes que a verificação de saúde pode falhar antes que a reinicialização do servidor seja iniciada.
limite do contador 0.80 O limite a partir do qual um contador de desempenho será considerado problemático.

http

Definições de configuração para gatilhos HTTP e associações.

{
    "http": {
        "routePrefix": "api",
        "maxOutstandingRequests": 200,
        "maxConcurrentRequests": 100,
        "dynamicThrottlesEnabled": true
    }
}
Propriedade Predefinição Descrição
aceleradoresDinâmicosAtivados falso Quando habilitada, essa configuração faz com que o pipeline de processamento de solicitações verifique periodicamente os contadores de desempenho do sistema, como conexões/threads/processos/memória/cpu/etc. e, se algum desses contadores estiver acima de um limite alto interno (80%), as solicitações serão rejeitadas com uma resposta 429 "Muito ocupado" até que o(s) contador(es) retorne(m) aos níveis normais.
máximoDePedidosConcomitantes (maxConcurrentRequests) ilimitado (-1) O número máximo de funções HTTP que serão executadas em paralelo. Permite-lhe controlar a simultaneidade, o que pode ajudar a gerir a utilização de recursos. Por exemplo, você pode ter uma função HTTP que usa muitos recursos do sistema (memória/cpu/soquetes) de tal forma que causa problemas quando a simultaneidade é muito alta. Ou poderás ter uma função que faz pedidos enviados para um serviço de terceiros, e essas chamadas precisam ser limitadas em termos de taxa. Nestes casos, aplicar uma restrição aqui pode ajudar.
máximo de pedidos pendentes ilimitado (-1) O número máximo de solicitações pendentes que são mantidas em um determinado momento. Esse limite inclui solicitações que estão na fila, mas não começaram a ser executadas, e todas as execuções em andamento. Todas as solicitações recebidas acima desse limite são rejeitadas com uma resposta 429 "Muito ocupado". Isso permite que os chamadores empreguem estratégias de repetição baseadas no tempo e também ajuda você a controlar as latências máximas de solicitação. Isso controla apenas o enfileiramento que ocorre dentro do caminho de execução do host do script. Outras filas, como a fila de pedidos ASP.NET, continuarão em vigor e não serão afetadas por esta definição.
routePrefix API O prefixo que se aplica a todas as rotas. Use uma cadeia de caracteres vazia para remover o prefixo padrão.

identificação

A ID exclusiva de um host de trabalho. Pode ser um GUID escrito em minúsculas, com os traços removidos. Necessário quando executado localmente. Ao correr no Azure, recomendamos que não defina um valor ID. Um ID é gerado automaticamente em Azure quando id é omitido.

Se partilhar uma conta de Armazenamento em várias aplicações de função, certifique-se de que cada aplicação de função tem um id. Pode omitir a propriedade id ou definir manualmente o id de cada aplicação de função para um valor diferente. O gatilho de temporizador usa um bloqueio de armazenamento para garantir que haverá apenas uma instância de temporizador quando um aplicativo de função for expandido para várias instâncias. Se dois aplicativos de função compartilharem o mesmo id e cada um usar um gatilho de temporizador, apenas um temporizador será executado.

{
    "id": "9f4ea53c5136457d883d685e57164f08"
}

logger

Controla a filtragem de logs gravados por um objeto ILogger ou por context.log.

{
    "logger": {
        "categoryFilter": {
            "defaultLevel": "Information",
            "categoryLevels": {
                "Host": "Error",
                "Function": "Error",
                "Host.Aggregator": "Information"
            }
        }
    }
}
Propriedade Predefinição Descrição
filtro de categoria n/d Especifica a filtragem por categoria
nível padrão Informação Para quaisquer categorias não especificadas no array categoryLevels, envie logs deste nível e acima para o Application Insights.
níveis de categoria n/d Uma matriz de categorias que especifica o nível mínimo de log a ser enviado ao Application Insights para cada categoria. A categoria especificada aqui controla todas as categorias que começam com o mesmo valor, e valores mais longos têm precedência. No exemplo do arquivo host.json anterior, todas as categorias que começam com "Host.Aggregator" efetuam registos ao Information nível. Todas as outras categorias que começam com "Host", como "Host.Executor", registram no Error nível.

filas

Definições de configuração para gatilhos e associações de filas de armazenamento.

{
    "queues": {
      "maxPollingInterval": 2000,
      "visibilityTimeout" : "00:00:30",
      "batchSize": 16,
      "maxDequeueCount": 5,
      "newBatchThreshold": 8
    }
}
Propriedade Predefinição Descrição
maxPollingInterval 60000 O intervalo máximo em milissegundos entre as consultas da fila.
tempo de espera de visibilidade 0 O intervalo de tempo entre novas tentativas quando o processamento de uma mensagem falha.
tamanho de batch 16 O número de mensagens de fila que o runtime do Functions recupera e processa em paralelo simultaneamente. Quando o número a ser processado chega a newBatchThreshold, o ambiente de execução recebe outro lote e começa a processar essas mensagens. Assim, o número máximo de mensagens simultâneas sendo processadas por função é batchSize mais newBatchThreshold. Esse limite se aplica separadamente a cada função acionada por fila.

Se quiser evitar a execução paralela de mensagens recebidas em uma fila, você pode definir batchSize como 1. No entanto, essa configuração elimina a simultaneidade apenas enquanto seu aplicativo de função for executado em uma única máquina virtual (VM). Se o aplicativo de função for expandido para várias VMs, cada VM poderá executar uma instância de cada função acionada por fila.

O máximo batchSize é 32.
maxDequeueCount 5 O número de vezes para tentar processar uma mensagem antes de movê-la para a fila de venenos.
newBatchThreshold Tamanho do lote/2 Sempre que o número de mensagens que estão sendo processadas simultaneamente é reduzido a esse número, o tempo de execução recupera outro lote.

SendGrid

Configuração para a ligação de saída do SendGrid.

{
    "sendGrid": {
        "from": "Contoso Group <admin@contoso.com>"
    }
}    
Propriedade Predefinição Descrição
de n/d O endereço de e-mail do remetente em todas as funções.

serviceBus [en]

Configuração de definições para disparadores e ligações do Service Bus.

{ 
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00",
      "autoComplete": true
    }
}
Propriedade Predefinição Descrição
máximo de chamadas simultâneas 16 O número máximo de chamadas simultâneas para o retorno de chamada que a bomba de mensagem deve iniciar. Por padrão, o tempo de execução do Functions processa várias mensagens simultaneamente. Para direcionar o tempo de execução para processar apenas uma única fila ou mensagem de tópico de cada vez, defina maxConcurrentCalls como 1.
pré-fetchCount n/d O PrefetchCount padrão que será usado pelo ServiceBusReceiver subjacente.
autoRenewTimeout 00:05:00 A duração máxima dentro da qual o bloqueio de mensagem será renovado automaticamente.
Preenchimento automático verdadeiro Quando verdadeiro, o gatilho conclui o processamento da mensagem automaticamente na execução bem-sucedida da operação. Se for falso, é da responsabilidade da função completar a mensagem antes de retornar.

singleton

Definições de configuração para o comportamento do bloqueio de Singleton. Para mais informações, consulte o tópico do GitHub sobre suporte a singleton.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
Propriedade Predefinição Descrição
período de bloqueio 00:00:15 O período durante o qual são aplicados os bloqueios de nível de função. Os bloqueios renovam-se automaticamente.
ouvintePeríodoDeBloqueio 00:01:00 O período durante o qual os bloqueios do ouvinte são mantidos.
intervaloDeSondagemDeRecuperaçãoDeBloqueioDoListener 00:01:00 O intervalo de tempo usado para a recuperação do bloqueio do ouvinte se o bloqueio do ouvinte não puder ser adquirido na inicialização.
lockAcquisitionTimeout 00:01:00 A quantidade máxima de tempo que o sistema de execução tenta obter um bloqueio.
lockAcquisitionPollingInterval n/d O intervalo entre as tentativas de obtenção de bloqueio.

rastreio

Versão 1.x

Definições de configuração para logs que crias utilizando um objeto TraceWriter. Para saber mais, consulte [Registo em C#].

{
    "tracing": {
      "consoleLevel": "verbose",
      "fileLoggingMode": "debugOnly"
    }
}
Propriedade Predefinição Descrição
nível de consola informação O nível de rastreamento para registro em log do console. As opções são: off, error, warning, info, e verbose.
modoDeRegistoDeFicheiros debugOnly O nível de rastreio para registro de arquivos. As opções são never, always, debugOnly.

diretórios de monitorização

Um conjunto de diretórios de código compartilhado que devem ser monitorados quanto a alterações. Garante que, quando o código nesses diretórios é alterado, as alterações são refletidas nas suas funções.

{
    "watchDirectories": [ "Shared" ]
}

Próximos passos