6.2. Commencer avec les fonctions


La gestion du cycle de vie des fonctions comprend la création, l'élaboration et le déploiement d'une fonction. En option, vous pouvez également tester une fonction déployée en l'invoquant. Vous pouvez effectuer toutes ces opérations sur OpenShift Serverless en utilisant l'outil kn func.

6.2.1. Conditions préalables

Avant de pouvoir effectuer les procédures suivantes, vous devez vous assurer que vous avez effectué toutes les tâches prérequises dans la section Configuration d'OpenShift Serverless Functions.

6.2.2. Création de fonctions

Avant de pouvoir construire et déployer une fonction, vous devez la créer à l'aide de la CLI Knative (kn). Vous pouvez spécifier le chemin d'accès, la durée d'exécution, le modèle et le registre d'images en tant que drapeaux sur la ligne de commande, ou utiliser le drapeau -c pour lancer l'expérience interactive dans le terminal.

Conditions préalables

  • L'opérateur OpenShift Serverless et Knative Serving sont installés sur le cluster.
  • Vous avez installé le CLI Knative (kn).

Procédure

  • Créer un projet de fonction :

    $ kn func create -r <repository> -l <runtime> -t <template> <path>
    • Les valeurs d'exécution acceptées sont quarkus, node, typescript, go, python, springboot et rust.
    • Les valeurs acceptées sont http et cloudevents.

      Example command

      $ kn func create -l typescript -t cloudevents examplefunc

      Exemple de sortie

      Created typescript function in /home/user/demo/examplefunc

    • Vous pouvez également spécifier un référentiel qui contient un modèle personnalisé.

      Example command

      $ kn func create -r https://github.com/boson-project/templates/ -l node -t hello-world examplefunc

      Exemple de sortie

      Created node function in /home/user/demo/examplefunc

6.2.3. Exécuter une fonction localement

Vous pouvez utiliser la commande kn func run pour exécuter une fonction localement dans le répertoire actuel ou dans le répertoire spécifié par l'indicateur --path. Si la fonction que vous exécutez n'a jamais été construite auparavant, ou si les fichiers du projet ont été modifiés depuis la dernière fois qu'elle a été construite, la commande kn func run construit la fonction avant de l'exécuter par défaut.

Exemple de commande pour exécuter une fonction dans le répertoire courant

$ kn func run

Exemple de commande pour exécuter une fonction dans un répertoire spécifié comme chemin d'accès

$ kn func run --path=<directory_path>

Vous pouvez également forcer la reconstruction d'une image existante avant d'exécuter la fonction, même si les fichiers du projet n'ont pas été modifiés, en utilisant l'option --build:

Exemple de commande d'exécution utilisant le drapeau de construction

$ kn func run --build

Si l'indicateur build est défini comme faux, la construction de l'image est désactivée et la fonction est exécutée à l'aide de l'image précédemment construite :

Exemple de commande d'exécution utilisant le drapeau de construction

$ kn func run --build=false

Vous pouvez utiliser la commande help pour en savoir plus sur les options de la commande kn func run:

Commande d'aide à la construction

$ kn func help run

6.2.4. Fonctions du bâtiment

Avant de pouvoir exécuter une fonction, vous devez construire le projet de la fonction. Si vous utilisez la commande kn func run, la fonction est construite automatiquement. Cependant, vous pouvez utiliser la commande kn func build pour construire une fonction sans l'exécuter, ce qui peut être utile pour les utilisateurs avancés ou les scénarios de débogage.

La commande kn func build crée une image de conteneur OCI qui peut être exécutée localement sur votre ordinateur ou sur un cluster OpenShift Container Platform. Cette commande utilise le nom du projet de la fonction et le nom du registre d'images pour construire un nom d'image entièrement qualifié pour votre fonction.

6.2.4.1. Types de conteneurs d'images

Par défaut, kn func build crée une image de conteneur en utilisant la technologie Red Hat Source-to-Image (S2I).

Exemple de commande de compilation utilisant Red Hat Source-to-Image (S2I)

$ kn func build

6.2.4.2. Types de registres d'images

OpenShift Container Registry est utilisé par défaut comme registre d'images pour le stockage des images de fonctions.

Exemple de commande de construction utilisant OpenShift Container Registry

$ kn func build

Exemple de sortie

Building function image
Function image has been built, image: registry.redhat.io/example/example-function:latest

Vous pouvez remplacer l'utilisation d'OpenShift Container Registry comme registre d'images par défaut en utilisant le drapeau --registry:

Exemple de commande de construction surchargeant OpenShift Container Registry pour utiliser quay.io

$ kn func build --registry quay.io/username

Exemple de sortie

Building function image
Function image has been built, image: quay.io/username/example-function:latest

6.2.4.3. Pousser le drapeau

Vous pouvez ajouter l'option --push à une commande kn func build pour pousser automatiquement l'image de la fonction une fois qu'elle a été construite avec succès :

Exemple de commande de construction utilisant OpenShift Container Registry

$ kn func build --push

6.2.4.4. Commande d'aide

Vous pouvez utiliser la commande help pour en savoir plus sur les options de la commande kn func build:

Commande d'aide à la construction

$ kn func help build

6.2.5. Déployer des fonctions

Vous pouvez déployer une fonction sur votre cluster en tant que service Knative à l'aide de la commande kn func deploy. Si la fonction ciblée est déjà déployée, elle est mise à jour avec une nouvelle image de conteneur qui est poussée vers un registre d'images de conteneur, et le service Knative est mis à jour.

Conditions préalables

  • L'opérateur OpenShift Serverless et Knative Serving sont installés sur le cluster.
  • Vous avez installé le CLI Knative (kn).
  • Vous avez créé un projet ou avez accès à un projet avec les rôles et autorisations appropriés pour créer des applications et d'autres charges de travail dans OpenShift Container Platform.
  • Vous devez avoir déjà créé et initialisé la fonction que vous souhaitez déployer.

Procédure

  • Déployer une fonction :

    $ kn func deploy [-n <namespace> -p <path> -i <image>]

    Exemple de sortie

    Function deployed at: http://func.example.com

    • Si aucune adresse namespace n'est spécifiée, la fonction est déployée dans l'espace de noms actuel.
    • La fonction est déployée à partir du répertoire actuel, à moins qu'une adresse path ne soit spécifiée.
    • Le nom du service Knative est dérivé du nom du projet et ne peut pas être modifié à l'aide de cette commande.

6.2.6. Invoquer une fonction déployée avec un événement de test

Vous pouvez utiliser la commande CLI kn func invoke pour envoyer une requête de test afin d'invoquer une fonction localement ou sur votre cluster OpenShift Container Platform. Vous pouvez utiliser cette commande pour tester qu'une fonction fonctionne et qu'elle est capable de recevoir des événements correctement. L'invocation d'une fonction localement est utile pour un test rapide pendant le développement de la fonction. L'invocation d'une fonction sur le cluster est utile pour des tests plus proches de l'environnement de production.

Conditions préalables

  • L'opérateur OpenShift Serverless et Knative Serving sont installés sur le cluster.
  • Vous avez installé le CLI Knative (kn).
  • Vous avez créé un projet ou avez accès à un projet avec les rôles et autorisations appropriés pour créer des applications et d'autres charges de travail dans OpenShift Container Platform.
  • Vous devez avoir déjà déployé la fonction que vous souhaitez invoquer.

Procédure

  • Invoquer une fonction :

    $ kn func invoke
    • La commande kn func invoke ne fonctionne que lorsqu'une image de conteneur locale est en cours d'exécution ou lorsqu'une fonction est déployée dans le cluster.
    • La commande kn func invoke s'exécute par défaut dans le répertoire local et suppose que ce répertoire est un projet de fonction.

6.2.7. Suppression d'une fonction

Vous pouvez supprimer une fonction en utilisant la commande kn func delete. Cette opération est utile lorsqu'une fonction n'est plus nécessaire et permet d'économiser des ressources sur votre cluster.

Procédure

  • Supprimer une fonction :

    $ kn func delete [<function_name> -n <namespace> -p <path>]
    • Si le nom ou le chemin de la fonction à supprimer n'est pas spécifié, le répertoire actuel est parcouru à la recherche d'un fichier func.yaml qui est utilisé pour déterminer la fonction à supprimer.
    • Si l'espace de noms n'est pas spécifié, il prend par défaut la valeur de namespace dans le fichier func.yaml.

6.2.8. Ressources supplémentaires

6.2.9. Prochaines étapes

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.