Uso de un repositorio de código 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 el código de función existente en un repositorio de Git remoto.
Puede utilizar Code Editor para crear una función en OCI Functions basada en el código de función existente en un repositorio de Git remoto. Después de clonar el repositorio de Git remoto en un repositorio de Git local, puede utilizar Code Editor para editar el código en el repositorio de Git local. Cuando haya terminado de realizar cambios, puede utilizar Code Editor para confirmar y devolver el código al repositorio remoto de Git. Con las actualizaciones 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 código en un repositorio de Git remoto existente
- 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 de Git remoto (por ejemplo, en GitHub) que contenga tanto el código de función como un archivo func.yaml en el nivel superior del repositorio.
- Para mayor comodidad y simplicidad, en los ejemplos de este tema se supone que ha utilizado el comando
fn init --runtime python helloworld-func-python
para crear una función python helloworld simple que, a continuación, ha transferido a un repositorio de Git remoto. Si ha creado una función helloworld de python y la ha enviado a un repositorio de Git remoto, puede especificar ese repositorio de Git remoto como repositorio de código al seguir las instrucciones. Si no está seguro de cómo crear la función helloworld de python y transferirla a un repositorio de Git remoto, consulte Pasos preliminares opcionales para cargar un código de función helloworld de Python simple en un repositorio de código remoto
Para obtener más información sobre las funciones y la funcionalidad del editor de códigos, consulte Editor de códigos.
Pasos preliminares opcionales para cargar un código de función helloworld de Python simple en un repositorio de código remoto
Para rellenar un repositorio de Git remoto con archivos func.yaml y de código fuente válidos para una función helloworld de python simple, para utilizarlos en la sección Creación de una función desde un repositorio de código mediante el editor de códigos más adelante en este tema:
- Cree un nuevo repositorio de Git remoto. Por ejemplo, en GitHub como
https://github.com/jdoe/simple-python-helloworld-repo
. - En Cloud Shell, cree un directorio temporal que contenga la función helloworld de python. Por ejemplo,
/home/jdoe/temp/python/simple-helloworld
- Cambie al directorio que acaba de crear.
- Ejecute
fn init --runtime python helloworld-func-python
para crear una función Hola mundo de python denominadahelloworld-func-python
. - Cambie al directorio
helloworld-func-python
creado recientemente. - Convierta el directorio
helloworld-func-python
sin versiones en un repositorio de Git local introduciendo:git init
- Agregue los archivos del directorio
helloworld-func-python
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 simple python hello-world files.
- Pulse la tecla Esc y, a continuación, escriba : w q y pulse Intro.
- En Cloud Shell, conecte el repositorio de Git local al repositorio de Git remoto que ha creado anteriormente introduciendo:
git remote add origin <remote-repository-url>
Por ejemplo:
git remote add origin https://github.com/jdoe/simple-python-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.
Ahora ha cargado archivos func.yaml y de código fuente válidos para una función helloworld de python simple en un repositorio de Git remoto, para su uso en la sección Creación de una función de un repositorio de código mediante el editor de códigos.
Creación de una función desde un repositorio de código mediante el editor de código
Para utilizar Code Editor para crear una nueva función en OCI Functions basada en el código de función existente en un repositorio de Git remoto:
- 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-python-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 a partir de un repositorio de código:
- 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-python-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 un repositorio de código en el campo de entrada de la barra de menús del editor de códigos.
- Introduzca el nombre de la función que se especifica en el archivo func.yaml de la función en el repositorio remoto (por ejemplo, helloworld-func-python) y pulse Intro.
Tenga en cuenta que el nombre de la función que crea 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 más tarde.
- Introduzca la URL del repositorio remoto que contiene el código de función. Por ejemplo,
https://github.com/jdoe/simple-python-helloworld-repo
- 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.
Cuando el repositorio de Git remoto se ha clonado correctamente, se muestra un cuadro de diálogo con el mensaje "Would you like to open the cloned repository, or add it to the current workspace" (¿Desea abrir el repositorio clonado o agregarlo al espacio de trabajo actual?)
-
Seleccione el botón X (X) en la esquina superior derecha del cuadro de diálogo para cerrar el cuadro de diálogo sin seleccionar una opción.
Importante: no seleccione el botón Abrir ni el botón Agregar a Espacio de Trabajo del cuadro de diálogo.
- 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.
El repositorio de Git remoto se clona en un repositorio de Git local en
/home/<username>/oci-ide-plugins/faas-artifacts/<app-ocid>/<function-name>/<repository-name>
. Por ejemplo,/home/jdoe/oci-ide-plugins/faas-artifacts/ocid1.fnapp.oc1.iad.aaaaaa______76nf/helloworld-func-python/simple-python-helloworld-repo
.Si ha basado la nueva función en la función helloworld de python en el repositorio remoto de Git, el directorio local del repositorio de Git contiene:
- func.yaml
- func.py
- requirments.txt
- 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,
- Despliegue la función en OCI Functions:
- 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>/<repos-name>
Por ejemplo:
cd /home/jdoe/oci-ide-plugins/faas-artifacts/ocid1.fnapp.oc1.iad.aaaaaa______76nf/helloworld-func-python/simple-python-helloworld-repo
-
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-python-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-python-app helloworld-func-python
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 helloworld de python, se muestra el siguiente mensaje:
{"message": "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 la función helloworld de python denominada
helloworld-func-python
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 de Oracle Cloud Infrastructure del editor de códigos, en la función
helloworld-func-python
que acaba de crear, seleccione el archivofunc.py
y cambie la línea:{"message": "Hello {0}".format(name)}),
para leer:{"message": "Greetings {0}".format(name)}),
- 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-Greetings
) 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 introduciendo:
fn -v deploy --app <application-name>
Por ejemplo:
fn -v deploy --app helloworld-python-app
- En la ventana de terminal del editor de códigos, introduzca:
fn invoke <application-name> <function-name>
Por ejemplo:
fn invoke helloworld-python-app helloworld-func-python
Se muestra el siguiente mensaje:
{"message": "Greetings 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 de Oracle Cloud Infrastructure del editor de códigos, en la función