Inicio rápido de Functions en instancia de Compute
Descubra cómo configurar y ejecutar rápidamente una instancia informática de OCI con este servicio OCI Functions QuickStart.
A. Configuración del arrendamiento
Si aún no existen usuarios y grupos adecuados:
- Conéctese a la consola como administrador de arrendamiento.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Identidad, seleccione Dominios.
- Cree un nuevo grupo seleccionando Grupos y, a continuación, Crear grupo.
- Cree un nuevo usuario seleccionando Usuarios y, a continuación, Crear usuario.
- Para agregar un usuario a un grupo, seleccione Grupos, el nombre del grupo y, a continuación, Agregar usuario a grupo.
Consulte Notas de configuración para obtener más información.
Si aún no existe un compartimento adecuado en el que crear recursos de red y recursos de OCI Functions:
- Conéctese a la consola como administrador de arrendamiento.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Identidad, seleccione Compartimentos.
- Seleccione Create Compartment.
Consulte Notas de configuración para obtener más información.
Si aún no existe una VCN adecuada en la que crear recursos de red:
- Conéctese a la consola como administrador de arrendamiento.
- Abra el menú de navegación , seleccione Red y, a continuación, seleccione Redes virtuales en la nube.
- Seleccione Iniciar asistente de VCN para crear una nueva VCN.
- En el cuadro de diálogo Start VCN Wizard, seleccione VCN con conexión a Internet e Start VCN Wizard.
- Introduzca un nombre para la nueva VCN, seleccione Siguiente y, a continuación, seleccione Crear para crear la VCN junto con los recursos de red relacionados.
Consulte Notas de configuración para obtener más información.
Si uno o más usuarios de OCI Functions no son administradores de arrendamiento:
- Conéctese a la consola como administrador de arrendamiento.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Identidad, seleccione Políticas.
-
Seleccione Crear política, especifique un nombre y una descripción para la nueva política y seleccione el compartimento raíz del arrendamiento.
-
Utilice el creador de políticas para crear la política. Seleccione Funciones en la lista de casos de uso de políticas y base la política en la plantilla de política Permitir a los usuarios crear, desplegar y gestionar funciones y aplicaciones.
La plantilla de política incluye las siguientes sentencias de política:
Allow group <group-name> to use cloud-shell in tenancy
Allow group <group-name> to manage repos in tenancy
Allow group <group-name> to read objectstorage-namespaces in tenancy
Allow group <group-name> to manage logging-family in tenancy
Allow group <group-name> to read metrics in tenancy
Allow group <group-name> to manage functions-family in tenancy
Allow group <group-name> to use virtual-network-family in tenancy
Allow group <group-name> to use apm-domains in tenancy
Allow group <group-name> to read vaults in tenancy
Allow group <group-name> to use keys in tenancy
Allow service faas to use apm-domains in tenancy
Allow service faas to read repos in tenancy where request.operation='ListContainerImageSignatures'
Allow service faas to {KEY_READ} in tenancy where request.operation='GetKeyVersion'
Allow service faas to {KEY_VERIFY} in tenancy where request.operation='Verify'
Si es necesario, puede restringir estas sentencias de política por compartimento.
Consulte Notas de configuración para obtener más información.
B. Crear aplicación
- Inicie sesión en la consola como desarrollador de funciones.
- Abra el menú de navegación y seleccione Servicios para desarrolladores. En Functions, seleccione Applications.
- Seleccione la región que está utilizando con OCI Functions.
- Seleccione Crear aplicación.
- Especifique:
- el nombre de la nueva aplicación. Desplegará su primera función en esta aplicación y especificará esta aplicación al llamar a la función.
- La VCN y la subred en la que ejecutar la función. 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.
- Haga clic en Crear.
Consulte instrucciones detalladas para obtener más información.
C. Configurar una instancia informática de OCI
- Conéctese a la consola como administrador de arrendamiento.
- Abra el menú de navegación y seleccione Recursos informáticos. En Recursos informáticos, seleccione Instancias.
- Seleccione el compartimento en el que crear los recursos de red y los recursos de OCI Functions.
- Si aún no existe una instancia informática adecuada en el compartimento, seleccione Crear instancia y:
- seleccionar el compartimento, la VCN y las subredes para su uso con OCI Functions
- especificar que se va a asignar una dirección IP pública a la nueva instancia informática
- seleccione el archivo que contiene la clave SSH para acceder a la nueva instancia informática
-
En la página Detalles de instancia, copie el OCID y la dirección IP pública de la instancia informática que se va a utilizar como entorno de desarrollo.
Consulte Creación de una instancia para obtener más información.
Cree un nuevo grupo dinámico para incluir la instancia informática:
- Abra el menú de navegación y seleccione Identidad y seguridad. En Identidad, seleccione Dominios. En Dominio de identidad, seleccione Grupos dinámicos.
- Cree un nuevo grupo dinámico.
-
Introduzca una regla que incluya el OCID de la instancia informática:
ANY {instance.id = '<instance-ocid>'}
Consulte Gestión de grupos dinámicos para obtener más información.
Crear una política para otorgar al nuevo acceso de grupo dinámico a recursos de función, de red y de Oracle Cloud Infrastructure Registry:
- Abra el menú de navegación y seleccione Identidad y seguridad. En Identidad, seleccione Políticas.
-
Seleccione Crear Política y utilice el editor manual del creador de políticas para crear una nueva política con las siguientes sentencias de política:
Allow dynamic-group <dynamic-group-name> to manage functions-family in compartment <compartment-name>
Allow dynamic-group <dynamic-group-name> to use virtual-network-family in compartment <compartment-name>
Allow dynamic-group <dynamic-group-name> to read repos in tenancy
Consulte Gestión de políticas para obtener más información.
D. Configura tu entorno de desarrollo de instancias informáticas de OCI
En una ventana de terminal del entorno de desarrollo:
- Confirme que Docker está instalado introduciendo:
docker version
Si aparece un mensaje de error que indica que Docker no está instalado, debe instalar Docker antes de continuar. Consulte la documentación de Docker para su plataforma (para Oracle Linux, consulte aquí).
Si Docker está instalado, vaya a la sección Requisitos previos de la página inicial de Fn Project en GitHub y confirme que la versión de Docker instalada es la versión mínima especificada en ella. Si no es así, vuelva a instalar Docker antes de continuar.
- Inicie la imagen estándar hello-world de Docker como un contenedor para confirmar que Docker se está ejecutando. Para ello, introduzca:
docker run hello-world
Si ve un mensaje de error que indica que Docker no se está ejecutando, debe iniciar el daemon de Docker antes de continuar. Consulte la documentación de Docker.
Consulte Notas de configuración para obtener más información.
En una ventana de terminal del entorno de desarrollo:
- Instale la CLI de Fn Project siguiendo las instrucciones correspondientes de su entorno:
- Linux o MacOS: introduzca:
curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
- MacOS mediante Homebrew: introduzca:
brew update && brew install fn
- Windows: siga las instrucciones de instalación de Fn Client en GitHub.
- Linux, MacOS o Windows: descargue y ejecute el binario desde la página Versiones de proyecto de Fn en GitHub.
- Linux o MacOS: introduzca:
- Confirme que la CLI de Fn Project se haya instalado introduciendo:
fn version
Consulte Notas de configuración para obtener más información.
En una ventana de terminal del entorno de desarrollo:
- Para crear un nuevo contexto de la CLI de Fn Project, introduzca:
fn create context <my-context> --provider oracle-ip
Tenga en cuenta que especifica
--provider oracle-ip
para activar la autenticación y autorización mediante OCID de instancia, grupos dinámicos y políticas que otorgan permisos a esos grupos dinámicos. - Para especificar que la CLI de Fn Project debe utilizar el nuevo contexto, introduzca:
fn use context <my-context>
Consulte Notas de configuración para obtener más información.
En una ventana de terminal del entorno de desarrollo:
- Configure el nuevo contexto de la CLI de Fn Project con el OCID del compartimento del que desea poseer funciones desplegadas
fn update context oracle.compartment-id <compartment-ocid>
- Para configurar el nuevo contexto con el punto final API-url que se va a utilizar al llamar a la API de OCI, introduzca:
fn update context api-url <api-endpoint>
donde
<api-endpoint>
es uno de los puntos finales de la lista de puntos finales de Functions en la API de Functions, en el formatohttps://functions.<region-identifier>.oci.oraclecloud.com
. Por ejemplo:fn update context api-url https://functions.us-phoenix-1.oci.oraclecloud.com
-
Configure el contexto de la CLI de Fn Project con la dirección de Oracle Cloud Infrastructure Registry en la región y el arrendamiento actuales que desea utilizar con OCI Functions:
fn update context registry <region-key>.ocir.io/<tenancy-namespace>/<repo-name-prefix>
donde
<repo-name-prefix>
es un prefijo de su elección para el repositorio de Oracle Cloud Infrastructure Registry en el que almacenar imágenes para la función. Por ejemplo:fn update context registry phx.ocir.io/ansh81vru1zp/acme-repo
-
Configure el contexto de la CLI de Fn Project con el OCID del compartimento para los repositorios a los que desea que OCI Functions transfiera y extraiga imágenes de función introduciendo:
fn update context oracle.image-compartment-id <compartment-ocid>
Por ejemplo:
fn update context oracle.image-compartment-id ocid1.compartment.oc1..aaaaaaaaquqe______z2q
Si no especifica un valor para
oracle.image-compartment-id
, OCI Functions transfiere y extrae imágenes desde y hacia los repositorios del compartimento raíz.
Consulte Notas de configuración para obtener más información.
- Inicie sesión en la consola como desarrollador de funciones.
- En el menú de navegación , seleccione el menú Perfil
y, a continuación, seleccione Configuración de usuario o Mi perfil, según la opción que vea.
- En la página Tokens de autenticación, seleccione Generar token.
- Introduzca una descripción significativa para el token de autenticación en el cuadro de diálogo Generar token y seleccione Generar token. Aparece el nuevo token de autenticación.
- Copie el token de autenticación inmediatamente en una ubicación segura desde donde pueda recuperarlo más tarde, ya que no verá el token de autenticación de nuevo en la consola.
- Cierre el cuadro de diálogo Generar token.
Consulte Notas de configuración para obtener más información.
En una ventana de terminal del entorno de desarrollo:
-
Introduzca 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
Si su arrendamiento está federado con Oracle Identity Cloud Service, el formato será ligeramente diferente. Por ejemplo:
docker login -u 'ansh81vru1zp/oracleidentitycloudservice/jdoe@acme.com' phx.ocir.io
-
Cuando se le solicite una contraseña, introduzca el token de autenticación de Oracle Cloud Infrastructure que ha creado y copiado anteriormente. Por ejemplo,
6aN...6MqX
Ya está listo para empezar a crear, desplegar y llamar a funciones.
Consulte Notas de configuración para obtener más información.
E. Cree, despliegue y llame a la función
En la ventana de terminal:
-
Cree una función java helloworld introduciendo:
fn init --runtime java hello-java
Se crea un directorio denominado hello-java que contiene:
- un archivo de definición de función denominado func.yaml
- un directorio /src que contiene archivos y directorios de origen para la función helloworld
- un archivo de configuración de Maven denominado pom.xml que especifica las dependencias necesarias para compilar la función
Java es solo uno de los varios lenguajes soportados.
Consulte instrucciones detalladas para obtener más información.
En la ventana de terminal:
- Cambie el directorio al directorio hello-java creado en el paso anterior:
cd hello-java
- Introduzca el siguiente comando de Fn Project único para crear la función y sus dependencias como una imagen de Docker denominada hello-java, envíe la imagen al registro de Docker especificado y despliegue la función en OCI Functions en la aplicación helloworld-app que ha creado anteriormente:
fn -v deploy --app helloworld-app
- (Opcional) Confirme que la función se ha desplegado en OCI Functions seleccionando Functions (en Resources, en la página de detalles de la aplicación helloworld-app) y observando que ahora aparece la función hello-java.
Consulte instrucciones detalladas para obtener más información.
En la ventana de terminal:
-
Llame a la función hello-java introduciendo:
fn invoke helloworld-app hello-java
Se muestra el mensaje "Hola mundo".
-
Llame a la función hello-java con el parámetro
'John'
introduciendo:echo -n 'John' | fn invoke helloworld-app hello-java
Aparece el mensaje "Hola John".
Enhorabuena. Acaba de crear, desplegar y llamar a su primera función mediante OCI Functions.
Consulte instrucciones detalladas para obtener más información.
Ahora que ha creado, desplegado y llamado a una función, aprenda a:
- Ver logs de funciones en el servicio Oracle Cloud Infrastructure Logging o mediante la configuración de una URL de syslog (consulte Almacenamiento y visualización de logs de funciones)
- explorar OCI Functions mediante ejemplos en GitHub (consulte ejemplos de Oracle Functions)
- Llamada a una función mediante SDK (consulte Uso de SDK para llamar a funciones)
¡Ya está!