Info |
---|
Disponible desde la versión 3.2.0 |
Table of Contents | ||||
---|---|---|---|---|
|
Introducción
En esta guía explicaremos cómo utilizar el módulo Serverless de plataforma, para poder desplegar funciones de manera similar a la funcionalidad de los microservicios /wiki/spaces/PT/pages/1701773313.
Recomendamos echar un vistazo a esta guía para comprender los distintos conceptos que implica esta funcionalidad.
Aplicaciones
Listado
Si nos dirigimos dentro del menú de Desarrollo a Mis aplicaciones Serverless/ Gestión de aplicaciones Serverless (dependiendo del role que tengamos), iremos a un listado donde se mostrarán todas nuestras aplicaciones creadas.
...
Para cada función se mostraran datos en la tabla como: propietario, repositorio de Git, nº de funciones en la aplicación…
Creación
Para crear una nueva aplicación, tendremos que darle dentro del listado al icono del ‘+'.
A la hora de crear una nueva aplicaciones, se nos pedirán las credenciales de Git (GitHub o GitLab), y se nos preguntará si queremos crear un proyecto nuevo asociado a dicha aplicación, en caso negativo tendremos que especificar también la URL del repositorio Git existente.
...
Este repositorio Git creado o ya existente, será el repositorio de trabajo donde desarrollaremos las funciones de la aplicación.
NOTA: próximamente se incorporará una funcionalidad que permitirá crear las aplicaciones con varios arquetipos a modo de ejemplo sobre los que empezar a desarrollar las funciones.
Modificación
En la pantalla de modificación de aplicación, accesible desde el listado a través del icono del lápiz, podremos únicamente modificar la información relativa al nombre y la configuración de Git.
...
Borrado
La aplicación podrá ser borrada tanto desde el listado como desde las páginas de edición y vista.
Lo único que hay que tener en cuenta, es que aunque se borre tanto la aplicación como sus funciones, el repositorio de Git no se borrará.
Vista
Desde la página de vista podremos ver tanto la información general de la aplicación como el listado de funciones de la misma.
Información general:
Aquí encontraremos la información relativa al Git, así como las variables de entorno definidas en la aplicación.
Estas variables de entorno serán accesibles desde todas y cada una de las funciones de la aplicación, no obstante podrán ser sobrescritas a nivel de función.
...
Listado de funciones:
En la segunda pestaña de la vista, podremos ver un listado de funciones con datos relevantes como: versión de la función, memoria asignada, nombre, ruta relativa dentro del proyecto Git, endpoints de invocación…
...
Además desde este listado, podremos crear, editar, borrar y desplegar funciones.
Funciones
Creación
Desde la vista de una aplicación podemos crear nuevas funciones.
A la hora de crear una función se nos pedirá únicamente el nombre de la función y el path relativo dentro del repositorio Git. En el momento de la creación no es necesario que exista el código asociado a la función dentro del repositorio, pero sí tendrá que existir a la hora de desplegarla.
...
Estructura de código de una función
La estructura de la función vendrá dada por el lenguaje de programación que se vaya a utilizar, podrá ser un proyecto maven, java, go, python… Aquí hay una lista de los lenguajes soportados.
Sea cual sea el lenguaje, será necesario incluir en el directorio raíz de la función un fichero ‘func.yaml’, donde vendrá la información necesaria para la compilación, despliegue y ejecución de la función.
A continuación se muestra un ejemplo de estructura con una función maven y otra python.
...
Para completar el fichero func.yaml, recomendamos ver este documento dónde se explica cada propiedad.
Func.yaml de una función java
Code Block |
---|
schema_version: 20180708
name: ontology
version: 0.0.26
runtime: java11
build_image: fnproject/fn-java-fdk-build:jdk11-1.0.124
run_image: fnproject/fn-java-fdk:jre11-1.0.124
cmd: com.minsait.onesait.OntologyCalculationFn::handleRequest
config:
API_KEY: 26104876616f40908e3643ed1f6357d1
GRAYLOG_HOST: log-centralizer
GRAYLOG_PORT: "12201"
triggers:
- name: endpoint
type: http
source: /calculate
|
Func.yaml de una función python
Code Block |
---|
schema_version: 20180708
name: pythonfn
version: 0.0.1
runtime: python
entrypoint: /python/bin/fdk /function/func.py handler
memory: 256
config:
API_KEY: 26104876616f40908e3643ed1f6357d1
triggers:
- name: endpoint
type: http
source: /pythonfn
|
A continuación dejamos un zip con 3 ejemplos de funciones.
View file | ||
---|---|---|
|
Modificación
En la pantalla de modificación de una función podremos actualizar tanto el nombre de nuestra función como la ruta relativa dentro del repositorio.
Borrado
Podremos borrar una función (pero no el código del repositorio) desde el listado de funciones de una aplicación o desde la pantalla de modificación.
Despliegue
Cuando tengamos lista nuestra función, podremos desplegarla desde el icono del cohete, en el listado de funciones.
...
Este podrá tardar hasta 1 minuto. Una vez finalizado el despliegue, se recargará la página y veremos como se incrementa la versión de la función desplegada (quedará reflejado en el func.yaml del repositorio con un commit).
...
Invocación HTTP
Una vez desplegada la función, podremos invocarla via HTTP para ejecutarla/probarla. Existen dos tipos de endpoints invocables: auto-generados y triggers HTTP.
Los primeros los genera automáticamente el gestor de fn, y los segundos se definen desde el func.yaml
...
Los auto-generados siempre tienen la forma de /fn/invoke/{UUID} , y serán siempre peticiones POST.
Los triggers pueden ser invocados con el verbo GET o POST, en función de si nuestra función necesita recibir algún payload o no.
...