Creación de funciones de solo código

Descubra cómo crear funciones de solo código en OCI Functions seleccionando un tiempo de ejecución soportado y proporcionando un archivo de funciones.

Cree una función de solo código cuando desee desplegar una función desde un archivo en lugar de desde una imagen de contenedor.

Antes de crear la función, empaquete el origen de la función y las dependencias según el tiempo de ejecución seleccionado y la arquitectura de la aplicación OCI Functions.

Antes de crear una función de sólo código, necesita:

  • Acceso a una región de OC1 en la que hay funciones de solo código disponibles.
  • Una aplicación de OCI Functions existente.
  • Permisos para crear y actualizar recursos de Functions.
  • Tiempo de ejecución gestionado de OCI Functions soportado para la función de solo código: Go, Java, Node.js o Python.
  • Un archivo de funciones que cumple los requisitos de archivo para la arquitectura de aplicación y tiempo de ejecución seleccionada.
  • Si utiliza Object Storage como origen de archivo, acceda al cubo y al objeto que contiene el archivo.
  • Si se utiliza Object Storage como origen de archivo, una política que permite a la entidad de recurso de la aplicación OCI Functions leer el objeto de archivo.

Uso de la consola

Para crear una función de sólo código:

  1. En la página de lista Aplicaciones, seleccione la aplicación en la que desea crear la función. Si necesita ayuda para buscar la página de lista o la aplicación, consulte Listado de aplicaciones.
  2. Seleccione el separador Funciones.

    Se abre la página de lista Funciones. Todas las funciones de la aplicación seleccionada se muestran en una tabla.

  3. Seleccione Crear a partir de archivo y especifique los siguientes detalles:
    • Nombre: nombre de la nueva función. Evite introducir información confidencial.
    • Origen de archivo: especifique el archivo que desea utilizar especificando los siguientes detalles:
      • Seleccionar de Object Storage: seleccione el compartimento y el cubo de Object Storage que contiene el archivo y especifique el nombre y la versión (si corresponde) del archivo. El tamaño máximo de archivo es de 250 MB.
      • Cargar desde el dispositivo: seleccione el archivo de almacenamiento o arrastre y suelte el archivo en el cuadro. El tamaño máximo de archivo es de 25 MB.
      • Tiempo de ejecución: seleccione un tiempo de ejecución soportado para determinar el entorno de ejecución gestionado que utiliza OCI Functions.
      • Manejador: si el tiempo de ejecución que seleccione necesita un manejador, introduzca el manejador. Para algunos tiempos de ejecución, una función de solo código requiere un manejador. El manejador identifica el punto de entrada en el archivo de funciones al que llama OCI Functions cuando se llama a la función.

        Para las funciones de código solo de Java, Python y Node.js, debe especificar un manejador al crear la función.

        Para las funciones de sólo código Go, no especifique un valor de manejador independiente. El archivo debe contener un ejecutable de Linux denominado func en la ubicación necesaria.

  4. Especifique los siguientes detalles:

    • Memoria (en MB): la cantidad máxima de memoria que puede utilizar la función mientras se ejecuta.
    • Timeout de llamada síncrona (en segundos): cantidad máxima de tiempo durante la que se puede ejecutar la función cuando se llama en modo de sincronización. Para obtener más información sobre la llamada a funciones en modo de sincronización, consulte Invocación de funciones.
    • Configuración de llamada desasociada: especifique cómo ejecutar la función, cuando se llame en modo desasociado:
      • Timeout de llamada desasociada (en segundos): cantidad máxima de tiempo durante la que se puede ejecutar la función cuando se llama en modo desasociado.
      • Destino correcto: (opcional) cuando se llama a la función en modo Desasociado, el destino al que se escriben los registros de llamada cuando la llamada desasociada se realiza correctamente. Los destinos soportados para los resultados de las llamadas desasociadas son el servicio Notifications, el servicio Queue y el servicio Streaming. En función del destino que seleccione, se le pedirá que introduzca detalles adicionales (por ejemplo, en el caso del servicio Notifications, seleccione un compartimento de tema y un tema). Para escribir en el servicio de destino, OCI Functions necesita permisos de IAM. Si los permisos necesarios aún no existen, se le pedirá que confirme que desea que se cree una política de IAM adecuada (consulte Creación de políticas de IAM para destinos de fallo y éxito de llamadas desasociadas).
      • Destino de fallo: (opcional) cuando se llama a la función en modo Desasociado, el destino al que se escriben los registros de llamada cuando falla la llamada desasociada. Los destinos soportados para los resultados de las llamadas desasociadas son el servicio Notifications, el servicio Queue y el servicio Streaming. En función del destino que seleccione, se le pedirá que introduzca detalles adicionales (por ejemplo, en el caso del servicio Notifications, seleccione un compartimento de tema y un tema). Para escribir en el servicio de destino, OCI Functions necesita permisos de IAM. Si los permisos necesarios aún no existen, se le pedirá que confirme que desea que se cree una política de IAM adecuada (consulte Creación de políticas de IAM para destinos de fallo y éxito de llamadas desasociadas).

      Para obtener más información sobre la llamada a funciones en modo desasociado, consulte Invocación de funciones.

    • Activar simultaneidad aprovisionada: puede minimizar los retrasos iniciales al llamar a la función especificando un número mínimo de llamadas a funciones simultáneas para las que desea que la infraestructura de ejecución esté disponible constantemente.

      Si selecciona esta opción, debe introducir un valor para Unidades de simultaneidad aprovisionadas (PCU) para especificar el número mínimo de llamadas a funciones simultáneas. El valor real de las PCU que introduzca debe ser un múltiplo de 10. Si Memory se establece en 256 MB, el valor de las PCU debe ser un múltiplo de 20; si Memory se establece en 128 MB, el valor de las PCU debe ser un múltiplo de 40. El número total de PCU disponibles depende del tamaño de la función, del límite de arrendamiento y de si se ha activado la simultaneidad aprovisionada para otras funciones del arrendamiento. Para obtener más información sobre la simultaneidad aprovisionada, consulte Reducción de latencia inicial mediante simultaneidad aprovisionada.

    • Etiquetas: si tiene permisos para crear un recurso, también tiene permisos para aplicar etiquetas de formato libre a ese recurso. Etiquetas Para aplicar una etiqueta defined, debe tener permisos para utilizar el espacio de nombres de la etiqueta. Para obtener más información sobre el etiquetado, consulte Etiquetas de recursos. Si no está seguro de si desea aplicar etiquetas, omita esta opción o pregunte a un administrador. Puede aplicar etiquetas más tarde.
  5. Seleccione Crear para crear la función.

Se crea la función de sólo código. Puede llamarlo como cualquier otra función.

Uso de la interfaz de línea de comandos

Uso de la CLI de OCI

Después de empaquetar un archivo de funciones, puede utilizar la CLI de OCI para crear la función de solo código.

  • Cree una función de solo código que utilice un archivo en Object Storage introduciendo:

    oci fn function create archive-function object-storage fn-update-runtime-config --application-id <app-id> --bucket-name <bucket-name> --display-name <display-name> --functions-runtime-name <functions-runtime-name> --memory-in-mbs <memory> --namespace <namespace> --object-name <object-name>
  • Cree una función de solo código que utilice un archivo de almacenamiento cargado introduciendo:

    oci fn function create archive-function direct-archive fn-update-runtime-config --application-id <app-id> --display-name <display-name> --functions-runtime-name <functions-runtime-name> --memory-in-mbs <memory> --archive-file file:/<archive-file-path>

Para obtener una lista completa de los indicadores y de las opciones de las variables para el comando de OCI CLI, consulte la Referencia de línea de comando.

Uso de la CLI de Fn Project

Consejo

De vez en cuando, se lanzan nuevas versiones de la CLI de Fn Project. Le recomendamos comprobar periódicamente que la última versión está instalada. Para obtener más información, consulte Pasos para actualizar la CLI de Fn Project.

Al usar la CLI de Fn Project, puede crear una función de solo código de dos maneras:

Creación explícita de una función de solo código con el comando fn create

Después de empaquetar un archivo de funciones, puede usar la CLI de Fn Project para crear una función de solo código.

Para crear una función de solo código a partir de un archivo de almacenamiento cargado directamente, utilice la siguiente sintaxis:

fn create function <app-name> <function-name> \
  --code-only \
  --source-type direct \
  --source-file <path-to-function-source.zip> \
  --runtime-config-type function-update \
  --runtime-name <runtime-name> \
  --handler <handler>

Para crear una función de solo código a partir de un archivo en Object Storage, utilice la siguiente sintaxis:

fn create function <app-name> <function-name> \
  --code-only \
  --source-type object-storage \
  --bucket-name <bucket> \
  --namespace <namespace> \
  --object-name <object-name.zip> \
  --runtime-config-type function-update \
  --runtime-name <runtime-name> \
  --handler <handler>

Por ejemplo:

fn create function acmeapp acme-func \
  --code-only \
  --source-type object-storage \
  --bucket-name MyBucket \
  --namespace axaxnpcrorw5 \
  --object-name hello-java.zip \
  --runtime-config-type function-update \
  --runtime-name java21.ol9 \
  --handler com.example.fn.HelloFunction::handleRequest

Para mostrar los tiempos de ejecución disponibles, introduzca fn list runtimes. Para mostrar las versiones de tiempo de ejecución de un tiempo de ejecución, introduzca fn list runtime-versions --runtime-name <runtime-name>.

Para las funciones de sólo código Go, no especifique un valor de manejador independiente. El archivo debe contener un ejecutable de Linux denominado func en la ubicación necesaria.

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

Puede utilizar el flujo de desarrollador implícito de la CLI de Fn Project para crear una función de solo código desde un directorio de funciones local. En este flujo, la CLI de Fn Project utiliza los metadatos de la función en func.yaml y el contexto actual de la CLI de Fn Project para empaquetar y desplegar la función.

Utilice este flujo cuando desee que la CLI de Fn Project gestione el flujo de trabajo de despliegue y empaquetado del archivo local.

Antes de utilizar el flujo de desarrollador implícito, confirme que el contexto activo de la CLI de Fn Project esté definido en el compartimento y la región en los que desea crear la función. El contexto también puede afectar la forma en que la CLI de Fn Project maneja los archivos de funciones de solo código durante el despliegue.

Si desea utilizar Object Storage para archivos de funciones de solo código, especifique el nombre del cubo y el espacio de nombres de Object Storage en el contexto de la CLI de Fn Project. Por ejemplo, introduzca:

fn update context object_storage_bucket_name <source-bucket-name>
fn update context object_storage_namespace <object-storage-namespace>

Cuando los valores object_storage_bucket_name y object_storage_namespace están presentes en el contexto activo de la CLI de Fn Project, el flujo de desarrollador implícito puede utilizar Object Storage para archivos de funciones de solo código. Para usar la carga directa de archivos en su lugar, elimine estos valores del contexto o cambie a otro contexto de la CLI de Fn Project que no los incluya.

Para crear una función de solo código mediante el flujo de desarrollador implícito:

  1. Inicialice un directorio de funciones de sólo código introduciendo:

    fn init --code-only --runtime-name <runtime-name> --runtime-config-type function-update
  2. Cree el archivo de funciones introduciendo:

    fn build
  3. Despliegue la función introduciendo:

    fn deploy --app <app-name>
Nota

Si el contexto de la CLI de Fn Project está configurado para usar Object Storage para archivos de funciones de solo código:

  • Puede introducir fn deploy para crear el archivo de funciones, cargar el archivo en Object Storage y desplegar la función.
  • Puede introducir fn push para cargar simplemente el archivo en Object Storage sin desplegar la función.

Uso de la API

Ejecute la operación CreateFunction para crear una función.