Configure um gatilho HTTP no console do Function Compute e invoque a função com requisições HTTP.
Pré-requisitos
Etapa 1: Criar um gatilho
Faça login no 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 na função desejada.
Na página de detalhes da função, clique 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. Consulte Gerenciamento de versões e Gerenciamento de aliases.
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 retornam
access denied due to function internet URL is disable. O acesso por domínio personalizado não é afetado.Não
Authentication Method
Selecione 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: Acessar um endpoint de gatilho HTTP com assinatura.
-
Bearer Authentication: As requisições HTTP devem ser autenticadas. Para ver código de exemplo sobre autenticação Basic, consulte Configurar autenticação Basic para um gatilho HTTP.
-
JWT Authentication: As requisições HTTP devem ser autenticadas usando JSON Web Token (JWT). Para mais informações, consulte Configurar autenticação JWT para um gatilho HTTP.
-
Bearer Authentication: As requisições HTTP devem ser autenticadas usando autenticação Bearer. Para mais informações, consulte Ativar autenticação Bearer para um gatilho HTTP.
Sem autenticação
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 na aba Code. Escreva o código no editor e clique em Deploy. Consulte a documentação do handler do seu runtime para obter 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 na aba Code.
-
Chamada síncrona
Clique em Test Function.
-
Invocação assíncrona
Clique 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 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
Substitua
https://example.cn-shenzhen.fcapp.runpelo endpoint público do seu gatilho e$pathpelo nome da operação da API.curl -v https://example.cn-shenzhen.fcapp.run/$pathNotaInvocar uma função web: Tome o Flask como exemplo. Para testar uma função Python cuja rota está definida como
@app.route('/test'), substitua$pathportest. Para testar uma função Python cuja rota está definida como@app.route('/'), chame diretamente o endpoint público do gatilho HTTP.Invocar uma função de evento: Chame diretamente o endpoint público do gatilho HTTP.
Após a execução, o Function Compute retorna o resultado.
Invocação assíncrona
Substitua
https://example.cn-shenzhen.fcapp.runpelo endpoint público do seu gatilho e$pathpelo nome da operação da API.curl -v -H "X-Fc-Invocation-Type: Async" https://example.cn-shenzhen.fcapp.run/$pathNotaInvocar uma função web: Tome o Flask como exemplo. Para testar uma função Python cuja rota está definida como
@app.route('/test'), substitua$pathportest. Para testar uma função Python cuja rota está definida como@app.route('/'), chame diretamente o endpoint público do gatilho HTTP.Invocar uma função de evento: Chame diretamente o endpoint público do gatilho HTTP.
Após a execução, o Function Compute retorna o resultado do recebimento da requisição. O código de status
202indica que a requisição foi aceita; outros códigos indicam erro de invocação. Consulte Perguntas frequentes (Solução de problemas).
Método 3: (Não recomendado) Usar um navegador para testar a função
Na página de detalhes da função, clique 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
Por padrã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 na aba Trigger. Na coluna Actions do gatilho HTTP alvo, clique em Modify.
No painel Edit Trigger, ative a chave Disable Internet URL.
Faça login no console do API Gateway e mude para a região onde a função HTTP está localizada.
-
Crie um grupo e uma API.
Um grupo de APIs organiza 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.

-
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. Configure os parâmetros conforme mostrado na figura 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 as informações mostradas na figura a seguir forem retornadas, a configuração foi bem-sucedida.
-
Crie um plug-in Backend Signature. Defina
keycomo seuAccessKey IDesecretcomo seuAccessKey secrete vincule-o à API. Consulte Visão geral de plug-ins.
-
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://dnsnext.console.alibabacloud.com. Na página de lista de domínios, localize o domínio que deseja gerenciar e clique no link do nome de domínio para acessar sua página de gerenciamento.
NotaDomínios independentes na China continental devem ter um registro ICP da 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. Acesse a seção Independent Domains. No canto inferior direito da página, localize o botão para vincular um nome de domínio. Clique 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 estas 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 erros 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. Consulte Visão geral do gatilho HTTP. |
Não |
|
400 |
A requisição não contém o cabeçalho Date ou Authorization necessário para autenticação. |
Não |
|
|
403 |
A assinatura 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 que não possui um 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. Consulte Visão geral do gatilho HTTP. |
Sim |
|
502 |
O código da função apresenta erro de sintaxe ou 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 repetir 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.