Visão geral de gatilhos e associações HTTP do Azure Functions

O Azure Functions pode ser invocado por meio de solicitações HTTP para criar APIs sem servidor e responder a webhooks.

Ação Type
Executar uma função a partir de uma solicitação HTTP Acionador
Retornar uma resposta HTTP de uma função Vinculação de saída

Instalar a extensão

O pacote de extensão NuGet que você instala depende do modo C# que você está usando em seu aplicativo de função:

As funções são executadas em um processo de trabalho C# isolado. Para saber mais, consulte Guia para executar o C# Azure Functions em um processo de trabalho isolado.

A funcionalidade da extensão varia dependendo da versão da extensão:

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

Nota

Um pacote de extensão adicional é necessário para a integração do ASP.NET Core no .NET Isolated

Instalar pacote

A partir do Functions versão 2.x, a extensão HTTP faz parte de um pacote de extensão, que é especificado no arquivo de projeto host.json. Para saber mais, consulte Pacote de extensão.

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

host.json configurações

Esta seção descreve as definições de configuração disponíveis para essa associação nas versões 2.x e superiores. As configurações no arquivo host.json se aplicam a todas as funções em uma instância de aplicativo de função. O exemplo host.json arquivo abaixo contém apenas as configurações da versão 2.x+ para essa ligação. Para obter mais informações sobre definições de configuração de aplicativo de função nas versões 2.x e versões posteriores, consulte host.json referência para o Azure Functions.

Nota

Para obter uma referência de host.json no Functions 1.x, consulte host.json referência do Azure Functions 1.x.

{
    "extensions": {
        "http": {
            "routePrefix": "api",
            "maxOutstandingRequests": 200,
            "maxConcurrentRequests": 100,
            "dynamicThrottlesEnabled": true,
            "hsts": {
                "isEnabled": true,
                "maxAge": "10"
            },
            "customHeaders": {
                "X-Content-Type-Options": "nosniff"
            }
        }
    }
}
Property Predefinição Description
customHeaders nenhum Permite definir cabeçalhos personalizados na resposta HTTP. O exemplo anterior adiciona o X-Content-Type-Options cabeçalho à resposta para evitar a deteção de tipo de conteúdo. Esse cabeçalho personalizado se aplica a todas as funções acionadas por HTTP no aplicativo de função.
dynamicThrottlesEnabled verdadeiro* Quando habilitada, essa configuração faz com que o pipeline de processamento de solicitações verifique periodicamente os contadores de desempenho do sistema, como connections/threads/processes/memory/cpu/etc e se algum desses contadores estiver acima de um limite alto interno (80%), as solicitações serão rejeitadas com uma 429 "Too Busy" resposta até que o(s) contador(es) retorne(m) aos níveis normais.
*O padrão em um plano de consumo é true. O padrão em um plano dedicado é false.
HSTS não ativado Quando isEnabled é definido como true, o comportamento HSTS (HTTP Strict Transport Security) do .NET Core é imposto, conforme definido na HstsOptions classe. O exemplo acima também define a maxAge propriedade como 10 dias. As propriedades suportadas são hsts :
PropertyDescription
excluídosAnfitriõesUma matriz de cadeia de caracteres de nomes de host para os quais o cabeçalho HSTS não é adicionado.
incluirSubdomíniosValor booleano que indica se o parâmetro includeSubDomain do cabeçalho Strict-Transport-Security está habilitado.
maxIdadeString que define o parâmetro max-age do cabeçalho Strict-Transport-Security.
Pré-cargaBoolean que indica se o parâmetro preload do cabeçalho Strict-Transport-Security está habilitado.
maxConcurrentRequests 100* O número máximo de funções HTTP que são executadas em paralelo. Esse valor permite controlar a simultaneidade, o que pode ajudar a gerenciar a utilização de recursos. Por exemplo, você pode ter uma função HTTP que usa um grande número de recursos do sistema (memória/cpu/soquetes) de tal forma que causa problemas quando a simultaneidade é muito alta. Ou você pode ter uma função que faz solicitações de saída para um serviço de terceiros, e essas chamadas precisam ser limitadas. Nestes casos, aplicar uma limitação aqui pode ajudar.
*O padrão para um plano de consumo é 100. O padrão para um plano dedicado é ilimitado (-1).
maxOutstandingRequests 200* 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, bem como quaisquer 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 de script. Outras filas, como a fila de pedidos do ASP.NET, continuarão em vigor e não serão afetadas por esta definição.
*O padrão para um plano de consumo é 200. O padrão para um plano dedicado é ilimitado (-1).
routePrefix api O prefixo de rota que se aplica a todas as rotas. Use uma cadeia de caracteres vazia para remover o prefixo padrão.

Próximos passos