Referência host.json das Funções do Azure 2.x e posterior

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 disponíveis a partir da versão 2.x do tempo de execução do Azure Functions.

Nota

Este artigo destina-se ao Azure Functions 2.x e versões posteriores. Para obter uma referência de host.json no Functions 1.x, consulte host.json referência do Azure Functions 1.x.

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

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

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

Exemplo de arquivo host.json

O arquivo de host.json de exemplo a seguir para a versão 2.x+ tem todas as opções possíveis especificadas (excluindo as que são 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 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"
    }
}
Property Predefinição Description
batchSize 1000 Número máximo de pedidos a agregar.
flushTimeout 00:00:30 Período máximo de tempo para agregar.

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

applicationInsights

Essa configuração é filha do registro.

Controla as opções do Application Insights, incluindo opções de amostragem.

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

Nota

A amostragem de registos pode fazer com que algumas execuções não apareçam no painel de monitorização do Application Insights. Para evitar a amostragem de logs, adicione excludedTypes: "Request" ao samplingSettings valor.

Property Predefinição Description
amostragemConfigurações n/d Consulte applicationInsights.samplingSettings.
dependênciaTrackingOptions n/d Consulte applicationInsights.dependencyTrackingOptions.
habilitar LiveMetrics verdadeiro Permite a coleta de métricas em tempo real.
enableDependencyTracking verdadeiro Permite o rastreamento de dependência.
enablePerformanceCountersCollection verdadeiro Habilita a coleta de contadores de desempenho Kudu.
liveMetricsInitializationDelay 00:00:15 Apenas para uso interno.
httpAutoCollectionOptions n/d Consulte applicationInsights.httpAutoCollectionOptions.
snapshotConfiguration n/d Consulte applicationInsights.snapshotConfiguration.

applicationInsights.samplingConfigurações

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

Property Predefinição Description
isEnabled verdadeiro Habilita ou desabilita a amostragem.
maxTelemetryItemsPerSecond 20 O número de destino de itens de telemetria registrados por segundo em cada host de servidor. Se o seu aplicativo for executado em muitos hosts, reduza esse valor para permanecer dentro da sua taxa de tráfego de destino geral.
avaliaçãoIntervalo 01:00:00 O intervalo no qual a taxa atual de telemetria é reavaliada. A avaliação é realizada como uma média móvel. Você pode querer encurtar esse intervalo se sua telemetria estiver sujeita a explosões repentinas.
initialSamplingPercentage 100.0 A percentagem de amostragem inicial aplicada no início do processo de amostragem para variar dinamicamente a percentagem. Não reduza o valor enquanto estiver depurando.
amostragemPercentageIncreaseTimeout 00:00:01 Quando o valor da porcentagem de amostragem muda, essa propriedade determina em quanto tempo depois o Application Insights tem permissão para aumentar a porcentagem de amostragem novamente para capturar mais dados.
amostragemPercentageDecreaseTimeout 00:00:01 Quando o valor da porcentagem de amostragem muda, essa propriedade determina em quanto tempo depois o Application Insights pode reduzir a porcentagem de amostragem novamente para capturar menos dados.
minSamplingPercentage 0.1 Como a percentagem de amostragem varia, esta propriedade determina a percentagem mínima de amostragem permitida.
maxSamplingPercentage 100.0 Como a percentagem de amostragem varia, esta propriedade determina a percentagem máxima de amostragem permitida.
movingAverageRatio 1.0 No cálculo da média móvel, o peso atribuído ao valor mais recente. Use um valor igual ou inferior a 1. Valores menores tornam o algoritmo menos reativo a mudanças repentinas.
excluídosTipos nulo Uma lista delimitada por ponto-e-vírgula de tipos que você não deseja que sejam amostrados. Os tipos reconhecidos são: Dependency, Event, Exception, , RequestPageView, e Trace. Todas as instâncias dos tipos especificados são transmitidas; Os tipos que não são especificados são amostrados.
incluídosTipos nulo Uma lista delimitada por ponto-e-vírgula dos tipos que você deseja que sejam amostrados; Uma lista vazia implica todos os tipos. Tipo listado em excludedTypes tipos de substituição listados aqui. Os tipos reconhecidos são: Dependency, Event, Exception, , RequestPageView, e Trace. As instâncias dos tipos especificados são amostradas; Os tipos que não são especificados ou implícitos são transmitidos sem amostragem.

applicationInsights.httpAutoCollectionOptions

Property Predefinição Description
enableHttpTriggerExtendedInfoCollection verdadeiro Habilita ou desabilita informações de solicitação HTTP estendidas para gatilhos HTTP: cabeçalhos de correlação de solicitação de entrada, suporte a chaves de multiinstrumentação, método HTTP, caminho e resposta.
enableW3CDistributedTracing verdadeiro Habilita ou desabilita o suporte ao protocolo de rastreamento distribuído W3C (e ativa o esquema de correlação herdado). Ativado por padrão se enableHttpTriggerExtendedInfoCollection for true. Se enableHttpTriggerExtendedInfoCollection for falso, esse sinalizador se aplica apenas a solicitações de saída, não a solicitações de entrada.
enableResponseHeaderInjection verdadeiro Habilita ou desabilita a injeção de cabeçalhos de correlação de vários componentes em respostas. A habilitação da injeção permite que o Application Insights construa um Mapa de Aplicativo para quando várias chaves de instrumentação forem usadas. Ativado por padrão se enableHttpTriggerExtendedInfoCollection for true. Essa configuração não se aplica se enableHttpTriggerExtendedInfoCollection for falsa.

applicationInsights.dependencyTrackingOptions

Property Predefinição Description
enableSqlCommandTextInstrumentation false Habilita a coleta do texto completo de consultas SQL, que é desabilitado por padrão. Para obter mais informações sobre como coletar texto de consulta SQL, consulte Rastreamento SQL avançado para obter consulta SQL completa.

applicationInsights.snapshotConfiguration

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

Property Predefinição Description
agentEndpoint nulo O ponto de extremidade usado para se conectar ao serviço Application Insights Snapshot Debugger. Se null, um ponto de extremidade padrão é usado.
captureSnapshotMemoryWeight 0.5 O peso dado ao tamanho atual da memória do processo ao verificar se há memória suficiente para tirar um instantâneo. O valor esperado é maior que 0 fração adequada (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 desativado.
handleUntrackedExceptions verdadeiro Habilita ou desabilita o rastreamento de exceções que não são rastreadas pela telemetria do Application Insights.
isEnabled verdadeiro Habilita ou desabilita a coleta de snapshots
isEnabledInDeveloperMode false Habilita ou desabilita a coleta de instantâneos está habilitada no modo de desenvolvedor.
isEnabledWhenProfiling verdadeiro Habilita ou desabilita a criação de instantâneos mesmo que o Application Insights Profiler esteja coletando uma sessão de criação de perfil detalhada.
isExceptionSnappointsEnabled false Habilita ou desabilita a filtragem de exceções.
isLowPrioritySnapshotUploader verdadeiro Determina se o processo SnapshotUploader deve ser executado com 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 como uma declaração de lançamento individual em seu aplicativo. Quando o número de snapshots coletados para um problema atingir esse valor, não serão coletados mais snapshots para esse problema até que os contadores de problemas sejam redefinidos (consulte problemCounterResetInterval) e o thresholdForSnapshotting limite seja atingido novamente.
problemCounterResetInterval 24:00:00 Com que frequência redefinir os contadores de problemas em um intervalo de um minuto a sete dias. Quando esse intervalo é atingido, todas as contagens de problemas são redefinidas para zero. Os problemas existentes que já atingiram o limite para fazer snapshots, mas ainda não geraram o número de snapshots no maximumSnapshotsRequired, permanecem ativos.
fornecerTelemetria Anônima verdadeiro Determina se a telemetria de erro e uso anônimo deve ser enviada para a Microsoft. Essa telemetria pode ser usada se você entrar em contato com a Microsoft para ajudar a solucionar problemas com o Depurador de Instantâneo. Ele também é usado para monitorar padrões de uso.
reconnectInterval 00:15:00 Com que frequência nos reconectamos ao ponto de extremidade do Depurador de Instantâneo. O intervalo permitido é de um minuto a um dia.
shadowCopyFolder nulo Especifica a pasta a ser usada para copiar binários de sombra. Se não estiver definida, as pastas especificadas pelas seguintes variáveis de ambiente serão tentadas em ordem: Fabric_Folder_App_Temp, LOCALAPPDATA, APPDATA, TEMP.
shareUploaderProcess verdadeiro Se verdadeiro, apenas uma instância de SnapshotUploader coletará e carregará instantâneos para vários aplicativos que compartilham a InstrumentationKey. Se definido como false, o SnapshotUploader será exclusivo para cada tupla (ProcessName, InstrumentationKey).
snapshotInLowPriorityThread verdadeiro Determina se os snapshots devem ou não ser processados em um thread de baixa prioridade de E/S. Criar um snapshot é uma operação rápida, mas, para carregar um snapshot no serviço Snapshot Debugger, ele deve primeiro ser gravado no disco como um minidump. Isso acontece no processo SnapshotUploader. Definir esse valor como true usa E/S de baixa prioridade para gravar o minidump, que não competirá com seu aplicativo por recursos. Definir esse valor como false acelera a criação de minidump às custas de tornar seu aplicativo mais lento.
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 uploads são limitados a 50 por dia por aplicativo (ou seja, por chave de instrumentação). Esse valor ajuda a evitar a criação de instantâneos adicionais que eventualmente serão rejeitados durante o carregamento. Um valor 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 haja limite superior para esse valor, tenha cuidado ao aumentá-lo em cargas de trabalho de produção, pois isso pode afetar o desempenho do seu aplicativo. Criar um snapshot é rápido, mas criar um minidump do snapshot e carregá-lo para o serviço Snapshot Debugger é uma operação muito mais lenta que competirá com seu aplicativo por recursos (CPU e E/S).
tempFolder nulo Especifica a pasta para gravar minidumps e arquivos de log do carregador. Se não estiver definido, % TEMP%\Dumps será usado.
thresholdForSnapshotting 1 Quantas vezes o Application Insights precisa ver uma exceção antes de pedir instantâneos.
uploaderProxy nulo Substitui o servidor proxy usado no processo do Snapshot Uploader. Poderá ter de utilizar esta definição se a sua aplicação se ligar à Internet através de um servidor proxy. O Snapshot Collector é executado dentro do processo do seu 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 nulo, o Snapshot Collector tentará detetar automaticamente o endereço do proxy examinando System.Net.WebRequest.DefaultWebProxy e passando o valor para o Snapshot Uploader. Se esse valor não for nulo, a deteção automática não será usada e o servidor proxy especificado aqui será usado no Snapshot Uploader.

blobs

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

consola

Essa configuração é filha do registro. Ele controla o registro do console quando não está no modo de depuração.

{
    "logging": {
    ...
        "console": {
          "isEnabled": false,
          "DisableColors": true
        },
    ...
    }
}
Property Predefinição Description
DisableColors false Suprime a formatação de log nos logs de contêiner no Linux. Defina como true se você estiver vendo caracteres de controle ANSI indesejados nos logs de contêiner durante a execução no Linux.
isEnabled false Habilita ou desabilita o registro em log do console.

Azure Cosmos DB

As definições de configuração podem ser encontradas em gatilhos e associações do Azure Cosmos DB.

customHandler

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

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

durávelTarefa

A definição de configuração pode ser encontrada em ligações para funções duráveis.

simultaneidade

Habilita a simultaneidade dinâmica para associações específicas em seu aplicativo de função. Para obter mais informações, consulte Simultaneidade dinâmica.

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
Property Predefinição Description
dynamicConcurrencyEnabled false Permite comportamentos de simultaneidade dinâmica para todos os gatilhos suportados por esse recurso, que está desativado por padrão.
snapshotPersistenceEnabled verdadeiro Os valores de simultaneidade aprendidos são periodicamente mantidos para armazenamento para que novas instâncias comecem a partir desses valores em vez de começar a partir de 1 e ter que refazer o aprendizado.

Hub de eventos

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

extensões

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

extensionBundle

Os pacotes de extensões permitem-lhe adicionar um conjunto compatível de extensões de ligação de Funções à sua aplicação de funções. Para saber mais, consulte Pacotes de extensão para desenvolvimento local.

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

As propriedades seguintes estão disponíveis em extensionBundle:

Property Description
id O espaço de nomes para os pacotes de extensões das Funções do Microsoft Azure.
version O intervalo de versões do pacote a ser instalado. O runtime das Funções escolhe sempre a versão máxima permitida definida pelo intervalo de versões. Por exemplo, um version intervalo de valores permite todas as versões do [4.0.0, 5.0.0) pacote de 4.0.0 até, mas não incluindo, 5.0.0. Para obter mais informações, veja a notação de intervalo para especificar intervalos de versões.

functions

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. Em aplicativos de função 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 timespart.

Tipo de plano Padrão (min) Máximo (min)
Consumo 5 10
Prémio1 30 -1 (ilimitado)2
Dedicado (Serviço de Aplicativo) 30 -1 (ilimitado)2

1 A execução do plano Premium é garantida apenas por 60 minutos, mas tecnicamente ilimitada.
2 Um valor de -1 indica execução ilimitada, mas recomenda-se manter um limite superior fixo.

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

monitor de saúde

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

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Property Predefinição Description
ativado verdadeiro Especifica se o recurso está habilitado.
healthCheckInterval 10 segundos O intervalo de tempo entre as verificações periódicas de integridade de antecedentes.
healthCheckWindow 2 minutos Uma janela de tempo deslizante usada em conjunto com a healthCheckThreshold configuração.
healthCheckThreshold 6 Número máximo de vezes que a verificação de integridade pode falhar antes que uma reciclagem de host seja 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 gatilhos e ligações http.

registos

Controla os comportamentos de log do aplicativo de função, incluindo o Application Insights.

"logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "Function.MyFunction": "Information",
      "default": "None"
    },
    "console": {
        ...
    },
    "applicationInsights": {
        ...
    }
}
Property Predefinição Description
fileLoggingMode debugOnly Determina o comportamento de log de arquivos ao executar no Azure. As opções são never, alwayse debugOnly. Essa configuração não é usada quando executada localmente. Quando possível, você deve usar o Application Insights ao depurar suas funções no Azure. O uso always afeta negativamente o comportamento de inicialização a frio e a taxa de transferência de dados do seu aplicativo. A configuração padrão debugOnly gera arquivos de log quando você está depurando usando o portal do Azure.
logNível n/d Objeto que define a filtragem de categoria de log para funções no aplicativo. Esta definição permite-lhe filtrar o registo de funções específicas. Para obter mais informações, consulte Configurar níveis de log.
consola 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ó é suportado com funções baseadas no PowerShell. Ele permite que as dependências sejam gerenciadas automaticamente pelo serviço. Quando a enabled propriedade é definida como true, o requirements.psd1 arquivo é processado. As dependências são atualizadas quando quaisquer versões secundárias são lançadas. Para obter mais informações, consulte Dependência gerenciada no artigo do PowerShell.

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

filas

As definições de configuração podem ser encontradas em Gatilhos e associações de fila de armazenamento.

sendGrid

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

serviceBus [en]

A definição de configuração pode ser encontrada em gatilhos e associações do Service Bus.

singleton

Definições de configuração para o comportamento de bloqueio Singleton. Para obter mais informações, consulte Problema 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"
    }
}
Property Predefinição Description
lockPeriod 00:00:15 O período durante o qual os bloqueios de nível de função são considerados. Os bloqueios renovam-se automaticamente.
ouvinteLockPeriod 00:01:00 O período pelo qual o ouvinte trava é tomado.
listenerLockRecoveryPollingInterval 00:01:00 O intervalo de tempo usado para a recuperação do bloqueio do ouvinte se um bloqueio do ouvinte não puder ser adquirido na inicialização.
lockAcquisitionTimeout 00:01:00 A quantidade máxima de tempo que o tempo de execução tentará adquirir um bloqueio.
lockAcquisitionPollingInterval n/d O intervalo entre as tentativas de aquisição de bloqueio.

versão

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

watchDiretórios

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 captadas pelas suas funções.

{
    "watchDirectories": [ "Shared" ]
}

watchFiles

Uma matriz de um ou mais nomes de arquivos que são monitorados para alterações que exigem que seu aplicativo seja reiniciado. Isso garante que quando o código nesses arquivos é alterado, as atualizações são captadas por suas funções.

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

Substituir valores host.json

Pode haver casos 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 criando um valor equivalente como uma configuração de aplicativo. Quando o tempo de execução encontra uma configuração de aplicativo no formato AzureFunctionsJobHost__path__to__setting, ele substitui a configuração equivalente host.json localizada no path.to.setting JSON. Quando expresso 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ê queria desabilitar a amostragem do Application Insight ao executar localmente. Se você alterou o arquivo host.json local para desabilitar o Application Insights, essa alteração poderá ser enviada por push para seu aplicativo de produção durante a implantação. A maneira mais segura de fazer isso é, em vez disso, criar uma configuração de aplicativo como "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false" no local.settings.json arquivo. Você pode ver isso no seguinte local.settings.json arquivo, 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 de configurações de host.json usando variáveis de ambiente segue as convenções de nomenclatura 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, consulte Nomenclatura de variáveis de ambiente.

Próximos passos