Diferencias entre OCI Functions y Fn Project

Descubra las diferencias entre OCI Functions y Fn Project.

En general, OCI Functions y Fn Project son muy similares. Sin embargo, existen algunas diferencias, como se detalla a continuación.

Funciones Basadas en Imágenes y Funciones de Sólo Código

Tanto Fn Project como OCI Functions soportan funciones basadas en imágenes. Para las funciones basadas en imágenes, la imagen de contenedor de la función se extrae de un registro de contenedor especificado. Consulte Creación de funciones basadas en imágenes a partir de imágenes de Docker existentes.

Las funciones de solo código son específicas de OCI Functions. Con las funciones de sólo código, se crea una función a partir de un archivo que contiene el código de función y las dependencias, sin crear ni publicar una imagen de contenedor por sí mismo. OCI Functions utiliza tiempos de ejecución gestionados para funciones de solo código. Consulte Creación de funciones a partir de archivos (funciones de solo código)

Diferencias en la autenticación al realizar llamadas a la API

Al utilizar la API de Oracle Cloud Infrastructure con OCI Functions, en la cabecera de la solicitud debe proporcionar lo siguiente:
  • El OCID del compartimento al que pertenece la función.
  • Información de la autenticación de Oracle Cloud Infrastructure.

Diferencias en las llamadas a funciones

Para llamar a una función desplegada en OCI Functions, debe especificar explícitamente un punto final de Oracle Cloud Infrastructure (a menos que esté utilizando la CLI de Fn Project).

Por ejemplo, https://fht7ns4mn2q.us-phoenix-1.functions.oci.oraclecloud.com/20181201/functions/ocid1.fnfunc.oc1.phx.aaaa____uxoa/actions/invoke.

Puede obtener el punto final adecuado realizando una llamada a la API, ya sea directamente o mediante el comando de la CLI de Fn Project:

fn inspect function <app-name> <function-name>

Parámetros de configuración de contexto adicionales en OCI Functions

Además de admitir parámetros de configuración contextual de Fn Project, OCI Functions también dispone de algunos parámetros adicionales, como se muestra en la siguiente tabla.

Parámetro adicional Definido en Valor Notas
provider Un archivo de configuración de contexto .yaml en ~/.fn/contexts oracle

Permite activar OCI Functions en lugar de la funcionalidad de Fn Project. Cuando provider se define en oracle, los siguientes parámetros son válidos:

  • oracle.compartment-id
  • oracle.profile

Consulte Creación de un contexto de CLI de Fn Project para conectarse a Oracle Cloud Infrastructure.

oracle.compartment-id Un archivo de configuración de contexto .yaml en ~/.fn/contexts <compartment -ocid>

Especifica el OCID del compartimento de Oracle Cloud Infrastructure que posee los recursos relacionados con la función.

Consulte Creación de un contexto de CLI de Fn Project para conectarse a Oracle Cloud Infrastructure.

oracle.profile Un archivo de configuración de contexto .yaml en ~/.fn/contexts <profile-name>

Especifica el perfil que se utilizará del archivo ~/.oci/config. Si no se define, se utiliza el perfil denominado por defecto.

Consulte Definición del contexto de la CLI de Fn Project con el parámetro oracle.profile

object_storage_bucket_name Un archivo de configuración de contexto .yaml en ~/.fn/contexts <bucket-name>

Opcional para funciones de sólo código. Especifica el cubo de Object Storage que se debe utilizar para los archivos de funciones cuando el flujo de desarrollador implícito de la CLI de Fn Project carga archivos de funciones de solo código en Object Storage. Se utiliza con object_storage_namespace.

Consulte Creación implícita de una función de solo código mediante los comandos fn init, fn build y fn deploy.

object_storage_namespace Un archivo de configuración de contexto .yaml en ~/.fn/contexts <object-storage-namespace>

Opcional para funciones de sólo código. Especifica el espacio de nombres de Object Storage para el cubo que se utilizará para los archivos de funciones cuando el flujo de desarrollador implícito de la CLI de Fn Project carga archivos de funciones de solo código en Object Storage. Se utiliza con object_storage_bucket_name.

Consulte Creación implícita de una función de solo código mediante los comandos fn init, fn build y fn deploy.

Uso de anotaciones

Al crear y ver recursos de OCI Functions mediante la CLI de Fn Project, normalmente utilizará parámetros para especificar valores. Por ejemplo, al utilizar fn create app <app-name> para crear una nueva aplicación, normalmente utilizará el parámetro --subnet-id <subnet-ocid> para especificar el OCID de la subred en la que se van a ejecutar funciones.

Para uso avanzado y compatibilidad con versiones anteriores, algunos comandos de la CLI de Fn Project también soportan el uso de anotaciones para identificar y especificar los recursos de Oracle Cloud Infrastructure asociados.

Por ejemplo:

  • Cuando utiliza la CLI de Fn Project para crear una nueva aplicación, utilizará el parámetro --annotation para especificar el OCID de las subredes en la que se debe ejecutar la función.
    fn create app <app-name> --annotation oracle.com/oci/subnetIds='["<subnet-ocid>"]'
  • Cuando utiliza la CLI de Fn Project para ver las propiedades de una función, el elemento annotations muestra el OCID del compartimento que posee la función.

Tenga en cuenta que a diferencia del resto de parámetros de configuración y variables del entorno, los valores de anotación no se pueden transferir como argumentos para ejecutar funciones.