Uso de una plantilla para crear una función con el editor de código
Descubra cómo utilizar Code Editor para crear una nueva función en OCI Functions basada en una función de plantilla.
Puede utilizar Code Editor para crear una nueva función en OCI Functions basada en una función de plantilla. Oracle proporciona una serie de funciones de plantilla helloworld escritas en diferentes idiomas. Después de crear una función de plantilla func.yaml y archivos de código fuente en un directorio sin versiones, utilice Code Editor para convertir el directorio en un repositorio de Git local que, a continuación, puede transferir a un repositorio de Git remoto. Con los archivos del repositorio de Git remoto, puede utilizar Code Editor para desplegar la función en OCI Functions y, a continuación, llamar a la función.
Al utilizar Code Editor para crear y actualizar funciones, tenga en cuenta lo siguiente:
- El repositorio de Git remoto debe contener un archivo func.yaml válido en el nivel superior.
- El nombre de una función que cree mediante el editor de códigos debe coincidir con el nombre de función especificado en el archivo func.yaml del repositorio de código remoto. Si los nombres son diferentes, no podrá llamar a la función.
- Al desplegar una función en OCI Functions, está recuperando la última confirmación del repositorio de Git remoto. Los cambios no confirmados y las confirmaciones en el repositorio local se ignoran. Por lo tanto, antes de desplegar una función nueva o actualizada en OCI Functions, siempre debe confirmar archivos nuevos y modificados en el repositorio de Git local y, a continuación, transferir los cambios al repositorio de Git remoto.
En este tema se explica cómo utilizar Code Editor para:
- Crear una nueva función a partir de una función de plantilla
- Convertir el directorio sin versiones que contiene los archivos func.yaml y de código fuente de la función en un repositorio de Git local que puede transferir a un repositorio de Git remoto
- Despliegue de la función en OCI Functions
- Llamar a la función
- opcionalmente, actualice la función, vuelva a desplegarla y vuelva a llamarla
Antes de empezar:
- Debe haber completado los pasos de Functions QuickStart en Cloud Shell.
- Para seguir los pasos de este tema, debe tener acceso a un repositorio remoto de Git vacío (por ejemplo, en GitHub) o ser capaz de crear dicho repositorio.
- Para mayor comodidad y simplicidad, en los ejemplos de este tema se supone que crea una función a partir de una plantilla Java. Si crea una función a partir de una plantilla diferente, algunas de las instrucciones no se aplican.
Para obtener más información sobre las funciones y la funcionalidad del editor de códigos, consulte Editor de códigos.
Creación de una función Helloworld a partir de una plantilla mediante el editor de códigos
Para utilizar Code Editor para crear una nueva función en OCI Functions basada en una función de plantilla:
- Confirme que ha completado los pasos de Functions QuickStart en Cloud Shell para:
- Configure su arrendamiento con grupos y usuarios, cree un compartimento en el que crear recursos de OCI Functions, cree una VCN y subredes, y cree una política de IAM.
- Configure el entorno de desarrollo de Cloud Shell con el contexto de la CLI de Fn Project, obtenga un token de autenticación y conéctese al registro de Docker especificado para el contexto de la CLI de Fn Project.
- Inicie sesión en la consola como desarrollador de funciones.
-
Utilice la consola para crear una nueva aplicación en OCI Functions:
- Abra el menú de navegación y seleccione Servicios para desarrolladores. En Functions, seleccione Applications.
- Seleccione la región que desea utilizar para OCI Functions.
Recomendamos que utilice la misma región que el registro de Docker especificado en el contexto de la CLI de Fn Project (consulte Creación de un contexto de la CLI de Fn Project para conectarse a Oracle Cloud Infrastructure).
-
Seleccione el compartimento especificado en el contexto de la CLI de Fn Project (consulte Creación de un contexto de la CLI de Fn Project para conectarse a Oracle Cloud Infrastructure).
La página Aplicaciones muestra las aplicaciones ya definidas en el compartimento.
-
Seleccione Crear aplicación y especifique:
- Nombre de la nueva aplicación. Por ejemplo,
helloworld-java-app
-
La VCN y la subred (o subredes, hasta un máximo de tres) en las que ejecutar la función. Recomendamos que las subredes estén en la misma región que el registro de Docker especificado en el contexto de la CLI de Fn Project (consulte Creating an Fn Project CLI Context to Connect to Oracle Cloud Infrastructure).
Para obtener más información sobre las demás opciones de creación de aplicaciones, consulte Creación de una aplicación.
- Nombre de la nueva aplicación. Por ejemplo,
- Seleccione Crear para crear la aplicación.
-
Inicie Code Editor de una de las siguientes formas:
- En la página de lista Aplicaciones, seleccione la aplicación en la que desea crear la función. En la página Detalles de la aplicación, seleccione Funciones. En el separador Funciones, seleccione Crear en editor de código. Este método abre el editor de códigos en la aplicación que acaba de crear.
- Seleccione la opción Code Editor en el botón Developer Tools de la barra de herramientas de la consola.
- Cree una nueva función desde una plantilla:
- En el panel Oracle Cloud Infrastructure del editor de códigos, vaya a la aplicación que acaba de crear en el compartimento especificado en el contexto de la CLI de Fn Project. Por ejemplo,
helloworld-java-app
. - Con el nombre de la aplicación resaltado, seleccione Crear función... en el menú del botón derecho del mouse.
- Seleccione el método de creación Crear a partir de una plantilla en el campo de entrada de la barra de menús del editor de códigos.
- Seleccione un idioma de la lista de idiomas y pulse Intro. Por ejemplo, seleccione Java.
- Introduzca un nombre para la nueva función helloworld en el campo de entrada de la barra de menús del editor de códigos y pulse Intro. Por ejemplo,
helloworld-func-java
. - Seleccione Aceptar para confirmar el cuadro de diálogo que le informa de que los cambios deben confirmarse y transferirse a una rama remota antes de que se pueda desplegar la función.
Se crea un directorio con el nombre de la función en el directorio
/home/<username>/oci-ide-plugins/faas-artifacts/<app-ocid>/
. Por ejemplo, en/home/jdoe/oci-ide-plugins/faas-artifacts/ocid1.fnapp.oc1.iad.aaaaaa______76nf/helloworld-func-java
,Si ha basado la nueva función en la función de plantilla Java, el directorio contiene:
- func.yaml
- pom.xml
- un directorio /src
- En el panel Oracle Cloud Infrastructure del editor de códigos, vaya a la aplicación que acaba de crear en el compartimento especificado en el contexto de la CLI de Fn Project. Por ejemplo,
- Guarde la función en un repositorio de Git local:
- Para abrir una ventana de terminal del editor de códigos, seleccione New Terminal en la ventana Terminal de la barra de menús del editor de códigos.
- En la ventana de terminal del editor de códigos, cambie el directorio que acaba de crear que contiene el archivo func.yaml y los archivos de origen de la función introduciendo:
cd /home/<oci-username>/oci-ide-plugins/faas-artifacts/<application-OCID>/<function-name>
Por ejemplo:
cd /home/jdoe/oci-ide-plugins/faas-artifacts/ocid1.fnapp.oc1.iad.aaaaaaaa______76nf/helloworld-func-java
- Convierta el directorio sin versiones (por ejemplo, denominado
helloworld-func-java
) en un repositorio de Git local introduciendo:git init
- Agregue los archivos del directorio al área temporal introduciendo:
git add .
- Almacene el contenido del área temporal en el repositorio de Git local introduciendo:
git commit
- Cuando se le solicite, introduzca un mensaje de confirmación:
- Pulse la tecla i del teclado para insertar texto.
- Introduzca un mensaje de confirmación. Por ejemplo:
Adds hello-world files.
- Pulse la tecla Esc y, a continuación, escriba : w q y pulse Intro.
- Cree un nuevo repositorio de Git remoto. Por ejemplo, en GitHub como
https://github.com/jdoe/template-java-helloworld-repo
. - Transfiera la función al repositorio remoto de Git:
- En la ventana de terminal del editor de códigos, en el directorio que contiene el archivo func.yaml y los archivos de origen de función, conecte el repositorio de Git local al repositorio de Git remoto que acaba de crear introduciendo:
git remote add origin <remote-repository-url>
Por ejemplo:
git remote add origin https://github.com/jdoe/template-java-helloworld-repo.git
- Cree una nueva rama denominada main en el repositorio de Git local introduciendo:
git branch -M main
- Transfiera archivos a la rama
main
en el repositorio de Git remoto introduciendo:git push -u origin main
- Si se le solicita, introduzca el nombre de usuario y la contraseña de Git para el repositorio remoto de Git.
En el caso de GitHub, tenga en cuenta que la contraseña es el token de acceso personal GitHub.
- En la ventana de terminal del editor de códigos, en el directorio que contiene el archivo func.yaml y los archivos de origen de función, conecte el repositorio de Git local al repositorio de Git remoto que acaba de crear introduciendo:
- Despliegue la función en OCI Functions:
-
En la ventana de terminal del editor de códigos, en el directorio que contiene el archivo func.yaml y los archivos de origen de función, conéctese al registro de Docker especificado en el contexto de la CLI de Fn Project. Suponiendo que el registro de Docker es Oracle Cloud Infrastructure Registry, utilice el siguiente comando:
docker login -u '<tenancy-namespace>/<user-name>' <region-key>.ocir.io
Por ejemplo:
docker login -u 'ansh81vru1zp/jdoe@acme.com' phx.ocir.io
- Cuando se le solicite una contraseña, introduzca su token de autenticación de OCI.
- En la ventana de terminal del editor de códigos, despliegue la función en OCI Functions ejecutando:
fn -v deploy --app <application-name>
Por ejemplo:
fn -v deploy --app helloworld-java-app
-
- Llame a la función que acaba de desplegar:
- En la ventana de terminal del editor de códigos, en el directorio que contiene el archivo func.yaml y los archivos de origen de función, llame a la función ejecutando:
fn invoke <application-name> <function-name>
Por ejemplo:
fn invoke helloworld-java-app helloworld-func-java
Si se devuelve un mensaje que muestra que no se ha encontrado la función, una causa probable es una discrepancia entre el nombre de la función creada en Code Editor y el nombre de la función especificada en func.yaml. Repita los pasos anteriores para crear una función en Code Editor que tenga el mismo nombre que el especificado en el archivo func.yaml del repositorio de Git remoto.
Si ha basado la nueva función en la función de plantilla Java, se muestra el siguiente mensaje:
Hello World !
- En la ventana de terminal del editor de códigos, en el directorio que contiene el archivo func.yaml y los archivos de origen de función, llame a la función ejecutando:
-
(Opcional) Si ha basado la nueva función en una función Java de plantilla denominada
helloworld-func-java
en los pasos anteriores, este paso opcional describe cómo cambiar el texto del mensaje que se muestra cuando se llama a la función. Actualiza el texto del mensaje en el repositorio de Git local, transfiere la actualización al repositorio de Git remoto y, a continuación, despliega y llama a la función.- En el panel del editor de códigos de Oracle Cloud Infrastructure, en la función
helloworld-func-java
que acaba de crear:- Haga clic en el archivo
/src/main/java/com/example/fn/HelloFunction.java
y cambie la línea:return "Hello, " + name + "!";
para leer:return "Hi, " + name + "!";
- Seleccione en el archivo
/test/java/com/example/fn/HelloFunctionTest.java
y cambie la línea:assertEquals("Hello, world!", result.getBodyAsString());
para leer:assertEquals("Hi, world!", result.getBodyAsString());
- Haga clic en el archivo
- En el navegador del editor de códigos, seleccione el panel Control de origen, el botón Más acciones y seleccione Confirmar en el menú Confirmar.
- Cuando se le solicite que almacene temporalmente los cambios, seleccione Sí.
- Introduzca un mensaje de confirmación (por ejemplo,
Changes-Hello-to-Hi
) y pulse Intro. - Seleccione el botón More Actions (Más acciones) y seleccione Push (Empujar) en el menú Pull, Push (Extraer, Push).
- Si se le solicita, introduzca el nombre de usuario y la contraseña de Git para el repositorio remoto de Git.
En el caso de GitHub, tenga en cuenta que la contraseña es el token de acceso personal GitHub.
- Si aparece un cuadro de diálogo con el mensaje "Would you like Code Editor to run periódicamente 'git fetch'?", seleccione Ask Me Later.
-
En la ventana de terminal del editor de códigos, en el directorio que contiene el archivo func.yaml y los archivos de origen de función, despliegue la función en OCI Functions introduciendo:
fn -v deploy --app <application-name>
Por ejemplo:
fn -v deploy --app helloworld-java-app
-
En la ventana de terminal del editor de códigos, introduzca:
fn invoke <application-name> <function-name>
Por ejemplo:
fn invoke helloworld-java-app helloworld-func-java
Se muestra el siguiente mensaje:
Hi World !
El mensaje actualizado confirma que ha modificado correctamente el código fuente de la función en el repositorio de Git local, ha transferido la actualización al repositorio de Git remoto y, a continuación, ha desplegado y llamado a la función.
- En el panel del editor de códigos de Oracle Cloud Infrastructure, en la función