Function Compute oferece suporte a gatilhos HTTP. Uma função com esse tipo de gatilho responde a requisições HTTP, processa-as e retorna os resultados ao chamador. Este tópico descreve como configurar um gatilho HTTP no console do Function Compute e invocar a função por meio de requisições HTTP.
Pré-requisitos
Etapa 1: Criar um gatilho
Acesse o console do Function Compute. No painel de navegação à esquerda, escolha .
Na barra de navegação superior, selecione uma região. Na página Functions, clique em na função desejada.
Na página de detalhes da função, clique em na aba Trigger e, em seguida, clique em Create Trigger.
-
No painel Create Trigger, configure os parâmetros e clique em OK.
Item de configuração
Operação
Exemplo
Trigger Type
Selecione HTTP Trigger.
HTTP Trigger
Name
Insira um nome personalizado para o gatilho.
http-trigger
Version or Alias
O padrão é LATEST. Para criar um gatilho para uma versão ou alias diferente, selecione-o na lista suspensa Version or Alias na página de detalhes da função. Para obter mais informações sobre versões e aliases, consulte Version management e Alias management.
LATEST
Request Method
Selecione os métodos HTTP permitidos para este gatilho.
GET, POST, PUT, DELETE
Disable Internet URL
Desativado por padrão — o gatilho fica acessível pelo endpoint público.
Quando ativado, nenhum endpoint público é fornecido. Requisições a ele retornam
access denied due to function internet URL is disable. O acesso por domínio personalizado não é afetado.No
Authentication Method
Defina como o Function Compute autentica as requisições HTTP:
-
No Authentication: Permite acesso não autenticado. Qualquer pessoa pode invocar a função via HTTP.
-
Signature Authentication: Exige autenticação por assinatura. Código de exemplo: Access an HTTP trigger endpoint with a signature.
-
Bearer Authentication: As requisições HTTP devem ser autenticadas. Para ver código de exemplo sobre autenticação Basic, consulte Configure Basic authentication for an HTTP trigger.
-
JWT Authentication: As requisições HTTP devem ser autenticadas usando JSON Web Token (JWT). Para mais informações, consulte Configure JWT authentication for an HTTP trigger.
-
Bearer Authentication: As requisições HTTP devem ser autenticadas usando autenticação Bearer. Para mais informações, consulte Enable Bearer authentication for an HTTP trigger.
No authentication
Após criar o gatilho, modifique suas configurações, como Version or Alias, Request Method e Authentication Method.
-
Etapa 2: Escrever e implantar o código
Escreva o código da função após criar o gatilho.
Na página de detalhes da função, clique em na aba Code. Escreva o código no editor e clique em Deploy. Consulte a documentação do handler do seu runtime para ver códigos de exemplo.
Etapa 3: Testar a função
Método 1: Usar o console para testar a função
Na página Function Details, clique em na aba Code.
-
Chamada síncrona
Clique em Test Function.
-
Invocação assíncrona
Clique em no ícone
à direita de Test Function, selecione Async Invocation e clique em Test Function.
Após a conclusão da execução, visualize o resultado na aba Code.
Método 2: Usar cURL para testar a função
Na página de detalhes da função, clique em na aba Trigger. Na coluna Configurations do gatilho HTTP desejado, obtenha o endpoint público.
-
Execute um comando cURL na linha de comando para testar a função.
Chamada síncrona
curl -v https://example.cn-shenzhen.fcapp.run/$pathInvocação assíncrona
curl -v -H "X-Fc-Invocation-Type: Async" https://example.cn-shenzhen.fcapp.run/$path
Método 3: (Não recomendado) Usar um navegador para testar a função
Na página de detalhes da função, clique em na aba Trigger. Na coluna Configurations do gatilho HTTP desejado, obtenha o endpoint público. Insira esse endpoint na barra de endereços do navegador e pressione Enter.
Após a conclusão da execução, o navegador retorna um arquivo contendo o resultado.
(Opcional) Usar o API Gateway para proteger a função
O Function Compute permite acesso anônimo a funções HTTP. Para evitar acessos não autorizados, ative a autenticação de identidade e conecte suas funções HTTP ao API Gateway. Utilize plug-ins do API Gateway (controle de acesso baseado em IP, JWT ou autenticação básica) para proteger suas funções.
No console do Function Compute, localize a função desejada. Na página de detalhes da função, clique em na aba Trigger. Na coluna Actions do gatilho HTTP alvo, clique em Modify.
No painel Edit Trigger, ative a chave Disable Internet URL.
Acesse o console do API Gateway e mude para a região onde a função HTTP está localizada.
-
Crie um grupo e uma API.
Uma API permite que aplicações externas invoquem o service da função de maneira especificada. Um grupo de APIs organiza e gerencia APIs relacionadas sob políticas de segurança e controles de tráfego unificados.
No console do API Gateway, escolha Manage APIs > API Groups no painel de navegação à esquerda. Em seguida, clique em Create Group.
Na caixa de diálogo Create Group, selecione uma opção em Instances:. Defina Group Name como
FC-Groupe BasePath como/. Depois, clique em Confirm.-
Na coluna Actions do grupo desejado, clique em Manage APIs. Em seguida, clique em Create API. Na seção Basic Information, configure os seguintes parâmetros e clique em Next.
Group: selecione FC-Group
API Name: insira FC-test
Security Authentication: selecione No Authentication
Na seção Define API Request, defina Request Path como
/, mantenha os valores padrão para os outros parâmetros e clique em Next.Na seção Define Backend Service, defina Trigger Path como o endpoint privado do gatilho do Function Compute, que é
https://example.cn-hangzhou-vpc.fcapp.run. Mantenha os valores padrão para os outros parâmetros e clique em Next.Na seção Define Response, mantenha as configurações padrão e clique em Create. Após criar a API, clique em Publish na coluna Actions da API.
-
Depure a API antes de publicar. Uma depuração bem-sucedida confirma a conexão entre o API Gateway e o Function Compute.
No console do API Gateway, escolha Call APIs > Debug no painel de navegação à esquerda.
Na página Debug, selecione a API
FC-testcriada e clique em Send Request. Se uma resposta de sucesso for retornada, a configuração estará completa.
Crie um plug-in Backend Signature. Defina
keycomo seuAccessKey IDesecretcomo seuAccessKey secrete vincule-o à API. Para mais informações, consulte Plug-in overview.-
Resolva seu nome de domínio para o domínio de segundo nível fornecido pelo API Gateway usando um registro CNAME.
No console do API Gateway, escolha Manage APIs > API Groups no painel de navegação à esquerda. Copie o domínio público de segundo nível.
-
Acesse sua página de gerenciamento de resolução de nomes de domínio. Para a Alibaba Cloud, a página de gerenciamento de resolução de nomes de domínio está em https://dns.console.alibabacloud.com. Na página da lista de domínios, encontre o domínio que deseja gerenciar e clique em no link correspondente para acessar sua página de gerenciamento.
NotaDomínios independentes na China continental devem ter um registro ICP de Alibaba Cloud ou ter seu registro ICP transferido para a Alibaba Cloud.
No console do API Gateway, escolha Manage APIs > API Groups no painel de navegação à esquerda. Vá para a seção Independent Domains. No canto inferior direito da página, localize o botão para vincular um nome de domínio. Clique em no botão, insira seu nome de domínio e clique em OK. O nome de domínio será vinculado com sucesso.
Após concluir essas etapas, acesse sua função HTTP pelo domínio personalizado. Você também pode vincular os seguintes plug-ins para aumentar a proteção:
Solucionar erros
Os erros se dividem em duas categorias principais.
Erros de requisição: a requisição não atende aos requisitos. Retorna um código de status 4xx.
Erros de função: problema no código da função. Retorna um código de status 5xx.
A tabela a seguir lista cenários comuns de erro e suas causas.
|
Tipo de erro |
Código de status HTTP |
Análise da causa |
Faturado |
|
Erro de requisição |
400 |
A requisição excede os limites permitidos. Para mais informações, consulte HTTP trigger overview. |
Não |
|
400 |
Falta na requisição o cabeçalho Date ou Authorization necessário para autenticação. |
Não |
|
|
403 |
A assinatura de Authorization é inválida. A assinatura é válida apenas por 15 minutos a partir do valor do cabeçalho Date — uma causa comum é o campo Date na requisição estar a mais de 15 minutos do horário atual. |
Não |
|
|
403 |
O método de requisição não é permitido pela configuração do gatilho (por exemplo, envio de POST quando apenas GET está configurado). |
Não |
|
|
404 |
Uma requisição HTTP foi enviada para uma função sem gatilho HTTP. |
Não |
|
|
Limitação de usuário |
429 |
Requisição limitada. Reduza a concorrência ou entre em contato com a equipe do Function Compute para aumentar seu limite. |
Não |
|
Erro de função |
502 |
A resposta da função excede os limites permitidos. Para mais informações, consulte HTTP trigger overview. |
Sim |
|
502 |
O código da função contém um erro de sintaxe ou uma exceção. |
Sim |
|
|
502 |
Uma requisição HTTP foi enviada para uma função que não utiliza um handler HTTP. |
Sim |
|
|
Erro de sistema |
500 |
Erro interno do Function Compute. Tente novamente a requisição. |
Não |
|
Limitação de sistema |
503 |
Limitação de sistema do Function Compute. Tente novamente com backoff exponencial. |
Não |
Se o problema persistir, entre no grupo do DingTalk (ID: 64970014484) para entrar em contato com os engenheiros do Function Compute e obter suporte.