Gatilhos HTTP

No Cloud Functions, um gatilho HTTP permite que uma função seja executada em resposta a solicitações HTTP(S). Quando você especifica um gatilho HTTP para uma função, um URL para receber solicitações é atribuído a ela. Os gatilhos de HTTP oferecem suporte aos métodos de solicitação GET, POST, PUT, DELETE e OPTIONS.

No Cloud Functions (2nd gen), as solicitações para um URL de função sempre exigem HTTPS. No Cloud Functions (1st gen), você pode decidir se o HTTPS é obrigatório durante a implantação.

Por padrão, as solicitações para uma função com um gatilho HTTP exigem autenticação. É possível permitir chamadas não autenticadas durante a implantação. Consulte Como permitir a invocação de funções HTTP não autenticadas.

Use funções HTTP para implementar o Cloud Functions que podem processar solicitações HTTP(S) gerais.

Implantação

É possível especificar um gatilho HTTP ao implantar uma função. Consulte Implantar uma função do Cloud com instruções gerais sobre como implantar uma função e esta seção com mais informações específicas para configurar gatilhos HTTP durante a implantação.

gcloud

Se você estiver implantando com a gcloud CLI, as flags mostradas aqui serão usadas para configurar os gatilhos HTTP.

gcloud functions deploy YOUR_FUNCTION_NAME \
--trigger-http \
[--allow-unauthenticated] \
[--security-level=SECURITY_LEVEL] \
...
  • A flag --trigger-http especifica que a função usa um gatilho HTTP.
  • A flag --allow-unauthenticated especifica que a função pode ser chamada sem autenticação. Omitir essa flag significa que as chamadas para a função exigem autenticação, que é o padrão. Para mais informações, consulte Como autenticar para invocação.
  • (1st gen) A flag --security-level controla se o endpoint da função requer HTTPS. O valor secure-always indica que o HTTPS é necessário e que solicitações HTTP não SSL não são compatíveis. O valor secure-optional significa que HTTP e HTTPS são compatíveis. O padrão é secure-always.

Console

Para implantar usando o console do Google Cloud, configure um gatilho HTTP na seção Gatilho.

  • Para o Cloud Functions (2nd gen):
    1. Em HTTPS, no campo Autenticação, selecione uma opção se quiser permitir invocações não autenticadas da sua função. Por padrão, a autenticação é obrigatória. Para mais informações, consulte Como autenticar para invocação.
  • Para o Cloud Functions (1st gen):
    1. No campo Tipo de gatilho, selecione HTTP.
    2. No campo Autenticação, selecione uma opção se quiser permitir invocações não autenticadas da sua função. Por padrão, a autenticação é obrigatória. Para mais informações, consulte Como autenticar para invocação.
    3. Marque ou desmarque a caixa de seleção Requer HTTPS para controlar se o endpoint da função exige HTTPS. Se a opção não estiver selecionada, HTTP e HTTPS serão compatíveis.

URL da função

Após a implantação da função com um gatilho HTTP, é possível recuperar o URL atribuído a ela.

As funções da primeira e da segunda geração têm URLs atribuídos com o formato a seguir. Esses URLs têm um formato determinístico, o que significa que você pode prever qual será o URL antes de implantar a função:

https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME

As funções de segunda geração também têm um URL atribuído associado ao serviço subjacente do Cloud Run. Esses URLs não têm um formato determinístico, o que significa que, como o segundo campo é um hash aleatório, não é possível prever qual será o URL antes de implantar a função. Depois de implantar a função, o URL permanecerá estável:

https://FUNCTION_NAME-RANDOM_HASH-REGION.a.run.app

O URL cloudfunctions.net de uma função de segunda geração e o URL run.app se comportarão da mesma maneira. Eles são intercambiáveis.

É possível recuperar os URLs da função da seguinte maneira:

gcloud

  • Para o Cloud Functions (2a geração):

    gcloud functions describe YOUR_FUNCTION_NAME \
    --gen2 \
    --region=YOUR_FUNCTION_REGION \
    --format="value(serviceConfig.uri)"
    
  • Para o Cloud Functions (1a geração):

    gcloud functions describe YOUR_FUNCTION_NAME \
    --format="value(httpsTrigger.url)"
    

Console

  1. Acesse a página de visão geral do Cloud Functions no console do Google Cloud:

    Acessar o Cloud Functions

  2. Clique no nome da função com o URL que você quer recuperar.

  3. Clique na guia "Editar".

  4. Veja o URL da função na seção Gatilho.

Próximas etapas