Oracle Functions : Démarrer à l'aide de la CLI

Dans ce tutoriel, vous utiliserez un compte Oracle Cloud Infrastructure pour configurer le développement avec Oracle Functions. Ensuite, vous créerez une application de fonction et une fonction.

Voici les principales tâches :

  • Configurer un jeton d'authentification.
  • Collecter les informations requises.
  • Configurer un VCN.
  • Configurer le registre OCI (OCIR).
  • Configurer l'interface CLI pour déployer des fonctions
  • Configurer votre contexte Fn.
  • Créer une application pour votre fonction Oracle.
  • Créer une fonction.
  • Déployer votre fonction.
  • Tester votre fonction.
Images illustrant les composants OCI utilisés pour exécuter Oracle Functions.

Pour plus d'informations, voir :

Étapes préliminaires

Pour suivre ce tutoriel, vous devez disposer des éléments suivants :

Exigences en matière de compte OCI
Exigences en matière de logiciel

1. Collecter les informations requises

Collectez toutes les informations dont vous aurez besoin pour suivre le tutoriel.

Collecter des informations sur la région et le registre

Préparez les informations dont vous aurez besoin à partir de la console OCI.

  1. Recherchez l'identificateur de votre région et la clé de votre région dans Régions et domaines de disponibilité.

    Exemple : us-ashburn-1 et iad pour Ashburn.

  2. Créez un nom de projet de registre pour stocker vos images de fonction dans le registre OCI (OCIR).

    Lorsque vous publiez une fonction, une image Docker est créée dans OCIR. Le nom de votre projet OCIR est ajouté au début de vos images de fonction pour retrouver celles-ci plus facilement. Par exemple, avec :

    • Nom de projet de registre : my-func-prj
    • Nom de fonction : node-func

    Votre image de fonction serait stockée dans OCIR sous : my-func-prj/node-func

Créer ou sélectionner un compartiment

Pour créer un compartiment, voir Créer un compartiment. Une fois votre compartiment créé, enregistrez son OCID.

Pour obtenir l'OCID du compartiment à partir d'un compartiment existant :

  1. Dans le menu de navigation, cliquez sur Identité et sécurité. Sous Identity, cliquez sur Compartments.
  2. Sélectionnez votre compartiment.
  3. Cliquez sur le lien Copier pour le champ OCID.
Créer un jeton d'autorisation

Vous créez un jeton d'autorisation pour vous connecter au registre OCI. Pour créer un jeton d'autorisation :

  1. Dans le menu de navigation , sélectionnez le menu Profil Icône du menu Profil, puis sélectionnez Paramètres de l'utilisateur ou Mon profil, selon l'option que vous voyez.
  2. Cliquez sur Jetons d'authentification.
  3. Cliquez sur Générer un jeton.
  4. Indiquez une description.
  5. Cliquez sur Générer un jeton.
  6. Copiez le jeton et enregistrez-le.
    Note

    Enregistrez votre jeton juste après l'avoir créé. Vous ne pourrez plus y accéder ultérieurement.
Collecter vos informations

Collectez toutes les informations nécessaires pour suivre le tutoriel. Copiez les informations suivantes dans votre bloc-notes.

  1. région : <region-identifier>

    Exemple : us-ashburn-1.

  2. Clé de région : <region-key>

    Exemple : iad.

  3. Nom de projet de registre : <your-project-name>

    Exemple : my-func-prj.

  4. ID compartiment : <compartment-id>

    Exemple : ocid1.compartment.oc1.aaaaaaa...

  5. Jeton d'authentification : <auth-token>

    Exemple : ABC.1aBC...

  6. Nom de la location : <tenancy-name>

    À partir de votre avatar d'utilisateur, par exemple : mytenancyname

  7. OCID de la location : <tenancy-ocid>

    À partir de votre avatar d'utilisateur, allez à Location : <your-tenancy> et copiez l'OCID, par exemple : ocid1.tenancy.oc1.aaaaaaa...

  8. Nom d'utilisateur : <user-name>

    À partir de votre avatar d'utilisateur.

2. Créer votre réseau en nuage virtuel (VCN)

Configurez un VCN pour connecter votre instance Linux à Internet. Vous configurez tous les composants nécessaires pour créer votre réseau virtuel.

Exécuter l'Assistant VCN
  1. Cliquez sur l'icône Oracle Cloud pour accéder à la page de renvoi principale.
    • Accédez à Lancement de ressources.
    • Sélectionnez Configurer un réseau avec un assistant.
  2. Dans le flux de travail Démarrer l'assistant VCN, sélectionnez Créer un VCN avec connectivité Internet, puis Démarrer l'assistant VCN.
  3. Dans la boîte de dialogue de configuration, entrez le nom du VCN pour votre VCN. Votre compartiment est déjà réglé au dernier compartiment dans lequel vous avez travaillé, ou par défaut, à <your-tenancy> (root).
  4. Dans la section Configurer le VCN et les sous-réseaux, gardez les valeurs par défaut pour les blocs CIDR :
    • BLOC CIDR DE VCN : 10.0.0.0/16
    • BLOC CIDR DE SOUS-RÉSEAU PUBLIC : 10.0.0.0/24
    • BLOC CIDR DE SOUS-RÉSEAU PRIVÉ : 10.0.1.0/24
    Note

    Les sous-réseaux public et privé ont des adresses de réseau différentes.
  5. Pour la résolution DNS, désélectionnez Utiliser des noms d'hôte DNS dans ce VCN.
  6. Cliquez sur Suivant.

    La boîte de dialogue de configuration Créer un VCN avec connectivité Internet ne s'affiche pas ici pour confirmer toutes les valeurs que vous venez d'entrer.

  7. To create your VCN, click Create.

    La boîte de dialogue Création de ressources présente tous les composants VCN en cours de création.

Ajouter une règle de sécurité à votre VCN
  1. Cliquez sur Voir le réseau en nuage virtuel pour voir votre nouveau VCN.

    Votre nouveau VCN s'affiche. À présent, vous devez ajouter une règle de sécurité pour autoriser les connexions HTTP sur le port 80, utilisé par défaut pour vos applications.

  2. Maintenant que votre nouveau VCN est affiché, cliquez sur le lien de sous-réseau Public.

    Les informations sur le sous-réseau public s'affichent avec les listes de sécurité au bas de la page. Un lien vers la liste de sécurité par défaut de votre VCN est présent.

  3. Cliquez sur le lien Liste de sécurité par défaut.

    Les règles de trafic entrant par défaut pour votre VCN s'affichent.

  4. Cliquez sur Ajouter des règles de trafic entrant.

    Une boîte de dialogue Ajouter des règles de trafic entrant s'affiche.

  5. Entrez les informations suivantes pour la règle de trafic entrant. Une fois toutes les données entrées, cliquez sur Ajouter des règles de trafic entrant

    Définissez la règle de trafic entrant comme suit :

    • Sans état : Coché
    • Type de source : CIDR
    • CIDR source : 0.0.0.0/0
    • Protocole IP : TCP
    • Intervalle de ports sources : (Laissez vide)
    • Intervalle de ports de destination : 80
    • Description : VCN pour les applications

    Après que vous avez cliqué sur Ajouter une règle de trafic entrant, les connexions HTTP à votre sous-réseau public sont autorisées.

Note

Pour ouvrir un autre port, remplacez 80 à la dernière étape par le numéro de port voulu.

Vous avez créé un VCN qui rend vos applications disponibles à partir d'Internet.

3. Configurer l'interface de ligne de commande OCI

Pour développer des fonctions sur votre machine locale, vous devez configurer l'interface de ligne de commande (CLI) OCI. Cette section suppose que vous avez déjà installé Docker, Python 3.6+ et pip3.

Effectuez les étapes des trois sections suivantes pour activer le développement avec Oracle Functions sur votre machine locale à l'aide de l'interface de ligne de commande. Pour obtenir plus de détails sur chaque étape, voir Configurer Oracle Functions dans un environnement de développement local.

Configurer l'interface de ligne de commande avec Python

La configuration de l'interface CLI vous permet de déployer votre fonction et votre application de fonction dans le registre OCI à partir de votre machine. Commencez par installer l'interface CLI à l'aide de la fonction d'environnement virtuel de Python.

  1. Installez virtualenv :

    Un environnement virtuel vous permet de gérer les dépendances de votre projet. Chaque projet peut se trouver dans son propre environnement virtuel pour héberger des groupes indépendants de bibliothèques Python. Installez virtualenv et virtualenvwrapper.

    1. Ubuntu :
      sudo pip3 install virtualenv
      sudo pip3 install virtualenvwrapper
    2. Oracle Linux : Si vous utilisez une image OCI Oracle Linux 7.8, Python 3.6 et pip3 sont inclus par défaut. Si vous utilisez une autre image Oracle Linux, les commandes d'installation du référentiel de développement Oracle Linux et de Python 3.6 sont les suivantes. Si Python 3.6 est déjà installé dans votre image, ignorez les deux premières commandes et allez directement à la commande pip3.
      sudo yum install oracle-epel-release-el7
      sudo yum install python36
      sudo pip3 install virtualenv
      sudo pip3 install virtualenvwrapper
    3. MacOS : Lorsque vous installez Python 3 pour MacOS, pip3 est également installé, par conséquent, vous pouvez installer des modules avec pip3.
      brew install python3
      pip3 install pipenv
    Note

    Vous devrez peut-être taper "y" plusieurs fois pour accepter les ensembles qui sont installés sur la machine virtuelle.
  2. Créez un répertoire dans lequel stocker vos environnements virtuels. Par exemple, mkdir ~/envs crée un répertoire envs sous votre répertoire de base.
  3. Configurez votre encapsuleur d'environnement virtuel dans.bashrc.

    Mettez à jour le fichier :

    sudo vi .bashrc
    Note

    Le chemin d'accès à l'exécutable Python et à virtualwrapper.sh peut varier en fonction de la distribution Linux ou du système d'exploitation. Assurez-vous d'utiliser le bon chemin avec la commande which.

    Saisissez le texte suivant dans le fichier et enregistrez celui-ci :

    # set up Python env
    export WORKON_HOME=~/envs
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 '
    source /usr/local/bin/virtualenvwrapper.sh

    Activez les commandes précédentes dans la fenêtre courante.

    source ~/.bashrc
  4. Démarrez un environnement virtuel.
    mkvirtualenv cli-app
    Ce qui s'affiche ressemble à ceci : (cli-app) ubuntu@<ubuntu-instance-name:~$
  5. Installez l'interface CLI.
    pip3 install oci-cli
Configurer la connexion de l'interface CLI

Configurez l'interface CLI pour qu'elle puisse se connecter aux services OCI.

  1. Définissez le fichier de configuration de l'interface CLI.
    oci setup config

    Entrez les informations de base : (Utilisez les réponses de l'étape "Collecter les informations requises".)

    • Emplacement de votre configuration [$HOME/.oci/config] : <take-default>
    • OCID d'utilisateur : <user-ocid>
    • OCID de la location : <tenancy-ocid>
    • région (par exemple, us-ashburn-1) : <region-identifier>

    Configurez vos clés de chiffrement d'API OpenSSL :

    • Generate a new API Signing RSA key pairing? [Y/n] : Y
    • Répertoire de vos clés [$HOME/.oci] : <take-default>
    • Nom de votre clé [oci_api_key] <take-default>
    Note

    Votre clé privée est oci_api_key.pem et votre clé publique est oci_api_key_public.pem.
  2. Copiez la clé publique.
    Dans le terminal, entrez :
    cat $HOME/.oci/oci_api_key_public.pem
  3. Ajoutez la clé publique à votre compte d'utilisateur.
    • Dans le menu de navigation , sélectionnez le menu Profil Icône du menu Profil, puis sélectionnez Paramètres de l'utilisateur ou Mon profil, selon l'option que vous voyez.
    • Dans votre page Paramètres d'utilisateur, sous Ressources, cliquez sur clés d'API.
    • Cliquez sur Ajouter une clé publique.
    • Sélectionnez Coller les clés publiques.
    • Collez la valeur de l'étape précédente, y compris les lignes contenant BEGIN PUBLIC KEY et END PUBLIC KEY
    • Cliquez sur Ajouter.
    Vous avez maintenant configuré l'interface CLI pour vous connecter à votre location avec votre compte d'utilisateur.
  4. Testez l'installation :
    oci os ns get

    Si tout est configuré correctement, votre espace de noms s'affiche.

  5. Désactivez l'environnement virtuel :
    deactivate

    Le préfixe (cli-app) n'est plus affiché devant le nom de votre environnement.

    Note

    • Chaque fois que vous souhaitez utiliser l'interface CLI, activez-la en tapant : workon cli-app
    • Si vous modifiez des noms de projet, workon désactive l'environnement dans lequel vous vous trouvez. De cette façon, vous pouvez rapidement passer d'un environnement à l'autre.
Configurer le client Fn

Pour le développement de fonctions sur votre machine locale, vous devez installer le client Fn. Fn vous permet de créer des fonctions, créer des applications et déployer des fonctions dans le registre OCI.

  1. Installez le client Fn.

    Le client Fn est utilisé pour créer, gérer et déployer Oracle Functions. Pour installer le client :

    Option de ligne de commande pour Linux, MacOS et la mise à jour Windows 10 2004 (WSL 2.0) :

    Entrez :

    curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
                        
    Note

    Réexécutez régulièrement la commande d'installation pour effectuer une mise à niveau vers la dernière version de Fn.

    MacOS à l'aide de Homebrew :

    Entrez :

    brew install fn
    Note

    Fn est mis à jour dans le cadre des mises à niveau classiques de Homebrew : brew upgrade.
  2. Testez votre installation Fn.

    Entrez : fn version

    La commande retourne un texte semblable à celui qui suit :

    Client version is latest version: 0.6.3
    Server version: ?    
                        
    Note

    La réponse indique que vous avez installé la version courante et que le serveur Fn Project n'est pas en cours d'exécution sur votre machine locale.

4. Préparer le registre OCI pour Oracle Functions

À présent, journalisez Docker dans le registre OCI (OCIR).

Journaliser votre Docker dans OCIR
  1. Récupérez les informations que vous avez collectées plus tôt.
  2. Ouvrez une fenêtre de terminal.
  3. Connectez-vous à OCIR :
    docker login <region-key>.ocir.io

    Vous êtes invité à entrer votre nom de connexion et votre mot de passe.

    • Nom d'utilisateur : <tenancy-name>/<user-name>
    • Mot de passe : <auth-token>

Vous avez journalisé votre instance dans OCIR.

5. Configurer Oracle Functions

Pour utiliser Oracle Functions, vous devez configurer le contexte d'application Fn. Le contexte stocke les valeurs nécessaires pour se connecter au service Oracle Functions.

Configurer le contexte Fn

Utilisez les informations que vous avez collectées plus tôt pour vos valeurs de configuration.

  1. Ouvrez une instance de terminal.
  2. Obtenez une liste de contextes Fn.

    fn list context

    Le contexte default est sélectionné.

  3. Créez un contexte Fn pour Oracle Functions. La valeur <region-identifier> est un nom approprié pour votre contexte.

    Exemple de commande : fn create context <region-identifier> --provider oracle

    Exemple : fn create context us-phoenix-1 --provider oracle

  4. Utilisez le contexte que vous avez créé.

    Exemple : fn use context us-phoenix-1

  5. Définissez le compartiment pour Oracle Functions.

    Exemple : fn update context oracle.compartment-id ocid1.compartment.oc1..aaaaaa...

  6. Définissez l'URL d'API de votre région Oracle Functions.

    Exemple : fn update context api-url https://functions.us-phoenix-1.oci.oraclecloud.com

    Note

    Vous trouverez les points d'extrémité d'API ici : Points d'extrémité d'API Oracle Functions
  7. Définissez l'URL de votre référentiel de registre.

    Exemple de commande : fn update context registry <region-key>.ocir.io/<tenancy-namespace>/<repo-name>

    Exemple : fn update context registry phx.ocir.io/my-tenancy/myproject/repo

Note

Si vous utilisez plusieurs profils pour l'interface CLI, vous devez définir une valeur oracle.profile.

Exemple : fn update context oracle.profile <profile-name>

Vous avez configuré Fn pour vous connecter au service Oracle Functions.

Note

Voir/Modifier un contexte

Vos fichiers de contexte Fn se trouvent dans le répertoire ~/.fn/contexts. Chaque contexte est stocké dans un fichier .yaml. Par exemple, votre fichier us-phoenix-1.yaml peut ressembler à ceci :

api-url: https://functions.us-phoenix-1.oci.oraclecloud.com
oracle.compartment-id: ocid1.compartment.oc1..aaaaaaa...
provider: oracle
registry: phx.ocir.io/my-tenancy/myproject/repo

Vous pouvez modifier le fichier directement à l'aide d'un éditeur si nécessaire.

Pour obtenir plus de détails sur chaque étape, voir : Guide de démarrage rapide pour Oracle Functions dans un environnement de développement local.

6. Créer et déployer une fonction

Maintenant que votre configuration est terminée, créez et déployez une fonction.

Créer une application

Une application est le principal conteneur de stockage pour les fonctions. Chaque fonction doit être dotée d'une application à des fins de déploiement. Pour créer une application, procédez de la façon suivante.

  1. Ouvrez le menu de navigation et cliquez sur Services de développement. Sous Fonctions, cliquez sur Applications.
  2. Cliquez sur Créer une application.

    Complétez le formulaire.

    • Nom : <your-app-name>
    • VCN : <your-VCN>
    • sous-réseaux : <your-public-subnet> ou <your-private-subnet>
    Note

    Il est possible d'utiliser un sous-réseau public ou privé. Sélectionnez l'un ou l'autre.
  3. Cliquez sur Créer.

Votre application est créée.

Créer et déployer votre fonction

Sélectionnez l'un des langages suivants pour créer et déployer une fonction. Si vous le souhaitez, vous pouvez exécuter les trois procédures.

Créer et déployer une fonction Java

Maintenant que vous avez créé votre application, déployez une fonction Java. Procédez de la façon suivante pour créer une fonction Java "Hello World".

Note

Assurez-vous que Java 8+ est installé avant d'effectuer les étapes suivantes.
  1. Ouvrez une fenêtre de terminal.
  2. Créez un répertoire dans lequel stocker vos fonctions et accédez à ce répertoire.
    mkdir my-dir-name
    cd my-dir-name                        
                        
  3. Créez une fonction Java "Hello World" avec Fn.
    fn init --runtime java my-func-name

    Cette commande crée un répertoire nommé my-func-name comportant plusieurs fichiers.

    • func.yaml - Fichier de configuration de la fonction.
    • pom.xml - Fichier de génération Maven.
    • src/main/java/com/example/fn/HelloFunction.java - Fichier de la fonction.
  4. Accédez au répertoire.
  5. Déployez la fonction.
    fn -v deploy --app your-app-name

    Divers messages s'affichent au fur et à mesure que les images Docker sont créées, poussées vers OCIR, puis déployées dans Oracle Functions.

  6. Appelez la fonction.
    fn invoke your-app-name my-func-name

    Retourne : Hello, world!

  7. Appelez la fonction avec un paramètre.
    echo -n "Bob" | fn invoke your-app-name my-func-name

    Retourne : Hello, Bob!

  8. Si vous voulez vous connecter à votre fonction à partir du réseau, vous devez obtenir le point d'extrémité d'appel de la fonction. Pour déterminer votre point d'extrémité d'appel, utilisez la commande inspect.
    fn inspect function your-app-name my-func-name
  9. Examinez les résultats de la commande inspect. Notez que l'URL de point d'extrémité d'appel est incluse dans la section annotations des données JSON retournées.
    {
        "annotations": {
            "fnproject.io/fn/invokeEndpoint": "https://aaaaaaaaa.us-ashburn-1.functions.oci.oraclecloud.com/1111111/functions/ocid1.fnfunc.oc1.iad.aaaaaaaaa.../actions/invoke",
            "oracle.com/oci/compartmentId": "ocid1.compartment.oc1..aaaaaaaa...",
            "__comment":"Remaining output left out for brevity",
    
  10. Utilisez l'URL retournée par inspect pour appeler la fonction. Comme les fonctions nécessitent que les demandes soient signées numériquement, la commande oci raw-request est utilisée pour cet exemple.
    oci raw-request --http-method POST --request-body "" --target-uri https://https://aaaaaaaaa.us-ashburn-1.functions.oci.oraclecloud.com/1111111/functions/ocid1.fnfunc.oc1.iad.aaaaaaaaa.../actions/invoke

    La commande retourne :

    {
        "data": "Hello, world!",
        "headers": {
            "Content-Length": "13",
            "Content-Type": "text/plain",
            "Date": "Tue, 20 Oct 2020 00:53:08 GMT",
            "Fn-Call-Id": "11111111111",
            "Fn-Fdk-Version": "fdk-java/1.0.111 (jvm=OpenJDK 64-Bit Server VM, jvmv=11.0.8)",
            "Opc-Request-Id": "1111111/11111"
        },
        "status": "200 OK"
    }
    Note

    Vous pouvez vous connecter à un point d'extrémité Oracle Functions à l'aide d'outils comme curl. Toutefois, pour des raisons de sécurité, le script est complexe. Vous pouvez également utiliser la commande raw-request de l'interface de ligne de commande OCI. Voir Appel de fonctions : Envoi d'une demande signée à une fonction à l'aide de raw-request.

Vous avez déployé et testé une fonction Java.

Créer et déployer une fonction Python

Maintenant que vous avez créé votre application, déployez une fonction Python. Procédez de la façon suivante pour créer une fonction Python "Hello World".

  1. Ouvrez une fenêtre de terminal.
  2. Créez un répertoire dans lequel stocker vos fonctions et accédez à ce répertoire.
    mkdir my-dir-name
    cd my-dir-name                        
                        
  3. Créez une fonction Python "Hello World" avec Fn.
    fn init --runtime python my-func-name

    Cette commande crée un répertoire nommé my-func-name comportant plusieurs fichiers.

    • func.yaml - Fichier de configuration de la fonction.
    • requirements.txt - Liste des bibliothèques Python requises.
    • func.py - Fichier de la fonction.
  4. Accédez au répertoire.
  5. Déployez la fonction.
    fn -v deploy --app your-app-name

    Divers messages s'affichent au fur et à mesure que les images Docker sont créées, poussées vers OCIR, puis déployées dans Oracle Functions.

  6. Appelez la fonction.
    fn invoke your-app-name my-func-name

    Retourne : {"message": "Hello World"}

  7. Appelez la fonction avec un paramètre.
    echo -n '{"name":"Bob"}' | fn invoke your-app-name my-func-name

    Retourne : {"message": "Hello Bob"}

  8. Si vous voulez vous connecter à votre fonction à partir du réseau, vous devez obtenir le point d'extrémité d'appel de la fonction. Pour déterminer votre point d'extrémité d'appel, utilisez la commande inspect.
    fn inspect function your-app-name my-func-name
  9. Examinez les résultats de la commande inspect. Notez que l'URL de point d'extrémité d'appel est incluse dans la section annotations des données JSON retournées.
    {
        "annotations": {
            "fnproject.io/fn/invokeEndpoint": "https://aaaaaaaaa.us-ashburn-1.functions.oci.oraclecloud.com/1111111/functions/ocid1.fnfunc.oc1.iad.aaaaaaaaa.../actions/invoke",
            "oracle.com/oci/compartmentId": "ocid1.compartment.oc1..aaaaaaaa...",
            "__comment":"Remaining output left out for brevity",
    
  10. Utilisez l'URL retournée par inspect pour appeler la fonction. Comme les fonctions nécessitent que les demandes soient signées numériquement, la commande oci raw-request est utilisée pour cet exemple.
    oci raw-request --http-method POST --request-body "" --target-uri https://aaaaaaaaa.us-ashburn-1.functions.oci.oraclecloud.com/1111111/functions/ocid1.fnfunc.oc1.iad.aaaaaaaaa.../actions/invoke

    La commande retourne :

    {
        "data": "Hello World",
        "headers": {
            "Content-Length": "24",
            "Content-Type": "application/json",
            "Date": "Tue, 20 Oct 2020 00:53:08 GMT",
            "Fn-Call-Id": "11111111111",
            "Fn-Fdk-Version": "fdk-python/0.1.18",
            "Opc-Request-Id": "1111111/11111"
        },
        "status": "200 OK"
    }
    Note

    Vous pouvez vous connecter à un point d'extrémité Oracle Functions à l'aide d'outils comme curl. Toutefois, pour des raisons de sécurité, le script est complexe. Vous pouvez également utiliser la commande raw-request de l'interface de ligne de commande OCI. Voir Appel de fonctions : Envoi d'une demande signée à une fonction à l'aide de raw-request.

Vous avez déployé et testé une fonction Python.

Créer et déployer une fonction Node

Maintenant que vous avez créé votre application, déployez une fonction Node. Procédez de la façon suivante pour créer une fonction Node "Hello World".

Note

Assurez-vous que Node.js 10+ est installé avant d'effectuer les étapes suivantes.
  1. Ouvrez une fenêtre de terminal.
  2. Créez un répertoire dans lequel stocker vos fonctions et accédez à ce répertoire.
    mkdir my-dir-name
    cd my-dir-name                        
                        
  3. Créez une fonction Node "Hello World" avec Fn.
    fn init --runtime node my-func-name

    Cette commande crée un répertoire nommé my-func-name comportant plusieurs fichiers.

    • func.yaml - Fichier de configuration de la fonction.
    • package.json - Fichier de génération NPM.
    • func.js - Fichier de la fonction.
  4. Accédez au répertoire.
  5. Déployez la fonction.
    fn -v deploy --app your-app-name

    Divers messages s'affichent au fur et à mesure que les images Docker sont créées, poussées vers OCIR, puis déployées dans Oracle Functions.

  6. Appelez la fonction.
    fn invoke your-app-name my-func-name

    Retourne : {"message":"Hello World"}

  7. Appelez la fonction avec un paramètre.
    echo -n '{"name":"Bob"}' | fn invoke your-app-name my-func-name

    Retourne : {"message":"Hello Bob"}

  8. Si vous voulez vous connecter à votre fonction à partir du réseau, vous devez obtenir le point d'extrémité d'appel de la fonction. Pour déterminer votre point d'extrémité d'appel, utilisez la commande inspect.
    fn inspect function your-app-name my-func-name
  9. Examinez les résultats de la commande inspect. Notez que l'URL de point d'extrémité d'appel est incluse dans la section annotations des données JSON retournées.
    {
        "annotations": {
            "fnproject.io/fn/invokeEndpoint": "https://aaaaaaaaa.us-ashburn-1.functions.oci.oraclecloud.com/1111111/functions/ocid1.fnfunc.oc1.iad.aaaaaaaaa.../actions/invoke",
            "oracle.com/oci/compartmentId": "ocid1.compartment.oc1..aaaaaaaa...",
            "__comment":"Remaining output left out for brevity",
    
  10. Utilisez l'URL retournée par inspect pour appeler la fonction. Comme les fonctions nécessitent que les demandes soient signées numériquement, la commande oci raw-request est utilisée pour cet exemple.
    oci raw-request --http-method POST --request-body "" --target-uri https://https://aaaaaaaaa.us-ashburn-1.functions.oci.oraclecloud.com/1111111/functions/ocid1.fnfunc.oc1.iad.aaaaaaaaa.../actions/invoke

    La commande retourne :

    {
        "data": "Hello World",
        "headers": {
            "Content-Length": "23",
            "Content-Type": "application/json",
            "Date": "Tue, 22 Oct 2020 00:53:08 GMT",
            "Fn-Call-Id": "11111111111",
            "Fn-Fdk-Version": "fdk-node/0.1.18 (njsv=v11.15.0)",
            "Opc-Request-Id": "1111111/11111"
        },
        "status": "200 OK"
    }
    Note

    Vous pouvez vous connecter à un point d'extrémité Oracle Functions à l'aide d'outils comme curl. Toutefois, pour des raisons de sécurité, le script est complexe. Vous pouvez également utiliser la commande raw-request de l'interface de ligne de commande OCI. Voir Appel de fonctions : Envoi d'une demande signée à une fonction à l'aide de raw-request.

Vous avez déployé et testé une fonction Node.

7. Vérifier les informations sur la fonction

Une fois vos fonctions exécutées, des informations les concernant sont disponibles dans la console OCI.

Voir les images de fonction dans OCIR

Lors du déploiement, la fonction est chargée et stockée dans OCIR. Vous pouvez naviguer jusqu'à OCIR et examiner les images de fonction.

  1. Ouvrez le menu de navigation et cliquez sur Services de développement. Sous Conteneurs et artificiels, cliquez sur Container Registry.
  2. Recherchez <your-repository-project-name>.
  3. Sous le nom de votre projet, figure une entrée pour chaque fonction que vous avez déployée.
  4. Cliquez sur le lien de chaque image pour laquelle vous souhaitez voir des informations.
Voir les informations sur l'exécution de la fonction

Après avoir exécuté une fonction, vous pouvez afficher des mesures pour cette fonction.

  1. Ouvrez le menu de navigation et cliquez sur Services de développement. Sous Fonctions, cliquez sur Applications.

    Vos applications s'affichent sur la page.

  2. Cliquez sur le lien vers l'application que vous avez créée.
  3. Cliquez sur le lien vers la fonction que vous souhaitez examiner.

    Les mesures relatives à votre fonction s'affichent.

Activer et voir les informations de journalisation

Pour activer la journalisation d'une application, procédez de la façon suivante.

  1. Ouvrez le menu de navigation et cliquez sur Services de développement. Sous Fonctions, cliquez sur Applications.
  2. Cliquez sur le lien vers l'application que vous avez créée.
  3. Dans la partie gauche de la page de l'application, cliquez sur le lien Logs.
  4. Cliquez sur Désactivé pour activer la journalisation de votre application.
  5. La boîte de dialogue Activer le journal s'affiche. Entrez les informations suivantes :
    • compartiment : <your-compartment-name>
    • Groupe de journaux : Utilisez la valeur par défaut Auto-Create a Default Log Group
    • Nom du journal : <utiliser la valeur par défaut>
    • Conservation des journaux : <utiliser la valeur par défaut>
    • Cliquez sur Activer le journal

      Attendez un instant que votre journal soit créé.

Pour voir votre journal, cliquez sur le lien de nom de journal créé par les étapes précédentes.