Création et déploiement de fonctions

Découvrez comment créer et déployer des fonctions vers OCI Functions à l'aide des commandes de l'interface de ligne de commande du projet Fn.

Les commandes de l'interface de ligne de commande du projet Fn permettent de créer et de déployer des fonctions vers OCI Functions.

Conseil

Si vous ne pouvez pas effectuer l'une des étapes de cette rubrique, consultez les solutions aux problèmes courants (reportez-vous à Dépannage des fonctions OCI).

Utilisation des commandes de l'interface de ligne de commande du projet Fn

Conseil

De temps à temps, de nouvelles versions de l'interface de ligne de commande du projet Fn sont disponibles. Nous vous recommandons de vérifier régulièrement que la dernière version est installée. Pour plus d'informations, reportez-vous à Etapes de mise à niveau de l'interface de ligne de commande du projet Fn.

Pour créer et déployer une fonction sur OCI Functions à l'aide des commandes de l'interface de ligne de commande du projet Fn :

  1. Vérifiez que vous avez effectué les étapes décrites dans les guides QuickStart Functions.
  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 du projet Fn ou de la console. Par exemple, vous pouvez créer une application appelée acmeapp. Reportez-vous à 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, passez au répertoire contenant le code de la fonction.

  5. Initialisez la fonction en saisissant la commande suivante :

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

    où :

    • <runtime-language> est l'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> représente le nom à utiliser comme nom de fonction. Si vous n'indiquez pas de nom de fonction, le nom du répertoire en cours (en minuscules) est utilisé. Evitez de saisir des informations confidentielles.

    Par exemple :

    fn init --runtime java acme-func

    Un répertoire est créé avec le nom de fonction que vous avez indiqué. Il contient les éléments suivants :

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

    Selon le langage d'exécution indiqué, la commande fn init peut créer un répertoire /example contenant du code pour une application helloworld. Vous pouvez supprimer ce répertoire.

  6. Passez au répertoire que vous venez de créer.
  7. Saisissez la commande unique suivante du projet Fn pour construire la fonction et ses dépendances en tant qu'image Docker, propager l'image vers le registre Docker indiqué et déployer la fonction vers OCI Functions :

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

    <app-name> représente le nom de l'application dans OCI Functions à laquelle vous voulez ajouter la fonction. Par exemple :

    fn -v deploy --app acmeapp

    L'option -v affiche simplement plus de détails sur les résultats des commandes du projet Fn (reportez-vous à Utilisation de l'interface de ligne de commande du projet Fn avec les fonctions OCI).

    Vous pouvez créer, propager et déployer la fonction à l'aide de commandes distinctes du projet Fn, au lieu de la commande unique fn deploy.

    Notez également que si vous ajoutez la fonction à une application pour laquelle une stratégie de vérification de signature est activée, vous devez spécifier des options supplémentaires. Reportez-vous à Signature des images de fonction et mise en application de l'utilisation des images signées de Registry.

  8. (Facultatif) En supposant que le registre Docker indiqué soit Oracle Cloud Infrastructure Registry, utilisez la console pour vérifier que l'image a correctement été propagée vers Oracle Cloud Infrastructure Registry :
    1. Ouvrez le menu de navigation et sélectionnez Services de développeur. Sous Conteneurs et artefacts, sélectionnez Registre de conteneurs.
    2. Choisissez la région du registre.

      Vous visualisez tous les référentiels dans le registre auquel vous avez accès. L'image propagée se trouve dans un nouveau référentiel privé dont le nom est construit à partir :

      Par exemple, le nouveau référentiel peut être appelé 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 vérifier le bon déploiement de la fonction sur OCI Functions :

    1. Ouvrez le menu de navigation et sélectionnez Services de développeur. Sous Fonctions, sélectionnez Applications.
    2. Sélectionnez le compartiment indiqué dans le contexte de l'interface de ligne de commande du projet Fn (voir Création d'un contexte d'interface de ligne de commande de projet Fn pour la connexion à Oracle Cloud Infrastructure).

      La page Applications présente les applications dans le compartiment, y compris celle que vous avez indiquée dans la commande fn deploy.

    3. Sélectionnez le nom de l'application indiqué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 vers OCI Functions.