Creación, despliegue y llamada de un función Hola mundo basado en imágenes

Descubre cómo crear, desplegar y llamar a una función helloworld basada en imágenes con OCI Functions.

Puede empezar a utilizar OCI Functions mediante los comandos de la CLI de Fn Project para crear, desplegar y llamar a una función basada en imágenes:

  • Crear una función helloworld simple escrita en Java
  • Crear y transferir la imagen al registro de Docker que está configurado para OCI Functions
  • desplegar la función basada en imágenes en una aplicación de OCI Functions
  • Llamar a la función
Nota

En este tema, se crea una función basada 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).

Para empezar a utilizar OCI Functions mediante la creación, el despliegue y la llamada de una función basada en imágenes:

  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. Inicie sesión en la consola como desarrollador de funciones.
  3. Utilice la consola para crear una nueva aplicación en OCI Functions:

    1. Abra el menú de navegación y seleccione Servicios para desarrolladores. En Functions, seleccione Applications.
    2. Seleccione la región que desea utilizar para OCI Functions.

      Para funciones basadas en imágenes, se recomienda que utilice la misma región que el registro de Docker especificado en el contexto de el CLI de Fn Project (consulte Creación de un contexto de CLI de Fn Project para conectarse a Oracle Cloud Infrastructure).

    3. 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 ya definidas en el compartimento.

    4. Seleccione Crear aplicación y especifique:

      • El nombre de la nueva aplicación como helloworld-app.
      • La VCN y la subred (o subredes, hasta un máximo de tres) en las que ejecutar la función. Por ejemplo, una VCN denominada acme-vcn- 01 y una subred pública denominada Public Subnet IHsY:US-PHOENIX-AD- 1). Tenga en cuenta que una subred pública necesita un gateway de Internet en la VCN, y una subred privada necesita un gateway de servicio en la VCN. Si se ha definido una subred regional, la práctica recomendada es seleccionar esa subred para que el failover entre los dominios de disponibilidad sea más fácil de implementar. Si no se ha definido una subred regional y debe cumplir requisitos de alta disponibilidad, seleccione varias subredes. Para funciones basadas en imágenes, se recomienda que las subredes estén en la misma región que el registro Docker especificado en el contexto de el CLI de Fn Project (consulte Creación de un contexto de CLI de Fn Project para conectarse a Oracle Cloud Infrastructure).

    5. Haga clic en Crear.
  4. Conéctese al entorno de desarrollo como desarrollador de funciones.

  5. En una ventana de terminal, cree los archivos para una función Java helloworld introduciendo:

    fn init --runtime java helloworld-func

    Se crea un directorio denominado helloworld-func, 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 obtener información sobre los parámetros adicionales que puede incluir en un archivo func.yaml.
    • Un directorio /src que contiene archivos y directorios de origen para la función Hola mundo (que incluye /src/main/java/com/example/fn/HelloFunction.java).
    • 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.
  6. Cambie el directorio al directorio helloworld-func creado recientemente.
  7. Introduzca el siguiente comando de Fn Project único para crear la función y sus dependencias como una imagen de de Docker denominada helloworld-func, transfiera la imagen al Registro de Docker especificado y despliegue la función basada en imágenes en OCI Functions en helloworld-app:

    fn -v deploy --app helloworld-app

    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).

  8. (Opcional) Al asumir que el registro deDocker especificado es Oracle Cloud Infrastructure Registry, utilice la consola para confirmar que la imagen helloworld-func para la función basada en imágenes 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 transferida se encuentra en nuevo repositorio con un nombre creado a partir de:

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

    3. Seleccione el nombre del nuevo repositorio. Verá detalles de la imagen helloworld-func 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 que se ha creado una aplicación denominada helloworld-app.

    3. Seleccione la aplicación helloworld-app para ver las funciones que contiene.

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

  10. En una ventana de terminal, llame a la función helloworld-func introduciendo:

    fn invoke helloworld-app helloworld-func

    Aparece el mensaje "Hola mundo".

Enhorabuena. Ha creado, desplegado y llamado correctamente a su primera función basada en imágenes con OCI Functions.