Creación y despliegue de funciones basadas en imágenes mediante la CLI de Fn Project

Descubra cómo crear y desplegar funciones basadas en imágenes en OCI Functions mediante los comandos de la CLI de Fn Project.

Puede utilizar comandos de la CLI de Fn Project para crear y desplegar funciones basadas en imágenes en OCI Functions.

Nota

En este tema, se describe la creación y el despliegue de funciones basadas en imágenes mediante la CLI de Fn Project. Para crear una función a partir de un archivo sin crear ni publicar una imagen de contenedor, consulte Creating Functions from Archives (Code-only Functions).

Consejo

Si no puede completar correctamente uno de los pasos de este tema, revise las soluciones para problemas comunes (consulte Solución de Problemas de OCI Functions).

Uso de comandos de la CLI de Fn Project

Consejo

De vez en cuando, se lanzan nuevas versiones de la CLI de Fn Project. Le recomendamos que compruebe regularmente que la última versión está instalada. Para obtener más información, consulte Steps to upgrade the Fn Project CLI.

Para crear y desplegar la función basada en imágenes en OCI Functions mediante los comandos de CLI de Fn Project:

  1. Confirme que ha completado los pasos de las guías de inicio rápido de Functions para las funciones basadas en imágenes.
  2. Si la aplicación a La que desea agregar la función aún no existe en OCI Functions, créela ahora con la CLI de Fn Project o la consola. Por ejemplo, puede crear una nueva aplicación denominada acmeapp. Consulte Creación de aplicaciones.

  3. Conéctese al entorno de desarrollo como desarrollador de funciones.

  4. En una ventana de terminal, cambie el directorio que contiene el código de la función.

  5. Para inicializar la función, introduzca:

    fn init --runtime <runtime-language> <function-name>

    donde:

    • <runtime-language> es uno de los lenguajes de tiempo de ejecución soportados para las funciones basadas en imágenes (actualmente se admiten go, java, node, python, ruby y dotnet (para C#)
    • <function-name> es el nombre que se utilizará como nombre de la función. Si no especifica un nombre de la función, se utiliza el nombre del directorio actual (en minúsculas). Evite introducir información confidencial.

    Por ejemplo:

    fn init --runtime java acme-func

    Se crea un directorio con el nombre de función especificado que contiene:

    • Un archivo de definición de la función denominado func.yaml que contiene la cantidad mínima de información necesaria para crear y ejecutar la función. Consulte la Documentación de Fn Project para conocer los parámetros adicionales que puede incluir en un archivo func.yaml.
    • Un directorio /src que contiene archivos y directorios de origen.
    • Un archivo de configuración de Maven denominado pom.xml que especifica los artefactos y las dependencias del proyecto necesarios para compilar la función desde los archivos de origen.

    Tenga en cuenta que según el lenguaje de tiempo de ejecución que especifique, el comando fn init podría crear un directorio /example que contenga código para una aplicación Hola mundo. Como práctica recomendada, probablemente desee suprimir el directorio /example.

  6. Cambie el directorio al directorio creado recientemente.
  7. Introduzca el siguiente comando de Fn Project único para crear la función y sus dependencias como una imagen de "Docker", transfiera la imagen al registro de "Docker" especificado y despliegue la función basada en imágenes en "OCI Functions":

    fn -v deploy --app <app-name>

    donde <app-name> es el nombre de la aplicación en OCI Functions a la que desea agregar la función. Por ejemplo:

    fn -v deploy --app acmeapp

    La opción -v simplemente muestra más detalles sobre lo que están haciendo los comandos de Fn Project (consulte Uso del CLI de Fn Project con OCI Functions).

    También puede crear, transferir y desplegar la función basada en imágenes mediante comandos independientes de la CLI de Fn Project, en lugar del único comando fn deploy.

    Si va a agregar una función basada en imágenes a una aplicación que tiene activada una política de verificación de firmas, debe especificar opciones adicionales. Consulte Firma de Imágenes para Funciones Basadas en Imágenes y Aplicación del Uso de Imágenes Firmadas del Registro.

  8. (Opcional) Suponiendo que el registro de Docker especificado es Oracle Cloud Infrastructure Registry, utilice la consola para confirmar que la imagen se ha transferido a Oracle Cloud Infrastructure Registry correctamente:
    1. Abra el menú de navegación y seleccione Servicios para desarrolladores. En Containers & Artifacts, seleccione Container Registry.
    2. Seleccione la región del registro.

      Verá todos los repositorios del registro a los que tiene acceso. La imagen que ha transferido está en un nuevo repositorio privado con un nombre creado a partir de:

      Por ejemplo, el nuevo repositorio puede llamarse acme-repo/acme-func.

    3. Seleccione el nombre del nuevo repositorio. Verá los detalles de la imagen que se ha transferido a Oracle Cloud Infrastructure Registry.
  9. (Opcional) Utilice la consola para confirmar que la función se ha desplegado correctamente en OCI Functions:

    1. Abra el menú de navegación y seleccione Servicios para desarrolladores. En Functions, seleccione Applications.
    2. Seleccione el compartimento especificado en el contexto de las CLI de Fn Project (consulte Creación de un contexto de las CLI de Fn Project para conectarse a Oracle Cloud Infrastructure).

      La página Aplicaciones muestra las aplicaciones del compartimento, incluida la especificada en el comando fn deploy.

    3. Seleccione el nombre de la aplicación que especificó en el comando fn deploy para ver las funciones que incluye.

      El separador Funciones muestra que la función basada en imágenes se ha desplegado en OCI Functions.