Création et déploiement de fonctions

Découvrez comment créer et déployer des fonctions dans le service des fonctions pour OCI à l'aide des commandes de l'interface de ligne de commande Fn Project.

Utilisez les commandes de l'interface de ligne de commande Fn Project pour créer et déployer des fonctions dans le service des fonctions pour OCI.

Conseil

Si vous ne parvenez pas à effectuer une des étapes de cette rubrique, consultez les solutions aux problèmes communs (voir Dépannage du service des fonctions pour OCI).

Utilisation des commandes de l'interface de ligne de commande Fn Project

Conseil

De temps en temps, de nouvelles versions de l'interface de ligne de commande Fn Project sont publiées. Nous vous recommandons de vérifier régulièrement que la dernière version est installée. Pour plus d'informations, voir Étapes de mise à niveau de l'interface de ligne de commande Fn Project.

Pour créer et déployer une fonction dans le service des fonctions pour OCI à l'aide des commandes de l'interface de ligne de commande Fn Project :

  1. Confirmez que vous avez terminé les étapes dans les guides du service des fonctions QuickStart.
  2. Si l'application à laquelle vous voulez ajouter la fonction n'existe pas encore dans OCI Functions, créez-la maintenant à l'aide de l'interface de ligne de commande Fn Project ou de la console. Par exemple, vous pouvez créer une nouvelle application nommée acmeapp. Voir Création d'applications.

  3. Connectez-vous à votre environnement de développement en tant que développeur de fonctions.

  4. Dans une fenêtre de terminal, accédez au répertoire contenant le code de fonction.

  5. Initialisez la fonction en entrant :

    fn init --runtime <runtime-language> <function-name>

    où :

    • <runtime-language> est un des langages d'exécution pris en charge (actuellement go, java, node, python, ruby et dotnet (pour C#) sont pris en charge)
    • <function-name> est le nom à utiliser comme nom de fonction. Si vous ne spécifiez pas de nom de fonction, le nom du répertoire courant (en minuscules) est utilisé. Évitez d'entrer des informations confidentielles.

    Par exemple :

    fn init --runtime java acme-func

    Un répertoire est créé avec le nom de fonction que vous avez spécifié, contenant :

    • Un fichier de définition de fonction appelé func.yaml, qui comporte la quantité minimale d'informations requises pour créer et exécuter la fonction. Voir la documentation Fn Project pour en savoir plus sur les paramètres supplémentaires que vous pouvez inclure dans un fichier func.yaml.
    • Un répertoire source (/src) contenant des fichiers et répertoires sources.
    • Un fichier de configuration Maven appelé pom.xml qui indique les artefacts et dépendances du projet requis pour compiler la fonction à partir des fichiers sources.

    Notez que, selon le langage d'exécution que vous spécifiez, la commande fn init peut créer un exemple de répertoire (/example) contenant du code pour une application helloworld. Il est recommandé, en tant que bonne pratique, de supprimer le répertoire /example.

  6. Remplacez le répertoire par le nouveau répertoire créé.
  7. Entrez la commande Fn Project suivante pour créer la fonction et ses dépendances en tant qu'image Docker, pousser l'image dans le registre Docker spécifié et déployer la fonction dans le service des fonctions pour OCI :

    fn -v deploy --app <app-name>

    <app-name> représente le nom de l'application dans le service des fonctions pour OCI à laquelle vous souhaitez ajouter la fonction. Par exemple :

    fn -v deploy --app acmeapp

    L'option -v présente simplement plus de détails sur les commandes Fn Project (voir Utilisation de l'interface de ligne de commande Fn Project avec le service des fonctions pour OCI).

    Notez que vous pouvez créer, pousser et déployer la fonction à l'aide de commandes Fn Project distinctes au lieu de la commande unique fn deploy.

    Notez également que si vous ajoutez la fonction à une application pour laquelle une politique de vérification de signature est activée, vous devez spécifier des options supplémentaires. Voir Signature d'images de fonction et application de l'utilisation d'images signées à partir du registre.

  8. (Facultatif) En supposant que le registre Docker spécifié est Oracle Cloud Infrastructure Registry, utilisez la console pour confirmer que l'image a été transmise à Oracle Cloud Infrastructure Registry :
    1. Ouvrez le menu de navigation et sélectionnez Services de développement. Sous Conteneurs et artefacts, sélectionnez Registre de conteneurs.
    2. Sélectionnez la région du registre.

      Vous voyez tous les référentiels dans le registre auxquels vous avez accès. L'image que vous avez poussée se trouve dans un nouveau référentiel dont le nom est construit à partir du :

      Par exemple, le nouveau référentiel pourrait avoir pour nom acme-repo/acme-func.

    3. Sélectionnez le nom du nouveau référentiel. Vous voyez les détails de l'image qui a été poussée vers Oracle Cloud Infrastructure Registry.
  9. (Facultatif) Utilisez la console pour confirmer que la fonction a été déployée avec succès dans le service des fonctions pour OCI :

    1. Ouvrez le menu de navigation et sélectionnez Services de développement. Sous Fonctions, sélectionnez Applications.
    2. Sélectionnez le compartiment spécifié dans le contexte de l'interface de ligne de commande Fn Project (voir Création d'un contexte d'interface de ligne de commande Fn Project pour se connecter à Oracle Cloud Infrastructure).

      La page Applications présente les applications dans le compartiment, y compris celles que vous avez spécifiées dans la commande fn deploy.

    3. Sélectionnez le nom de l'application spécifiée dans la commande fn deploy pour voir les fonctions qu'elle contient.

      L'onglet Fonctions indique que la fonction a été déployée dans le service des fonctions pour OCI.