Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2022-11-16 GMT+08:00

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

  1. Você preparou um pacote Java JAR.
  2. Você preparou um arquivo de bootstrap como o arquivo de inicialização da função de HTTP.

    Example

    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

  1. Crie uma função.
    1. 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
    2. 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
  2. Crie um gatilho.

    As funções de HTTP suportam apenas gatilhos de APIG e APIC.

    1. Na página de detalhes da função, escolha Configuration > Trigger e clique em Create Trigger.
    2. 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.
    3. 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.
  3. Publique a API.
    1. 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
    2. Clique em Edit no canto superior direito. A página Basic Information é exibida.
      Figura 4 Edição de uma API
    3. 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
    4. Clique em Publish API. Na página exibida, clique em Publish.
  4. Acionar uma função.
    1. 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.
    2. Escolha Configuration > Trigger, copie a URL e acesse-a usando um navegador.
      Figura 6 Cópia do URL
    3. 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.

Tabela 2 Campos de cabeçalho de solicitação padrão

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