Démarrage rapide de Functions sur l'hôte local

Découvrez comment être configuré et exécuté rapidement sur un hôte local à l'aide de OCI Functions QuickStart.

A. Configurez la location

1. Créer des groupes et des utilisateurs

Si des utilisateurs et des groupes appropriés n'existent pas déjà :

  1. Connectez-vous à la console en tant qu'administrateur de location.
  2. Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Identité, sélectionnez Domaines.
  3. Sélectionnez un domaine, puis sélectionnez l'onglet Gestion des utilisateurs.
  4. Créez un groupe en sélectionnant Créer un groupe dans la section Groupes.
  5. Créez un utilisateur en sélectionnant Créer dans la section Utilisateurs.
  6. Ajoutez un utilisateur à un groupe en sélectionnant son nom, puis Affectez un utilisateur à un groupe dans l'onglet Utilisateurs.

Pour plus d'informations, reportez-vous à Notes de configuration.

2. Créer un compartiment

Si un compartiment approprié dans lequel créer des ressources réseau et des ressources OCI Functions n'existe pas déjà :

  1. Connectez-vous à la console en tant qu'administrateur de location.
  2. Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Identité, sélectionnez Compartiments.
  3. Sélectionnez Créer un compartiment.

Pour plus d'informations, reportez-vous à Notes de configuration.

3. Créer un VCN et des sous-réseaux

Si un VCN approprié dans lequel créer des ressources réseau n'existe pas déjà :

  1. Connectez-vous à la console en tant qu'administrateur de location.
  2. Ouvrez le menu de navigation , sélectionnez Fonctions de réseau, puis Réseaux cloud virtuels.
  3. Sélectionnez Démarrer l'assistant VCN dans le menu Actions pour créer un VCN.
  4. Dans le panneau Démarrer l'assistant VCN, sélectionnez Créer un VCN avec la connectivité Internet et Démarrer l'assistant VCN.
  5. Entrez un nom pour le nouveau VCN, sélectionnez Suivant, puis sélectionnez Créer pour créer le VCN avec les ressources réseau associées.

Pour plus d'informations, reportez-vous à Notes de configuration.

4. Créer une stratégie pour le groupe et le service

Si des utilisateurs OCI Functions ne sont pas des administrateurs de location, procédez comme suit :

  1. Connectez-vous à la console en tant qu'administrateur de location.
  2. Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Identité, sélectionnez Stratégies.
  3. Sélectionnez Créer une stratégie, indiquez le nom et la description de la nouvelle stratégie, puis sélectionnez le compartiment racine de la location.

  4. Utilisez Policy Builder pour créer la stratégie. Sélectionnez Fonctions dans la liste des cas d'emploi de stratégie et basez la stratégie sur le modèle de stratégie Autoriser les utilisateurs à créer, déployer et gérer des fonctions et des applications.

    Le modèle de stratégie comprend les instructions de stratégie suivantes :

    • 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 nécessaire, vous pouvez restreindre ces instructions de stratégie par compartiment.

Pour plus d'informations, reportez-vous à Notes de configuration.

B. Création d'application

1. Créez votre première application
  1. Connectez-vous à la console en tant que développeur de fonctions.
  2. Ouvrez le menu de navigation et sélectionnez Services de développeur. Sous Fonctions, sélectionnez Applications.
  3. Sélectionnez la région que vous utilisez avec OCI Functions.
  4. Sélectionnez Create application (Créer une application).
  5. Indiquez l'une des valeurs suivantes :
    • helloworld-app comme nom de la nouvelle application. Vous allez déployer votre première fonction dans cette application et la spécifier lors de l'appel de la fonction.
    • VCN et sous-réseau dans lesquels exécuter la fonction. Un sous-réseau public requiert une passerelle Internet dans le VCN, et un sous-réseau privé requiert une passerelle de service dans le VCN.
  6. Choisissez Créer.

Pour plus d'informations, reportez-vous à instructions détaillées.

C. Configurer votre environnement de développement d'hôte local

1. Installer et démarrer Docker

Dans une fenêtre de terminal de votre environnement de développement :

  1. Confirmez l'installation de Docker en entrant :
    docker version

    Si un message d'erreur indique que Docker n'est pas installé, vous devez installer Docker avant de continuer. Reportez-vous à la documentation Docker correspondant à votre plate-forme (pour Oracle Linux, reportez-vous ici).

    En supposant que Docker est installé, accédez à la section Prérequis de la page d'accueil du projet Fn sur GitHub et vérifiez que la version installée de Docker est au moins la version minimale indiquée. Si ce n'est pas le cas, réinstallez Docker avant de continuer.

  2. Lancez l'image Docker standard hello-world en tant que conteneur pour vérifier que Docker est en cours d'exécution en saisissant la commande suivante :
    docker run hello-world

    Si un message d'erreur indique que Docker n'est pas en cours d'exécution, vous devez démarrer le démon Docker avant de continuer. Reportez-vous à la documentation Docker.

Pour plus d'informations, reportez-vous à Notes de configuration.

2. Configurer la clé de signature d'API et le profil OCI
  1. Connectez-vous à la console en tant que développeur de fonctions.
  2. Dans le menu de navigation , sélectionnez le menu Profil Icône du menu Profil, puis sélectionnez Paramètres d'utilisateur ou Mon profil, selon l'option que vous voyez.
  3. Sélectionnez l'onglet Jetons et clés, accédez à la section Clés d'API et sélectionnez Ajouter une clé d'API.
  4. Sélectionnez Générer une paire de clés d'API dans le panneau Ajouter une clé d'API.
  5. Sélectionnez Télécharger la clé privée et enregistrez le fichier des clés privées (en tant que fichier .pem) dans ~/.oci. (Si le répertoire ~/.oci n'existe pas, créez-le maintenant.)
  6. Sélectionnez Ajouter pour ajouter la nouvelle clé de signature d'API à vos paramètres utilisateur.

    La boîte de dialogue Aperçu du fichier de configuration apparaît, contenant un fragment de code de fichier de configuration avec des informations d'authentification de base pour un profil nommé DEFAULT (y compris l'empreinte de la clé de signature d'API que vous venez de créer).

  7. Copiez le fragment de code du fichier de configuration affiché dans la zone de texte et fermez la boîte de dialogue Aperçu du fichier de configuration.
  8. Dans un éditeur de texte, ouvrez le fichier ~/.oci/config et collez le fragment de code dans le fichier. (Si le fichier ~/.oci/config n'existe pas encore, créez-le maintenant).
  9. Dans l'éditeur de texte, modifiez le profil dans le fragment de code que vous venez de coller, comme suit :
    • Remplacez le nom du profil [DEFAULT] par le nom de votre choix (par exemple, [functions-developer-profile]). Le fichier ~/.oci/config ne peut pas contenir deux profils portant le même nom.
    • Modifiez la valeur du paramètre key_file du profil pour indiquer le chemin du fichier de clés privées (fichier .pem) que vous avez téléchargé précédemment.
  10. Dans l'éditeur de texte, enregistrez les modifications apportées au fichier ~/.oci/config et fermez l'éditeur de texte.
  11. Dans une fenêtre de terminal, modifiez les droits d'accès au fichier de clés privées (fichier .pem) pour vous assurer que vous êtes le seul à pouvoir le lire, en saisissant la commande suivante :
    chmod go-rwx ~/.oci/<private-key-file-name>.pem

Pour plus d'informations sur la configuration d'une clé de signature d'API et la création d'un profil, reportez-vous aux notes de configuration.

3. Installation de l'interface de ligne de commande du projet Fn

Dans une fenêtre de terminal de votre environnement de développement :

  1. Installez l'interface de ligne de commande du projet Fn en suivant les instructions appropriées ci-dessous pour votre environnement :
    • Linux ou MacOS : entrez :
      curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
    • MacOS avec Homebrew : entrez :
      brew update && brew install fn
    • Windows : suivez les instructions d'installation du client Fn sur GitHub.
    • Linux, MacOS ou Windows : téléchargez et exécutez le fichier binaire à partir de la page Versions de projet Fn sur GitHub.
  2. Vérifiez que l'interface de ligne de commande du projet Fn a été installée en saisissant la commande suivante :
    fn version

Pour plus d'informations, reportez-vous à Notes de configuration.

4. Configurer le fournisseur de contexte de la CLI du projet Fn --oracle

Dans une fenêtre de terminal de votre environnement de développement :

  1. Créez un contexte dans l'interface de ligne de commande du projet Fn en entrant la commande suivante :
    fn create context <my-context> --provider oracle

    Vous indiquez --provider oracle pour activer l'authentification et l'autorisation à l'aide de la signature de demande, des clés privées, des groupes d'utilisateurs et des stratégies Oracle Cloud Infrastructure accordant à ces derniers des droits d'accès.

  2. Indiquez que l'interface de ligne de commande du projet Fn doit utiliser le nouveau contexte en saisissant la commande suivante :
    fn use context <my-context>
  3. Configurez le nouveau contexte d'interface de ligne de commande du projet Fn avec le nom du profil OCI que vous avez créé pour l'utiliser avec OCI Functions (par exemple, [functions-developer-profile]) en saisissant ce qui suit :
    fn update context oracle.profile <profile-name>

Pour plus d'informations, reportez-vous à Notes de configuration.

5. Terminer la configuration du contexte de l'interface de ligne de commande du projet Fn

Dans une fenêtre de terminal de votre environnement de développement :

  1. Configurer le nouveau contexte d'interface de ligne de commande du projet Fn avec l'OCID du compartiment dont vous souhaitez être propriétaire pour les fonctions déployées
    fn update context oracle.compartment-id <compartment-ocid>
  2. Configurez le nouveau contexte avec l'adresse API-url à utiliser lors de l'appel de l'API OCI en saisissant la commande suivante :
    fn update context api-url <api-endpoint>

    <api-endpoint> représente l'une des adresses dans la liste des adresses Functions dans l'API Functions, au format https://functions.<region-identifier>.oci.oraclecloud.com. Par exemple :

    fn update context api-url https://functions.us-phoenix-1.oci.oraclecloud.com
  3. Configurez le contexte d'interface de ligne de commande du projet Fn avec l'adresse Oracle Cloud Infrastructure Registry dans la région et la location en cours à utiliser avec OCI Functions :

    fn update context registry <region-key>.ocir.io/<tenancy-namespace>/<repo-name-prefix>

    <repo-name-prefix> est le préfixe de votre choix pour le référentiel Oracle Cloud Infrastructure Registry dans lequel stocker les images de la fonction. Par exemple :

    fn update context registry phx.ocir.io/ansh81vru1zp/acme-repo
  4. Configurez le contexte de l'interface de ligne de commande du projet Fn avec l'OCID du compartiment pour les référentiels vers et à partir desquels OCI Functions doit propager et extraire des images de fonction, en saisissant ce qui suit :

    fn update context oracle.image-compartment-id <compartment-ocid>

    Par exemple :

    fn update context oracle.image-compartment-id ocid1.compartment.oc1..aaaaaaaaquqe______z2q

    Si vous n'indiquez pas de valeur pour oracle.image-compartment-id, OCI Functions propage et extrait des images vers et depuis des référentiels dans le compartiment racine.

Pour plus d'informations, reportez-vous à Notes de configuration.

6. Générer un jeton d'authentification
  1. Connectez-vous à la console en tant que développeur de fonctions.
  2. Dans le menu de navigation , sélectionnez le menu Profil Icône du menu Profil, puis sélectionnez Paramètres d'utilisateur ou Mon profil, selon l'option que vous voyez.
  3. Sélectionnez l'onglet Jetons et clés, accédez à la section Jetons d'authentification et sélectionnez Générer un jeton.
  4. Entrez une description explicite du jeton d'authentification dans la boîte de dialogue Générer un jeton, puis sélectionnez Générer un jeton. Le nouveau jeton d'authentification s'affiche.
  5. Copiez le jeton d'authentification immédiatement vers un emplacement sécurisé à partir duquel vous pourrez l'extraire ultérieurement, car il ne s'affichera plus dans la console.
  6. Fermez la boîte De dialogue Générer un token.

Pour plus d'informations, reportez-vous à Notes de configuration.

7. Se connecter au registre

Dans le panneau Configuration locale de la console :

  1. Copiez la commande suivante :

    docker login -u '<tenancy-namespace>/<user-name>' <region-key>.ocir.io

    Par exemple :

    docker login -u 'ansh81vru1zp/jdoe@acme.com' phx.ocir.io

    Si votre location est fédérée avec Oracle Identity Cloud Service, le format sera légèrement différent. Par exemple :

    docker login -u 'ansh81vru1zp/oracleidentitycloudservice/jdoe@acme.com' phx.ocir.io
  2. Dans la fenêtre de terminal, collez la commande que vous venez de copier et exécutez-la.
  3. Lorsque vous êtes invité à saisir un mot de passe, saisissez le jeton d'authentification Oracle Cloud Infrastructure que vous avez créé et copié précédemment. Par exemple, 6aN...6MqX

    Vous êtes maintenant prêt à commencer à créer, déployer et appeler des fonctions.

Pour plus d'informations, reportez-vous à Notes de configuration.

J. Créer, déployer et appeler votre fonction

1. Créez votre première fonction

Dans la fenêtre de terminal :

  1. Créez une fonction java helloworld en saisissant la commande suivante :

    fn init --runtime java hello-java

    Un répertoire nommé hello-java est créé, contenant :

    • un fichier de définition de fonction appelé func.yaml
    • un répertoire /src contenant des fichiers et répertoires source pour la fonction helloworld
    • un fichier de configuration Maven appelé pom.xml qui indique les dépendances requises pour compiler la fonction

    Java n'est qu'un des nombreux langages pris en charge.

    Pour plus d'informations, reportez-vous à instructions détaillées.

2. Déployer la première fonction

Dans la fenêtre de terminal :

  1. Accédez au répertoire hello-java créé à l'étape précédente :
    cd hello-java
  2. Saisissez la commande unique suivante du projet Fn pour construire la fonction et ses dépendances sous la forme d'une image Docker appelée hello-java, propager l'image vers le registre Docker indiqué et déployer la fonction vers OCI Functions dans l'application helloworld-app que vous avez créée précédemment :
    fn -v deploy --app helloworld-app
  3. (Facultatif) Vérifiez que la fonction a été déployée vers OCI Functions en sélectionnant l'onglet Fonctions (sur la page de détails de l'application helloworld-app) et en notant que la fonction hello-java apparaît désormais.

Pour plus d'informations, reportez-vous à instructions détaillées.

3. Appeler votre première fonction

Dans la fenêtre de terminal :

  1. Appelez la fonction hello-java en saisissant la commande suivante :

    fn invoke helloworld-app hello-java

    Le message "Hello world !" s'affiche.

  2. Appelez la fonction hello-java avec le paramètre 'John' en saisissant ce qui suit :

    echo -n 'John' | fn invoke helloworld-app hello-java

    Le message "Hello John !" s'affiche.

Félicitations ! Vous venez de créer, déployer et appeler votre première fonction à l'aide d'OCI Functions.

Pour plus d'informations, reportez-vous à instructions détaillées.

4. Etapes suivantes

Maintenant que vous avez créé, déployé et appelé une fonction, découvrez comment :

C'est fait !