Referência ao host.json para Azure Functions 2.x e versões posteriores

O arquivo de metadados host.json contém opções de configuração que afetam todas as funções de uma instância de aplicativo de funções. Este artigo lista as configurações que estão disponíveis a partir da versão 2.x do Azure Functions Runtime.

Observação

Este artigo serve para o Azure Functions 2.x e versões mais recentes. Para obter uma referência de host.json no Functions 1.x, confira Referência de host.json para o Azure Functions 1.x.

Outras opções de configuração do aplicativo de funções são gerenciadas dependendo de onde o aplicativo de funções é executado:

As configurações no host.json relacionadas às associações são aplicadas igualmente a cada função no aplicativo de funções.

Você também pode substituir ou aplicar configurações por ambiente usando as configurações de aplicativo.

Arquivo host.json de exemplo

O arquivo host.json de exemplo a seguir para a versão 2.x+ tem todas as opções possíveis especificadas (excluindo as de apenas para uso interno).

{
    "version": "2.0",
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    },
    "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        },
    "extensions": {
        "blobs": {},
        "cosmosDb": {},
        "durableTask": {},
        "eventHubs": {},
        "http": {},
        "queues": {},
        "sendGrid": {},
        "serviceBus": {}
    },
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    },
    "functions": [ "QueueProcessor", "GitHubWebHook" ],
    "functionTimeout": "00:05:00",
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    },
    "logging": {
        "fileLoggingMode": "debugOnly",
        "logLevel": {
          "Function.MyFunction": "Information",
          "default": "None"
        },
        "applicationInsights": {
            "samplingSettings": {
              "isEnabled": true,
              "maxTelemetryItemsPerSecond" : 20,
              "evaluationInterval": "01:00:00",
              "initialSamplingPercentage": 100.0, 
              "samplingPercentageIncreaseTimeout" : "00:00:01",
              "samplingPercentageDecreaseTimeout" : "00:00:01",
              "minSamplingPercentage": 0.1,
              "maxSamplingPercentage": 100.0,
              "movingAverageRatio": 1.0,
              "excludedTypes" : "Dependency;Event",
              "includedTypes" : "PageView;Trace"
            },
            "dependencyTrackingOptions": {
                "enableSqlCommandTextInstrumentation": true
            },
            "enableLiveMetrics": true,
            "enableDependencyTracking": true,
            "enablePerformanceCountersCollection": true,            
            "httpAutoCollectionOptions": {
                "enableHttpTriggerExtendedInfoCollection": true,
                "enableW3CDistributedTracing": true,
                "enableResponseHeaderInjection": true
            },
            "snapshotConfiguration": {
                "agentEndpoint": null,
                "captureSnapshotMemoryWeight": 0.5,
                "failedRequestLimit": 3,
                "handleUntrackedExceptions": true,
                "isEnabled": true,
                "isEnabledInDeveloperMode": false,
                "isEnabledWhenProfiling": true,
                "isExceptionSnappointsEnabled": false,
                "isLowPrioritySnapshotUploader": true,
                "maximumCollectionPlanSize": 50,
                "maximumSnapshotsRequired": 3,
                "problemCounterResetInterval": "24:00:00",
                "provideAnonymousTelemetry": true,
                "reconnectInterval": "00:15:00",
                "shadowCopyFolder": null,
                "shareUploaderProcess": true,
                "snapshotInLowPriorityThread": true,
                "snapshotsPerDayLimit": 30,
                "snapshotsPerTenMinutesLimit": 1,
                "tempFolder": null,
                "thresholdForSnapshotting": 1,
                "uploaderProxy": null
            }
        }
    },
    "managedDependency": {
        "enabled": true
    },
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    },
    "watchDirectories": [ "Shared", "Test" ],
    "watchFiles": [ "myFile.txt" ]
}

As seções seguintes deste artigo explicam cada propriedade de nível superior. Todas são opcionais, a menos que seja indicado o 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 Padrão Descrição
batchSize 1000 Número máximo de solicitações para agregação.
flushTimeout 00:00:30 Período de tempo máximo para agregação.

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

applicationInsights

Essa configuração é a filha de Registro em log.

Controla opções para o Application Insights, incluindo opções de amostragem.

Para obter a estrutura JSON completa, confira o arquivo host.json de exemplo anterior.

Observação

A amostragem de log pode fazer com que algumas execuções não apareçam na folha do Monitor do Application Insights. Para evitar a amostragem de log, adicione excludedTypes: "Request" ao valor samplingSettings.

Propriedade Padrão Descrição
samplingSettings N/D Confira applicationInsights.samplingSettings.
dependencyTrackingOptions N/D Confira applicationInsights.dependencyTrackingOptions.
enableLiveMetrics true Habilita a coleta de métricas em tempo real.
enableDependencyTracking true Habilita o acompanhamento de dependência.
enablePerformanceCountersCollection true Habilita a coleta de contadores de desempenho Kudu.
liveMetricsInitializationDelay 00:00:15 Somente para uso interno.
httpAutoCollectionOptions N/D Confira applicationInsights.httpAutoCollectionOptions.
snapshotConfiguration N/D Confira applicationInsights.snapshotConfiguration.

applicationInsights.samplingSettings

Para obter mais informações sobre essas configurações, confira Amostragem no Application Insights.

Propriedade Padrão Descrição
isEnabled true Habilita ou desabilita a amostragem.
maxTelemetryItemsPerSecond 20 O número de destino de itens de telemetria registrados por segundo em cada host do servidor. Se o aplicativo for executado em vários hosts, reduza esse valor para permanecer dentro da taxa de destino de tráfego geral.
evaluationInterval 01:00:00 O intervalo no qual a taxa atual de telemetria é reavaliada. Avaliação é executada como uma média móvel. Talvez você queira reduzir esse intervalo se a sua telemetria estiver sujeita a picos repentinos.
initialSamplingPercentage 100.0 A porcentagem de amostragem inicial aplicada no início do processo de amostragem para variar a porcentagem de forma dinâmica. Não reduza o valor enquanto estiver depurando.
samplingPercentageIncreaseTimeout 00:00:01 Quando o valor da porcentagem de amostragem é alterado, essa propriedade determina quanto tempo depois o Application Insights tem permissão para aumentar a porcentagem de amostragem novamente para capturar mais dados.
samplingPercentageDecreaseTimeout 00:00:01 Quando o valor da porcentagem de amostragem é alterado, essa propriedade determina quanto tempo depois o Application Insights tem permissão para reduzir a porcentagem de amostragem novamente para capturar menos dados.
minSamplingPercentage 0,1 Conforme a porcentagem de amostragem varia, essa propriedade determina a porcentagem de amostragem mínima permitida.
maxSamplingPercentage 100.0 Conforme a porcentagem de amostragem varia, essa propriedade determina a porcentagem de amostragem máxima permitida.
movingAverageRatio 1.0 No cálculo da média móvel, o peso atribuído ao valor mais recente. Use um valor menor ou igual a 1. Valores menores tornam o algoritmo menos reativo a mudanças repentinas.
excludedTypes nulo Uma lista delimitada por ponto-e-vírgula dos tipos que você não quer usar como amostra. Os tipos reconhecidos são Dependency, Event, Exception, PageView, Request e Trace. Todas as instâncias dos tipos especificados são transmitidas; os tipos não especificados são usados como amostra.
includedTypes nulo Uma lista delimitada por ponto-e-vírgula dos tipos que você deseja que sejam amostrados; uma lista vazia implica todos os tipos. O tipo listado em excludedTypes substitui os tipos listados aqui. Os tipos reconhecidos são Dependency, Event, Exception, PageView, Request e Trace. As instâncias dos tipos especificados são amostradas; os tipos não especificados ou implicados são transmitidos sem amostragem.

applicationInsights.httpAutoCollectionOptions

Propriedade Padrão Descrição
enableHttpTriggerExtendedInfoCollection true Habilita ou desabilita informações de solicitação HTTP estendidas para gatilhos HTTP: cabeçalhos de correlação de solicitação de entrada, suporte para chaves de várias instrumentações, método HTTP, caminho e resposta.
enableW3CDistributedTracing true Habilita ou desabilita o suporte do protocolo de rastreamento distribuído W3C (e ativa o esquema de correlação herdado). Habilitado por padrão se enableHttpTriggerExtendedInfoCollection for true. Se enableHttpTriggerExtendedInfoCollection for false, esse sinalizador se aplicará somente a solicitações de saída e não a solicitações de entrada.
enableResponseHeaderInjection true Habilita ou desabilita a injeção de cabeçalhos de correlação de vários componentes em respostas. Habilitar a injeção permite que o Application Insights crie um mapa do aplicativo para quando várias chaves de instrumentação são usadas. Habilitado por padrão se enableHttpTriggerExtendedInfoCollection for true. Essa configuração não se aplica se enableHttpTriggerExtendedInfoCollection for false.

applicationInsights.dependencyTrackingOptions

Propriedade Padrão Descrição
enableSqlCommandTextInstrumentation false Habilita a coleta do texto completo das consultas SQL, que é desabilitada por padrão. Para obter mais informações de como coletar texto de consultas SQL, confira Acompanhamento avançado de SQL para obter uma consulta SQL completa.

applicationInsights.snapshotConfiguration

Para obter mais informações sobre instantâneos, confira Depurar instantâneos em exceções nos aplicativos .NET e Solucionar problemas ao habilitar o Depurador de Instantâneos do Application Insights ou ao exibir instantâneos.

Propriedade Padrão Descrição
agentEndpoint nulo O ponto de extremidade usado para se conectar ao serviço de Depurador de Instantâneos do Application Insights. Se for null, será usado um ponto de extremidade padrão.
captureSnapshotMemoryWeight 0,5 O peso dado ao tamanho da memória do processo atual ao verificar se há memória suficiente para tirar um instantâneo. O valor esperado é maior que a fração apropriada 0 (0 < CaptureSnapshotMemoryWeight < 1).
failedRequestLimit 3 O limite do número de solicitações com falha para solicitar instantâneos antes que o processador de telemetria seja desabilitado.
handleUntrackedExceptions true Habilita ou desabilita o rastreamento de exceções que não são rastreadas pela telemetria do Application Insights.
isEnabled true Habilita ou desabilita a coleta de instantâneo
isEnabledInDeveloperMode false Habilita ou desabilita a coleta de instantâneo habilitada no modo de desenvolvedor.
isEnabledWhenProfiling true Habilita ou desabilita a criação de instantâneos, mesmo se o Application Insights Profiler estiver coletando uma sessão detalhada de criação de perfil.
isExceptionSnappointsEnabled false Habilita ou desabilita a filtragem de exceções.
isLowPrioritySnapshotUploader true Determina se o processo SnapshotUploader deve ser executado na prioridade abaixo do normal.
maximumCollectionPlanSize 50 O número máximo de problemas que podemos rastrear a qualquer momento em um intervalo de um a 9999.
maximumSnapshotsRequired 3 O número máximo de instantâneos coletados para um único problema, em um intervalo de um a 999. Um problema pode ser considerado uma instrução de lançamento individual no aplicativo. Depois que o número de instantâneos coletados para um problema atingir esse valor, nenhum instantâneo será coletado para esse problema até que os contadores de problema sejam redefinidos (confira problemCounterResetInterval) e o limite thresholdForSnapshotting seja atingido novamente.
problemCounterResetInterval 24:00:00 A frequência com que os contadores de problema devem ser redefinidos em um intervalo de um minuto a sete dias. Quando esse intervalo for atingido, todas as contagens de problemas serão redefinidas para zero. Problemas existentes que já atingiram o limite para fazer instantâneos, mas que ainda não geraram o número de instantâneos em maximumSnapshotsRequired, permanecem ativos.
provideAnonymousTelemetry true Determina se o uso anônimo e a telemetria de erro devem ser enviados à Microsoft. Essa telemetria poderá ser usada se você entrar em contato com a Microsoft para ajudar a solucionar problemas com o Depurador de Instantâneos. Ela também é usada para monitorar padrões de uso.
reconnectInterval 00:15:00 A frequência com que reconectamos ao ponto de extremidade do Depurador de Instantâneos. O intervalo permitido é de um minuto a um dia.
shadowCopyFolder nulo Especifica a pasta a ser usada para binários de cópia de sombra. Se não estiver definido, as pastas especificadas pelas seguintes variáveis de ambiente serão tentadas em ordem: Fabric_Folder_App_Temp, LOCALAPPDATA, APPDATA, TEMP.
shareUploaderProcess true Se for true, apenas uma instância de SnapshotUploader coletará e carregará instantâneos para vários aplicativos que compartilham o InstrumentationKey. Se definido como false, o SnapshotUploader será exclusivo para cada tupla (ProcessName, InstrumentationKey).
snapshotInLowPriorityThread true Determina se os instantâneos devem ou não ser processados em um thread de prioridade baixa de E/S. A criação de um instantâneo é uma operação rápida. No entanto, para carregar um instantâneo no serviço de Depurador de Instantâneos, ele deve ser gravado primeiro no disco como um minidespejo. Isso acontece no processo SnapshotUploader. Definir esse valor como true usa E/S de baixa prioridade para gravar o minidespejo, que não competirá com o aplicativo por recursos. Definir esse valor como false acelera a criação de minidespejo em detrimento da desaceleração do seu aplicativo.
snapshotsPerDayLimit 30 O número máximo de instantâneos permitido em um dia (24 horas). Esse limite também é imposto no lado do serviço do Application Insights. Os carregamentos têm uma taxa limitada a 50 por dia por aplicativo (por chave de instrumentação). Esse valor ajuda a impedir a criação de instantâneos adicionais que eventualmente serão rejeitados durante o carregamento. Um valor de zero remove totalmente o limite, o que não é recomendado.
snapshotsPerTenMinutesLimit 1 O número máximo de instantâneos permitido em 10 minutos. Embora não exista limite superior nesse valor, cuidado ao aumentá-lo nas cargas de trabalho de produção, pois isso pode afetar o desempenho do aplicativo. Criar um instantâneo é rápido, mas criar um minidespejo do instantâneo e carregá-lo para o serviço de Depurador de Instantâneos é uma operação muito mais lenta que competirá com o aplicativo por recursos (CPU e E/S).
tempFolder nulo Especifica a pasta para gravar minidespejos e arquivos de log do carregador. Se não for definido, %TEMP%\Dumps será usado.
thresholdForSnapshotting 1 A quantidade de vezes que o Application Insights precisa ver uma exceção antes de solicitar instantâneos.
uploaderProxy nulo Substitui o servidor proxy usado no processo de Snapshot Uploader. Talvez seja necessário usar essa configuração se o aplicativo se conectar à Internet por meio de um servidor proxy. O Snapshot Collector é executado no processo do aplicativo e usará as mesmas configurações de proxy. No entanto, o Snapshot Uploader é executado como um processo separado e talvez seja necessário configurar o servidor proxy manualmente. Se esse valor for null, o Snapshot Collector tentará detectar automaticamente o endereço do proxy ao examinar System.Net.WebRequest.DefaultWebProxy e passar o valor para o Snapshot Uploader. Se esse valor não for null, a detecção automática não será usada e o servidor proxy especificado aqui deverá ser usado no Snapshot Uploader.

blobs

As definições de configuração podem ser encontradas em Associações e gatilhos de blob de armazenamento.

console

Essa configuração é a filha de Registro em log. Ela controla o log do console quando não está no modo de depuração.

{
    "logging": {
    ...
        "console": {
          "isEnabled": false,
          "DisableColors": true
        },
    ...
    }
}
Propriedade Padrão Descrição
DisableColors false Suprime a formatação de log nos logs de contêiner no Linux. Defina como verdadeiro se você estiver vendo caracteres de controle ANSI indesejados nos logs de contêiner ao executar no Linux.
isEnabled false Habilita ou desabilita o log de console.

Azure Cosmos DB

A definição de configuração pode ser encontrada em Associações e gatilhos do Azure Cosmos DB.

customHandler

Definições de configuração para um manipulador personalizado. Para obter mais informações, confira Manipuladores personalizados do Azure Functions.

"customHandler": {
  "description": {
    "defaultExecutablePath": "server",
    "workingDirectory": "handler",
    "arguments": [ "--port", "%FUNCTIONS_CUSTOMHANDLER_PORT%" ]
  },
  "enableForwardingHttpRequest": false
}
Propriedade Padrão Descrição
defaultExecutablePath N/D O executável a ser iniciado como o processo de manipulador personalizado. É uma configuração necessária ao usar manipuladores personalizados e o valor é relativo à raiz do aplicativo de funções.
workingDirectory raiz do aplicativo de funções O diretório de trabalho no qual iniciar o processo de manipulador personalizado. É uma configuração opcional e o valor é relativo à raiz do aplicativo de funções.
argumentos N/D Uma matriz de argumentos de linha de comando para passar para o processo de manipulador personalizado.
enableForwardingHttpRequest false Se definido, todas as funções que consistem apenas em um gatilho HTTP e saída HTTP serão encaminhadas para a solicitação HTTP original em vez do conteúdo de solicitação do manipulador personalizado.

durableTask

A definição de configuração pode ser encontrada em Associações para Durable Functions.

simultaneidade

Habilita a simultaneidade dinâmica para associações específicas no aplicativo de funções. Para saber mais, confira Simultaneidade dinâmica.

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
Propriedade Padrão Descrição
dynamicConcurrencyEnabled false Habilita comportamentos de simultaneidade dinâmica para todos os gatilhos compatíveis com esse recurso, o que é desativado por padrão.
snapshotPersistenceEnabled true Os valores de simultaneidade aprendidos são gravados periodicamente no armazenamento para que novas instâncias comecem com esses valores em vez de começarem com 1 e precisarem refazer o aprendizado.

eventHub

As definições de configuração podem ser encontradas em Associações e gatilhos do Hub de Eventos.

extensions

Propriedade que retorna um objeto que contém todas as configurações específicas de associação, como http e eventHub.

extensionBundle

Os pacotes de extensão permitem que você adicione um conjunto compatível de extensões de associação de funções ao aplicativo de funções. Para saber mais, confira Pacotes de extensão para o desenvolvimento local.

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

As propriedades a seguir estão disponíveis em extensionBundle:

Propriedade Descrição
id O namespace dos pacotes de extensão do Microsoft Azure Functions.
version O intervalo de versão do pacote a ser instalado. O runtime do Functions sempre escolhe a versão máxima permitida definida pelo intervalo de versões. Por exemplo, um intervalo de valores version de [4.0.0, 5.0.0) permite todas as versões de pacote de 4.0.0 até antes de 5.0.0. Para obter mais informações, confira a notação de intervalo para especificar intervalos de versões.

funções

Uma lista de funções que o host de trabalho executa. Uma matriz vazia significa que todas as funções serão executadas. Para uso somente quando em execução localmente. Em aplicativos de funções no Azure, você deve seguir as etapas em Como desabilitar funções no Azure Functions para desabilitar funções específicas em vez de usar essa configuração.

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

functionTimeout

Indica a duração do tempo limite para todas as execuções de função. Ele segue o formato de cadeia de caracteres de intervalo de tempo.

Tipo de plano Padrão (mín.) Máximo (mín.)
Consumo 5 10
Premium1 30 -1 (não associado)2
Dedicado (Serviço de Aplicativo) 30 -1 (não associado)2

1 A execução do plano Premium só é garantida por 60 minutos, mas é, tecnicamente, desassociada.
2 Um valor de -1 indica a execução não associada, mas é recomendável manter um limite superior fixo.

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

healthMonitor

Definições de configuração para monitor de integridade de Host.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Propriedade Padrão Descrição
Habilitado true Especifica se o recurso está habilitado.
healthCheckInterval 10 segundos O intervalo de tempo entre as verificações de integridade em segundo plano.
healthCheckWindow 2 minutos Uma janela de tempo deslizante usada em conjunto com a configuração healthCheckThreshold.
healthCheckThreshold 6 Número máximo de vezes que a verificação de integridade pode falhar antes de uma reciclagem de host ser iniciada.
counterThreshold 0.80 O limite no qual um contador de desempenho será considerado não íntegro.

http

As definições de configuração podem ser encontradas em Associações e gatilhos HTTP.

registro em log

Controla os comportamentos de registro em log do aplicativo de funções, incluindo o Application Insights.

"logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "Function.MyFunction": "Information",
      "default": "None"
    },
    "console": {
        ...
    },
    "applicationInsights": {
        ...
    }
}
Propriedade Padrão Descrição
fileLoggingMode debugOnly Determina o comportamento de registro em log de arquivos ao serem executados no Azure. As opções são never, always e debugOnly. Essa configuração não é usada durante a execução local. Quando possível, você deve usar o Application Insights ao depurar suas funções no Azure. O uso de always afeta negativamente o comportamento de inicialização a frio do aplicativo e a taxa de transferência de dados. A configuração padrão debugOnly gera arquivos de log quando você está depurando usando o portal do Azure.
logLevel N/D Objeto que define a filtragem da categoria de log para funções no aplicativo. Essa configuração permite filtrar o registro para funções específicas. Para saber mais, confira Configurar níveis de registro em log.
console N/D A configuração de log do console.
applicationInsights N/D A configuração applicationInsights.

managedDependency

A dependência gerenciada é um recurso que atualmente só tem suporte com funções baseadas no PowerShell. Ele permite que as dependências sejam gerenciadas automaticamente pelo serviço. Quando a propriedade enabled é definida como true, o arquivo requirements.psd1 é processado. As dependências serão atualizadas quando qualquer versão secundária for lançada. Para obter mais informações, confira Dependência gerenciada no artigo sobre PowerShell.

{
    "managedDependency": {
        "enabled": true
    }
}

filas

As definições de configuração podem ser encontradas em Associações e gatilhos da fila de armazenamento.

sendGrid

A definição de configuração pode ser encontrada em Associações e gatilhos do SendGrid.

serviceBus

A definição de configuração pode ser encontrada em Associações e gatilhos do Barramento de Serviço.

singleton

Parâmetro de configuração para o comportamento de bloqueio de Singleton. Para obter mais informações, consulte Problema com o GitHub referente ao suporte de singleton.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
Propriedade Padrão Descrição
lockPeriod 00:00:15 O período em que ocorrem os bloqueios de nível de função. Os bloqueios têm renovação automática.
listenerLockPeriod 00:01:00 O período em que ocorrem os bloqueios de ouvinte.
listenerLockRecoveryPollingInterval 00:01:00 O intervalo de tempo usado para a recuperação do bloqueio de ouvinte caso não tenha sido possível adquirir um bloqueio de ouvinte durante a inicialização.
lockAcquisitionTimeout 00:01:00 A quantidade máxima de tempo em que o runtime tenta adquirir um bloqueio.
lockAcquisitionPollingInterval N/D O intervalo entre as tentativas de aquisição de bloqueio.

version

Esse valor indica a versão do esquema de host.json. A cadeia de caracteres de versão "version": "2.0" é necessária para um aplicativo de funções que segmente o runtime v2 ou uma versão mais recente. Não há alterações de esquema do host.json entre v2 e v3.

watchDirectories

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 sejam coletadas pelas funções.

{
    "watchDirectories": [ "Shared" ]
}

watchFiles

Uma matriz de um ou mais nomes de arquivos que são monitorados para alterações que exigem que o aplicativo seja reiniciado. Isso garante que quando o código desses arquivos for alterado, as atualizações sejam coletadas pelas funções.

{
    "watchFiles": [ "myFile.txt" ]
}

Substituir valores de host.json

Pode haver instâncias em que você deseja configurar ou modificar configurações específicas em um arquivo host.json para um ambiente específico, sem alterar o próprio arquivo host.json. Você pode substituir valores de host.json específicos ao criar um valor equivalente como uma configuração de aplicativo. Quando o runtime encontra uma configuração de aplicativo no formato AzureFunctionsJobHost__path__to__setting, ele substitui a configuração host.json equivalente na configuração localizada em path.to.setting no JSON. Quando expressa como uma configuração de aplicativo, o ponto (.) usado para indicar a hierarquia JSON é substituído por um sublinhado duplo (__).

Por exemplo, digamos que você queira desabilitar a amostragem do Application Insight ao fazer a execução no local. Se você alterou o arquivo host.json local para desabilitar o Application Insights, essa alteração poderá ser enviada por push ao aplicativo de produção durante a implantação. No entanto, a maneira mais segura de fazer isso é criar uma configuração de aplicativo como "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false" no arquivo local.settings.json. Você pode ver isso no seguinte arquivo local.settings.json, que não é publicado:

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "{storage-account-connection-string}",
        "FUNCTIONS_WORKER_RUNTIME": "{language-runtime}",
        "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false"
    }
}

A substituição das configurações de host.json usando variáveis de ambiente segue as convenções de nomenclatura do ASP.NET Core. Quando a estrutura do elemento inclui uma matriz, o índice da matriz numérica deve ser tratado como um nome de elemento adicional nesse caminho. Para obter mais informações, confira Nomenclatura de variáveis de ambiente.

Próximas etapas