Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2022-11-07 GMT+08:00

Creación de una función HTTP

Esta función solo es compatible con FunctionGraph v2.

Información general

Se diseñan las funciones HTTP para optimizar los servicios web. Puede enviar solicitudes HTTP a direcciones URL para activar la ejecución de la función. Las funciones HTTP solo admiten activadores APIG y APIC.

  • Las funciones HTTP no distinguen entre lenguajes de programación. El controlador debe estar establecido en el archivo bootstrap. Puede escribir directamente el comando startup y permitir el acceso a través del puerto 8000. La dirección IP enlazada es 127.0.0.1.
  • El archivo bootstrap es el archivo de inicio de una función HTTP. La función HTTP solo puede leer bootstrap como el nombre del archivo de inicio. Si el nombre del archivo no es bootstrap, el servicio no se puede iniciar. Para obtener más información, consulte el ejemplo del archivo bootstrap.
  • Las funciones HTTP soportan múltiples lenguajes de programación.
  • Esta sección utiliza Java como ejemplo. Para utilizar otro tiempo de ejecución, simplemente cambie la ruta de acceso del tiempo de ejecución. No es necesario cambiar la ruta del paquete de código. Para las rutas de otros tiempos de ejecución, consulte Tabla 1.

Prerrequisitos:

  1. Ha preparado un paquete de Java JAR.
  2. Ha preparado un archivo bootstrap como el archivo de inicio de la función HTTP.

    Ejemplo

    El contenido del archivo bootstrap es el siguiente:

    /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: ruta de Java.
    • /opt/function/code: ruta del paquete de código de función.
    • gsondemo-0.0.1-SNAPSHOT.jar: ejemplo de paquete JAR. La ruta de servicio es /user/get.

    Para utilizar otro tiempo de ejecución, cambie la ruta de acceso en tiempo de ejecución haciendo referencia a Tabla 1. No es necesario cambiar la ruta del paquete de código.

    Tabla 1 Rutas de acceso para diferentes tiempos de ejecución

    Tiempo de ejecución

    Ruta

    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

Procedimiento

  1. Creación de una función.
    1. Creación de una función HTTP. Para más detalles, consulte Creación de una función de evento. Preste especial atención a los siguientes parámetros:
      • FunctionGraph Version: v2 de FunctionGraph
      • Tipo de función: Función HTTP
    2. Carga del código. Por ejemplo, cargue un archivo ZIP desde OBS. Una vez completada la carga, haga clic en Deploy.

      Comprima el paquete JAR y el archivo de arranque, y elija Upload > OBS ZIP.

      Figura 1 Carga de un archivo ZIP desde OBS
  2. Creación de un activador.

    Las funciones HTTP solo admiten activadores APIG y APIC.

    1. En la página de detalles de la función, seleccione Configuration > Trigger y haga clic en Create Trigger.
    2. Configure la información del activador. A continuación se describe cómo crear un activador APIG. Para más detalles, consulte Uso de un activador APIG (dedicado).

      Figura 2 Creación de un activador

      En este ejemplo, Security Authentication se establece en None. Debe seleccionar un modo de autenticación basado en los requisitos del sitio.

      • App: Autenticación de AppKey y AppSecret. Este modo es de alta seguridad y se recomienda.
      • IAM: Autenticación de IAM. Este modo solo otorga permisos de acceso a los usuarios de IAM y es de seguridad media.
      • None: No hay autenticación. Este modo otorga permisos de acceso a todos los usuarios.
    3. Cuando se complete la configuración, haga clic en OK. Una vez creado el activador, API_test_http se generará en la consola de API Gateway.
  3. Publica la API.
    1. En la página de la pestaña Triggers, haga clic en un nombre de API para ir a la página de descripción general de la API.
      Figura 3 Activador APIG
    2. Haga clic en Edit en la esquina superior derecha. Se muestra la página Basic Information.
      Figura 4 Edición de una API
    3. Haga clic en Next. En la página Define API Request que se muestra, cambie Path a /user/get y haga clic en Finish.
      Figura 5 Definición de una solicitud de API
    4. Haz clic en Publish API. En la página mostrada, haga clic en Publish.
  4. Activar una función.
    1. Vaya a la consola de FunctionGraph y seleccione Functions > Function List en el panel de navegación y haga clic en la función HTTP creada para ir a su página de detalles.
    2. Seleccione Configuration > Trigger, copie la URL y acceda a ella mediante un navegador.
      Figura 6 Copia de la URL
    3. Consulte el resultado de la solicitud.
      Figura 7 Consulta del resultado de la solicitud

Encabezados de solicitud de función común

En la siguiente tabla se enumeran los campos de encabezado de solicitud predeterminados de una función HTTP.

Tabla 2 Campos de encabezado de solicitud predeterminados

Campo

Descripción

X-CFF-Request-Id

ID de la solicitud actual

X-CFF-Memory

Memoria asignada

X-CFF-Timeout

Duración del tiempo de espera de la función

X-CFF-Func-Version

Versión de la función

X-CFF-Func-Name

Nombre de la función

X-CFF-Project-Id

ID del proyecto

X-CFF-Package

Aplicación a la que pertenece la función

X-CFF-Region

Región actual