Criação de uma função de HTTP
Este recurso é suportado apenas pelo FunctionGraph v2.
Visão geral
As funções de HTTP são projetadas para otimizar os serviços da web. Você pode enviar solicitações de HTTP para os URL para acionar a execução da função. As funções de HTTP suportam apenas gatilhos de APIG e APIC.
- As funções de HTTP não fazem distinção entre linguagens de programação. O manipulador deve ser definido no arquivo bootstrap. Você pode escrever diretamente o comando de inicialização e permitir o acesso pela porta 8000. O endereço IP vinculado é 127.0.0.1.
- O arquivo bootstrap é o arquivo de inicialização da função de HTTP. A função de HTTP só pode ler bootstrap como o nome do arquivo de inicialização. Se o nome do arquivo não for bootstrap, o serviço não poderá ser iniciado. Para obter mais informações, consulte o exemplo do arquivo bootstrap.
- As funções de HTTP suportam várias linguagens de programação.
- Esta seção usa Java como exemplo. Para usar outro tempo de execução, basta alterar o caminho do tempo de execução. O caminho do pacote de código não precisa ser alterado. Para os caminhos de outros tempos de execução, veja Tabela 1.
Pré-requisitos
- Você preparou um pacote Java JAR.
- Você preparou um arquivo de bootstrap como o arquivo de inicialização da função de HTTP.
O conteúdo do arquivo bootstrap é o seguinte:
/opt/function/runtime/java8/rtsp/jre/bin/java -jar -Dfile.encoding=utf-8 /opt/function/code/gsondemo-0.0.1-SNAPSHOT.jar
- /opt/function/runtime/java8/rtsp/jre/bin/java: Caminho Java.
- /opt/function/code: caminho do pacote de código de função.
- gsondemo-0.0.1-SNAPSHOT.jar: exemplo de pacote JAR. O caminho do serviço é /user/get.
Para usar outro tempo de execução, altere o caminho do tempo de execução referindo-se a Tabela 1. O caminho do pacote de código não precisa ser alterado.
Tabela 1 Caminhos para diferentes tempos de execução Tempo de execução
Caminho
Java 8
/opt/function/runtime/java8/rtsp/jre/bin/java
Java 11
/opt/function/runtime/java11/rtsp/jre/bin/java
Node.js 6
/opt/function/runtime/nodejs6.10/rtsp/nodejs/bin/node
Node.js 8
/opt/function/runtime/nodejs8.10/rtsp/nodejs/bin/node
Node.js 10
/opt/function/runtime/nodejs10.16/rtsp/nodejs/bin/node
Node.js 12
/opt/function/runtime/nodejs12.13/rtsp/nodejs/bin/node
Node.js 14
/opt/function/runtime/nodejs14.18/rtsp/nodejs/bin/node
Python 2.7
/opt/function/runtime/python2.7/rtsp/python/bin/python
Python 3.6
/opt/function/runtime/python3.6/rtsp/python/bin/python3
Python 3.9
/opt/function/runtime/python3.9/rtsp/python/bin/python3
PHP 7.3
/opt/function/runtime/php7.3/rtsp/php/bin/php
Procedimento
- Crie uma função.
- Crie uma função de HTTP. Para mais detalhes, veja Criação de uma função de evento. Preste atenção especial aos seguintes parâmetros:
- FunctionGraph Version: FunctionGraph v2
- Function Type: Função de HTTP
- Carregue o código. Por exemplo, carregue um arquivo ZIP do OBS. Após a conclusão do upload, clique em Deploy.
Compacte o pacote JAR e o arquivo de bootstrap e escolha Upload > OBS ZIP.
Figura 1 Carregamento de um arquivo ZIP do OBS
- Crie uma função de HTTP. Para mais detalhes, veja Criação de uma função de evento. Preste atenção especial aos seguintes parâmetros:
- Crie um gatilho.
As funções de HTTP suportam apenas gatilhos de APIG e APIC.
- Na página de detalhes da função, escolha Configuration > Trigger e clique em Create Trigger.
- Configure as informações do gatilho. A seguir, descrevemos como criar um gatilho de APIG. Para mais detalhes, veja Uso de um gatilho de APIG (dedicado).
Figura 2 Criação de um gatilho
Neste exemplo, Security Authentication é ajustada a None. Você precisa selecionar um modo de autenticação com base nos requisitos do site.
- App: Autenticação AppKey e AppSecret. Este modo é de alta segurança e é recomendado.
- IAM: Autenticação IAM. Esse modo concede permissões de acesso apenas a usuários do IAM e é de segurança média.
- None: Sem autenticação. Este modo concede permissões de acesso a todos os usuários.
- Quando a configuração estiver concluída, clique em OK. Depois que o gatilho for criado, API_test_http será gerado no console do API Gateway.
- Publique a API.
- Na página de guia Triggers, clique em um nome de API para ir para a página de visão geral da API.
Figura 3 Gatilho de APIG
- Clique em Edit no canto superior direito. A página Basic Information é exibida.
Figura 4 Edição de uma API
- Clique em Next. Na página Define API Request exibida, altere Path para /user/get e clique em Finish.
Figura 5 Definição de uma solicitação de API
- Clique em Publish API. Na página exibida, clique em Publish.
- Na página de guia Triggers, clique em um nome de API para ir para a página de visão geral da API.
- Acionar uma função.
- Acesse o console do FunctionGraph, selecione Functions > Function List no painel de navegação e clique na função HTTP criada para acessar a página de detalhes.
- Escolha Configuration > Trigger, copie a URL e acesse-a usando um navegador.
Figura 6 Cópia do URL
- Visualize o resultado da solicitação.
Figura 7 Visualização do resultado da solicitação
Cabeçalhos de Solicitação de Função Comum
A tabela a seguir lista os campos de cabeçalho de solicitação padrão de uma função HTTP.
Campo |
Descrição |
---|---|
X-CFF-Request-Id |
ID da solicitação atual |
X-CFF-Memory |
Memória alocada |
X-CFF-Timeout |
Duração do timeout da função |
X-CFF-Func-Version |
Versão da função |
X-CFF-Func-Name |
Nome da função |
X-CFF-Project-Id |
ProjectId |
X-CFF-Package |
Aplicativo ao qual a função pertence |
X-CFF-Region |
Região atual |