Funcionamiento de OCI Functions

Descubra cómo funciona OCI Functions al crear o desplegar una función y al llamar a una función.

¿Qué sucede al crear o desplegar una función?

La forma de proporcionar el código de función depende del tipo de origen de función.

Para funciones basadas en imágenes, puede utilizar un único comando de la CLI de Fn Project para realizar las operaciones de despliegue en secuencia:

  • Creación de una imagen de contenedor a partir de la función
  • Proporcionar una definición de la función en un archivo func.yaml que incluya:
    • El tiempo máximo durante el que se puede ejecutar la función.
    • La cantidad máxima de memoria que la función puede consumir.
  • Transferencia de la imagen al registro de contenedor especificado
  • Carga de los metadatos de la función, incluidas las restricciones de memoria y tiempo, y un enlace a la imagen en el registro de contenedores, en el Servidor Fn
  • Agregar la función a la lista de funciones que se muestran en la consola

Para las funciones de solo código, proporcione un archivo que contenga el código de función y las dependencias, seleccione un tiempo de ejecución gestionado soportado y cree la función. OCI Functions valida el archivo y almacena la información del origen de la función. No puede crear, transferir ni gestionar una imagen de contenedor.

En el siguiente diagrama se muestra el proceso de despliegue de una función basada en imágenes en OCI Functions.

Esta imagen muestra el proceso de desplegar una función basada en imágenes: crear una imagen de contenedor a partir de una función, transferir la imagen a un registro de contenedor, crear un archivo func.yaml; cargar la definición de las funciones en el servidor Fn y visualizarlo en la consola.

Nota

Para las funciones basadas en imágenes, una vez que la imagen se ha cargado en el registro de contenedores, es responsable de actualizar la imagen. Por ejemplo, cuando se admiten nuevas versiones de idioma (para obtener más información, consulte Kits de desarrollo de funciones (FDK))

Para funciones de solo código, OCI Functions es propietaria de la aplicación de parches de tiempo de ejecución gestionada y publica versiones de tiempo de ejecución actualizadas. Puede controlar cuando una función de solo código se mueve a una versión de tiempo de ejecución compatible más reciente.

¿Qué ocurre al llamar a una función?

Puede llamar a una función que haya desplegado en OCI Functions desde:

  • La CLI de Fn Project.
  • Los SDK de Oracle Cloud Infrastructure.
  • Solicitudes HTTP firmadas al punto final de llamada de la función. Cada función tiene un punto final de llamada.
  • Otros servicios de Oracle Cloud (por ejemplo, disparados por un evento en el servicio Events) o desde servicios externos.

Cuando se invoca una función por primera vez, OCI Functions primero verifica la solicitud con el servicio IAM. Suponiendo que la solicitud supere las comprobaciones de autenticación y autorización, OCI Functions prepara el entorno de ejecución para la función y ejecuta el código de función.

Para las funciones basadas en imágenes, OCI Functions utiliza la definición de función para identificar la imagen de contenedor que se va a extraer del registro de contenedores y ejecuta la imagen como contenedor en una instancia de una subred asociada a la aplicación a la que pertenece la función.

Para las funciones de solo código, OCI Functions utiliza el archivo de funciones y el tiempo de ejecución gestionado para ejecutar la función.

Cuando se está ejecutando la función, se puede leer y escribir, en otros recursos y servicios que se estén ejecutando en la misma subred, por ejemplo, Base de datos como servicio. La función también puede leer y escribir en otros recursos compartidos (por ejemplo, Object Storage) y otros servicios de Oracle Cloud. Puede especificar el tiempo máximo que se permite ejecutar la función definiendo un timeout en la consola, la CLI, los SDK o la API.

OCI Functions almacena los logs de la función en Oracle Cloud Infrastructure o en un destino de registro externo.

Cuando la función ha acabado de ejecutarse y después de un período de inactividad, se elimina el entorno de ejecución. Si OCI Functions recibe otra llamada a la misma función antes de eliminar el entorno de ejecución, la solicitud se puede enrutar al mismo entorno de ejecución. Si OCI Functions recibe una llamada a una función que se está ejecutando actualmente, OCI Functions se escala horizontalmente para atender ambas solicitudes entrantes.

OCI Functions muestra información sobre las llamadas a la función en gráficos de métricas.

En el siguiente diagrama se muestra cómo las funciones llamadas interactúan con los servicios, herramientas y servicios externos de OCI.

En esta imagen, se muestra cómo las funciones llamadas interactúan con los servicios de la Oracle Cloud Infrastructure (IAM, Object Storage, DBaaS), herramientas (consola deOCI, CLI de Fn Project) y servicios externos (IaaS, PaaS, SaaS). La función se ejecuta en un entorno de ejecución asociado a la subred de la aplicación en una VCN.