Creación de una función HTTP
![](https://support.huaweicloud.com/intl/es-us/usermanual-functiongraph/public_sys-resources/note_3.0-es-es.png)
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.
![](https://support.huaweicloud.com/intl/es-us/usermanual-functiongraph/public_sys-resources/note_3.0-es-es.png)
- 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:
- Ha preparado un paquete de Java JAR.
- Ha preparado un archivo bootstrap como el archivo de inicio de la función HTTP.
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
- Creación de una función.
- 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
- 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
- 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:
- Creación de un activador.
Las funciones HTTP solo admiten activadores APIG y APIC.
- En la página de detalles de la función, seleccione Configuration > Trigger y haga clic en Create Trigger.
- 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.
- 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.
- Publica la API.
- 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
- Haga clic en Edit en la esquina superior derecha. Se muestra la página Basic Information.
Figura 4 Edición de una API
- 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
- Haz clic en Publish API. En la página mostrada, haga clic en Publish.
- 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.
- Activar una función.
- 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.
- Seleccione Configuration > Trigger, copie la URL y acceda a ella mediante un navegador.
Figura 6 Copia de la URL
- 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.
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 |