Preparar el entorno de desarrollo local

Antes de empezar a utilizar Oracle Functions para crear y desplegar funciones, debe configurar el entorno local para el desarrollo de funciones.

Aunque es posible utilizar Cloud Shell o una instancia informática de Oracle Cloud Infrastructure como entorno de desarrollo, en este documento se asume que utilizará un entorno Linux local para el desarrollo de funciones.

Antes de empezar

Además de las tareas presentadas en esta sección para configurar una instancia local de Linux para el desarrollo de funciones, también debe realizar las siguientes tareas:

Crear Clave de Firma

Antes de utilizar Oracle Functions, debe configurar una clave de firma de API de Oracle Cloud Infrastructure.

  1. Inicie sesión en el entorno local de desarrollo de máquinas como desarrollador de funciones.
  2. Genere una clave privada cifrada con una contraseña que proporcione introduciendo:
    $ openssl genrsa -out ~/.oci/<private-key-file-name>.pem -aes128 2048

    donde <private-key-file-name> es un nombre de su elección para el archivo de clave privada.

  3. Cuando se le solicite, introduzca una frase de contraseña para cifrar el archivo de clave privada. Asegúrese de anotar la frase de contraseña que introduzca, ya que la necesitará más adelante.
  4. Cuando se le solicite, vuelva a introducir la frase de contraseña para confirmarla.
  5. Cambie los permisos del archivo para asegurarse de que sólo puede leerlo.
    $ chmod go-rwx ~/.oci/<private-key-file-name>.pem

    donde <private-key-file-name> es un nombre del archivo de claves privadas.

  6. Genere una clave pública (cifrada con la misma frase de contraseña que proporcionó al crear la clave privada y en la misma ubicación que el archivo de clave privada) introduciendo:
    $ openssl rsa -pubout -in ~/.oci/<private-key-file-name>.pem -out ~/.oci/<public-key-file-name>.pem

    donde <private-key-file-name> es un nombre del archivo de clave privada y <public-key-file-name> es un nombre de su elección para el archivo de clave pública.

  7. Cuando se le solicite, introduzca la misma frase de contraseña que introdujo anteriormente para cifrar el archivo de claves privadas.
  8. Copie el contenido del archivo de clave pública que acaba de crear introduciendo:
    $ cat ~/.oci/<public-key-file-name>.pem | pbcopy

    donde <public-key-file-name> es un nombre de su elección para el archivo de clave pública.

  9. Inicie sesión en la consola como desarrollador de funciones, abra el menú Usuario en la esquina superior derecha y seleccione Configuración de usuario.
  10. En la página Claves de API, haga clic en Agregar clave pública. Pegue el valor de la clave pública en la ventana y haga clic en Agregar. Se carga la clave y se muestra su huella digital.

Crear un perfil de interfaz de línea de comandos (CLI)

Antes de utilizar Oracle Functions, debe tener un archivo de configuración de la CLI de Oracle Cloud Infrastructure que contenga el perfil de credenciales de la cuenta de usuario que utilizará para crear y desplegar funciones.

El archivo de configuración de la CLI de Oracle Cloud Infrastructure puede contener varios perfiles. Si ya tiene un archivo de configuración que contiene uno o más perfiles, debe agregar un nuevo perfil al archivo existente para el usuario que utilizará Oracle Functions para crear y desplegar funciones

  1. Inicie sesión en el entorno local de desarrollo de máquinas como desarrollador de funciones.
  2. Abra el archivo ~/.oci/config en un editor de texto. (Si el directorio y/o el archivo aún no existen, créelos).
  3. Agregue un nuevo perfil al archivo ~.oci/config de la siguiente manera:
    [<profile-name>]
    user=<user-ocid>
    fingerprint=<public-key-fingerprint>
    key_file=<full-path-to-private-key-pem-file>
    tenancy=<tenancy-ocid>
    region=<region-name>
    pass_phrase=<passphrase>

    dónde:

    • <profile-name> es un nombre que elige para el perfil.
    • <user-ocid> es el OCID de la cuenta de usuario de Oracle Cloud Infrastructure que utilizará para crear y desplegar funciones.
    • <public-key-fingerprint> es la huella digital del valor de clave de API pública que cargó anteriormente en la consola.
    • <full-path-to-private-key-pem-file> es la ruta de acceso completa al archivo de claves privadas creado anteriormente.
    • <tenancy-ocid> es el OCID del arrendamiento en el que creará y desplegará funciones.
    • <region-identifier> es el identificador de la región de Oracle Cloud Infrastructure en la que creará y desplegará funciones. Por ejemplo, us-phoenix-1.
    • <passphrase> es la contraseña especificada al crear claves públicas/privadas.
  4. Guarde y cierre el archivo.

Copiar y configurar el script oci-curl

Puede utilizar un script para llamar a una función. El script oci-curl crea una solicitud firmada en función de las credenciales que proporcione en el cuerpo del script.

Para utilizar oci-curl para llamar a una función, debe proporcionar las credenciales de un usuario de Oracle Cloud Infrastructure al que se ha otorgado acceso a recursos del mismo arrendamiento y que pertenece al mismo compartimento que la función.

Normalmente, querrá llamar a una función como desarrollador de funciones configurado para el entorno de desarrollo. En las instrucciones que se indican a continuación se asume ese es el caso.

  1. Inicie sesión en el entorno de desarrollo.
  2. Cree una copia del archivo de script oci-curl en el entorno de desarrollo y agregue las credenciales al archivo de la siguiente manera:
    1. En un explorador, navegue a https://docs.cloud.oracle.com/iaas/Content/Resources/Assets/signing_sample_bash.txt para ver el código oci-curl como texto sin procesar.
    2. Seleccione todo el texto y cópielo.
    3. En un editor de texto, abra un nuevo archivo en una ubicación conveniente.

      Por ejemplo, en una ventana de terminal, puede crear un nuevo subdirectorio en el directorio raíz y abrir un nuevo archivo en ese directorio introduciendo:

      $ cd ~
      
      $ mkdir oci-curl
      
      $ vim ~/oci-curl/oci-curl.sh

      El nombre y la ubicación del nuevo archivo depende de usted, pero en las siguientes instrucciones se asume ~/oci-curl/oci-curl.sh.

    4. Pegue el código de script oci-curl que copió anteriormente en el nuevo archivo.
    5. Guarde el archivo pero déjelo abierto para que pueda agregar sus credenciales.
  3. Sustituya las credenciales de ejemplo del archivo oci-curl.sh por las de la cuenta de usuario que desea llamar a funciones:
    local tenancyId="<tenancy_id>";
    local authUserId="<user_id>";
    local keyFingerprint="<public_fingerprint>";
    local privateKeyPath="<private_key_path>";

    Dónde:

    • <tenancy_id> es el OCID del arrendamiento en el que se ha desplegado la función.
    • <user_id> es el OCID de la cuenta de usuario que desea ejecutar la función. La cuenta de usuario debe tener acceso a recursos en el mismo arrendamiento y pertenecer al mismo compartimento que la función.
    • <public_fingerprint> es la huella digital de la clave pública del usuario cargada en Oracle Cloud Infrastructure.
    • <private_key_path> es la ruta de acceso completa al archivo de clave privada que se combina con la clave pública para la que ha proporcionado la huella. Por ejemplo:
      local privateKeyPath="/Users/johndoe/.oci/john_api_key_private.pem";
  4. Guarde y cierre el archivo oci-curl.sh.

Instalar la interfaz de línea de comandos (CLI) de Fn Project

Antes de utilizar Oracle Functions, la interfaz de línea de comandos (CLI) de Fn Project se debe instalar en el entorno de desarrollo.

Este procedimiento utiliza curl para instalar la CLI en una instancia de Linux. En el archivo de nombre de lectura del proyecto Fn en GitHub se proporcionan instrucciones para otros sistemas operativos.

  1. Inicie sesión en su entorno de desarrollo como desarrollador de funciones.
  2. Utilice el siguiente comando para recuperar y ejecutar el script de instalación:
    $ curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
    
    

    Si se le solicita una contraseña, introduzca la contraseña de superusuario.

  3. En una ventana de terminal, confirme que la CLI se ha instalado introduciendo:
    $ fn version

    Si la CLI se ha instalado correctamente, se muestra la versión.

Crear Contexto de Interfaz de Línea de Comandos Fn

Cuando se instala inicialmente la interfaz de línea de comandos (CLI) de Fn Project, se configura para el desarrollo local. Para configurar la CLI de Fn Project para conectarse al arrendamiento de Oracle Cloud Infrastructure, debe crear un nuevo contexto.

El contexto especifica los puntos finales de Oracle Functions, el OCID del compartimento al que pertenecerán las funciones desplegadas y la dirección del registro de Docker hacia y desde la que transferir y extraer imágenes. Puede definir varios contextos, cada uno almacenado en un archivo de contexto diferente en formato .yaml.

  1. Inicie sesión en su entorno de desarrollo como desarrollador de funciones.
  2. En una ventana de terminal, cree el nuevo contexto de la CLI de Fn Project para Oracle Cloud Infrastructure:
    $ fn create context <my-context> --provider oracle

    donde <my-context> es un nombre que elija.

  3. Especifique que la CLI de Fn Project utilizará el nuevo contexto:
    $ fn use context <my-context>

    donde <my-context> es el nombre de contexto especificado.

  4. Especifique el nombre del perfil de interfaz de línea de comandos que desea utilizar:
    $ fn update context oracle.profile <profile-name>
  5. Especifique el OCID de compartimento en el que se desplegarán las funciones desplegadas:
    $ fn update context oracle.compartment-id <compartment-ocid>
  6. Especifique el punto final que se utilizará al llamar a la API:
    $ fn update context api-url <api-endpoint>
    Donde <api-endpoint> es uno de los puntos finales con el formato:
    https://functions.<region-identifier>.oci.oraclecloud.com
    Donde <region-identifier> es el identificador de la región de Oracle Cloud Infrastructure en la que creará y desplegará funciones. Por ejemplo:
    us-phoenix-1
  7. Configure el nuevo contexto con la dirección del registro de Docker que desea utilizar con Oracle Functions:
    $ fn update context registry <region-key>.ocir.io/<tenancy-namespace>/<repo-name>
    Dónde:
    • <region-key> es la clave de la región de Oracle Cloud Infrastructure Registry. Por ejemplo, phx para Phoenix.

      Oracle recomienda que el registro Docker que especifique se encuentre en la misma región que la subred en la que desea ejecutar funciones.

    • <tenancy-namespace> es la cadena de espacio de nombres Oracle Cloud Infrastructure Object Storage generada automáticamente del arrendamiento en el que se crearán repositorios (como se muestra en la página Información de arrendamiento).
    • <repo-name> es un nombre de repositorio para colgar previamente los nombres de las funciones que despliega.

    Por ejemplo:

    $ fn update context registry phx.ocir.io/ansh81vru1zp/my-repo

Crear Token de Autenticación

Para desplegar funciones en Oracle Cloud Infrastructure, debe crear un token de autenticación que se utilice como contraseña al iniciar sesión en Docker en Oracle Cloud Infrastructure Registry.

  1. Conéctese a la consola de Oracle Cloud Infrastructure, haga clic en el icono Usuario y seleccione Configuración de Usuario.
  2. Para crear un nuevo token de autenticación, haga clic en Aut Tokens en la sección Recursos y, a continuación, haga clic en Generar Token.
  3. Proporcione una descripción para el token de autenticación y haga clic en Generar token. Copie el token cuando se muestre.
  4. Haga clic en el enlace Copiar y almacene la información del token en una ubicación segura porque al cerrar el cuadro de diálogo, no podrá volver a ver el token en la consola.
  5. Haga clic en Cerrar.

Conectarse a Oracle Cloud Infrastructure Registry

Antes de utilizar Oracle Functions, debe iniciar sesión en Docker en el registro de Docker en el que va a almacenar sus funciones como imágenes de Docker. Este es el registro de Docker especificado anteriormente en el contexto de la interfaz de línea de comandos (CLI) de Fn Project.

Para iniciar sesión en el registro, primero debe haber hecho lo siguiente:
  • Instalado e iniciado Docker en el entorno de desarrollo
  • Se ha creado un contexto Oracle Cloud Infrastructure para la interfaz de línea de comandos (CLI) de Fn
  • Se ha creado un token de autenticación de Oracle Cloud Infrastructure para el usuario

Puede almacenar funciones en repositorios públicos y privados en Oracle Cloud Infrastructure Registry, un registro gestionado por Oracle creado sobre Oracle Cloud Infrastructure.

Para completar los siguientes pasos, debe proporcionar el espacio de nombres de arrendamiento para Oracle Cloud Infrastructure Object Storage, el nombre de usuario y el token de autenticación del usuario.

Para conectarse a Docker en Oracle Cloud Infrastructure Registry:

  1. Inicie sesión en su entorno de desarrollo como desarrollador de funciones.
  2. En una ventana de terminal, inicie sesión en Oracle Cloud Infrastructure Registry:
    $ docker login <region-key>.ocir.io

    Donde <region-key> es la clave para la región de Oracle Cloud Infrastructure Registry especificada en el contexto de la CLI de Fn Project. Por ejemplo, phx para Phoenix.

  3. Cuando se le solicite, introduzca el nombre de usuario del usuario que creará y desplegará funciones:
    <tenancy-namespace>/<username>
    Dónde:
    • <tenancy-namespace> es la cadena de espacio de nombres Oracle Cloud Infrastructure Object Storage generada automáticamente del arrendamiento en el que se crearán repositorios (como se muestra en la página Información de arrendamiento).
    • <username> es el usuario que creará y desplegará funciones.
    Si el arrendamiento está federado con Oracle Identity Cloud Service, utilice el formato:
    <tenancy-namespace>/oracleidentitycloudservice/<username>
  4. Cuando se le solicite una contraseña, introduzca el token de autenticación de Oracle Cloud Infrastructure del usuario.