Funções do Azure HTTP desencadeia e encaderna mente geral

Funções do Azure podem ser invocados através de pedidos HTTP para construir APIs sem servidor e responder a webhooks.

Ação Tipo
Executar uma função a partir de um pedido HTTP Acionador
Devolver uma resposta HTTP de uma função Ligação de saída

Instalar a extensão

O pacote de extensão NuGet que instala depende do modo C# que está a utilizar na sua aplicação de função:

As funções executam no mesmo processo que o anfitrião funções. Para saber mais, consulte as funções da biblioteca da classe Develop C# utilizando Funções do Azure.

A funcionalidade da extensão varia consoante a versão de extensão:

Adicione a extensão ao seu projeto instalando o pacote NuGet, versão 3.x.

Instalar pacote

Começando pela versão 2.x das Funções, a extensão HTTP faz parte de um pacote de extensão, especificado no seu ficheiro de projeto host.json. Para saber mais, consulte o pacote de extensão.

Esta versão da extensão já deve estar disponível para a sua aplicação de função com pacote de extensão, versão 2.x.

configurações host.json

Esta secção descreve as definições de configuração disponíveis para esta ligação nas versões 2.x ou superiores. As definições no ficheiro host.json aplicam-se a todas as funções numa instância de aplicação de função. O ficheiro host.json abaixo contém apenas as definições da versão 2.x+ para esta ligação. Para obter mais informações sobre as definições de configuração de aplicações de função nas versões 2.x e versões posteriores, consulte a referência host.json para Funções do Azure.

Nota

Para obter uma referência de host.json em Funções 1.x, consulte a referência host.json para Funções do Azure 1.x.

{
    "extensions": {
        "http": {
            "routePrefix": "api",
            "maxOutstandingRequests": 200,
            "maxConcurrentRequests": 100,
            "dynamicThrottlesEnabled": true,
            "hsts": {
                "isEnabled": true,
                "maxAge": "10"
            },
            "customHeaders": {
                "X-Content-Type-Options": "nosniff"
            }
        }
    }
}
Propriedade Predefinição Description
personalizadosHeaders nenhum Permite-lhe definir cabeçalhos personalizados na resposta HTTP. O exemplo anterior adiciona o X-Content-Type-Options cabeçalho à resposta para evitar o cheiro do tipo de conteúdo. Este cabeçalho personalizado aplica-se a todas as funções desacionadas http na aplicação de função.
dynamicThrottlesEnabled verdade* Quando ativado, esta definição faz com que o gasoduto de processamento do pedido verifique periodicamente os contadores de desempenho do sistema e connections/threads/processes/memory/cpu/etc , se algum desses contadores estiver acima de um limiar elevado incorporado (80%), os pedidos serão rejeitados com uma 429 "Too Busy" resposta até que o contador(s) volte aos níveis normais.
*O padrão num plano de consumo é true. O padrão num plano dedicado é false.
hsts não habilitado Quando isEnabled definido para true, o comportamento HTTP Strict Transport Security (HSTS) de .NET Core é aplicado, conforme definido na HstsOptions classe. O exemplo acima também define a maxAge propriedade para 10 dias. Propriedades suportadas são hsts :
PropriedadeDescrição
excluídosHostsUma série de nomes de anfitriões para os quais o cabeçalho HSTS não é adicionado.
incluiMusValor booleano que indica se o parâmetro de SubDomain do cabeçalho De Segurança Estrita-Transporte está ativado.
maxAgeCorda que define o parâmetro da idade máxima do cabeçalho De Segurança Estrita-Transporte.
pré-carregamentoBoolean que indica se o parâmetro de pré-carga do cabeçalho De Segurança Estrita-Transporte está ativado.
maxConcurrentRequests 100* O número máximo de funções HTTP que são executadas em paralelo. Este valor permite-lhe controlar a concordância, o que pode ajudar a gerir a utilização de recursos. Por exemplo, pode ter uma função HTTP que utiliza um grande número de recursos do sistema (memória/cpu/tomadas) de modo a causar problemas quando a conúvência é demasiado elevada. Ou pode ter uma função que faz pedidos de saída para um serviço de terceiros, e essas chamadas precisam de ser limitadas. Nestes casos, aplicar um acelerador aqui pode ajudar.
*O padrão para um plano de consumo é de 100. O padrão para um plano dedicado é ilimitado (-1).
maxOutstandingRequests 200* O número máximo de pedidos pendentes que são realizados em qualquer momento. Este limite inclui pedidos que estão em fila mas que não começaram a executar, bem como quaisquer execuções em curso. Quaisquer pedidos de entrada acima deste limite são rejeitados com uma resposta 429 "Demasiado Ocupado". Isso permite que os chamadores utilizem estratégias de relíndi baseadas no tempo, e também ajuda-o a controlar o máximo de atrasos de pedido. Isto apenas controla a fila que ocorre dentro do caminho de execução do anfitrião do script. Outras filas, como a fila de pedidos ASP.NET ainda estarão em vigor e não serão afetadas por esta definição.
*O padrão para um plano de consumo é de 200. O padrão para um plano dedicado é ilimitado (-1).
rotaPrefix api O prefixo da rota que se aplica a todas as rotas. Utilize uma corda vazia para remover o prefixo predefinido.

Passos seguintes