Création de fonctions à partir d'images Docker existantes
Découvrez comment créer des fonctions à partir d'images Docker existantes avec OCI Functions.
Vous pouvez créer une définition de fonction dans le serveur OCI Functions de différentes manières :
- A l'aide de la console, d'une commande d'interface de ligne de commande ou d'une opération d'API, pour créer une fonction basée sur une image Docker existante déjà propagée vers le registre Docker (comme décrit dans cette rubrique).
- A l'aide de la commande unique
fn deploy
de l'interface de ligne de commande du Fn Project, pour créer une image Docker, propager l'image vers le registre Docker et créer une fonction basée sur l'image en une seule étape (comme décrit dans Création et déploiement de fonctions). - Utilisation de l'éditeur de code (reportez-vous à Création de fonctions à l'aide de l'éditeur de code).
- Utilisation de fonctions prédéfinies (reportez-vous à Création de fonctions à l'aide de fonctions prédéfinies).
Lorsque vous créez une fonction basée sur une image Docker existante, vous indiquez les métadonnées de fonction à stocker dans le serveur OCI Functions. Par exemple, la durée maximale d'exécution de la fonction.
L'image existante sur laquelle vous basez une nouvelle fonction doit être adaptée à une utilisation avec OCI Functions. En général, pour créer et propager une image adaptée, vous ou un autre utilisateur devez utiliser les commandes de l'interface de ligne de commande du projet Fn et/ou les commandes de l'interface de ligne de commande Docker. Par exemple, si vous avez écrit le code de la fonction et un fichier func.yaml contenant les métadonnées de la fonction (peut-être en vous basant sur les modèles de fonction helloworld et de fichier func.yaml créés via fn init
), vous pouvez effectuer les opérations suivantes :
- Utiliser
fn build
pour créer une image Docker à partir de la fonction - Utiliser
docker push
pour propager l'image vers le registre Docker
Avec l'image dans le registre Docker, vous pouvez utiliser la console, une commande d'interface de ligne de commande ou une opération d'API pour créer une fonction basée sur l'image, comme décrit dans cette rubrique.
- Sur la page de liste Applications, sélectionnez l'application dans laquelle vous souhaitez créer la fonction. Si vous avez besoin d'aide pour rechercher la page de liste ou l'application, reportez-vous à Liste des applications.
-
Sélectionnez l'onglet Fonctions.
La page de liste Fonctions s'ouvre. Toutes les fonctions de l'application sélectionnée sont affichées dans un tableau.
- Sélectionnez Créer à partir d'une image existante et indiquez les détails suivants :
- Nom : nom de la nouvelle fonction. Evitez de saisir des informations confidentielles.
- Compartiment de référentiel : compartiment contenant le référentiel dans OCI Container Registry dans la région en cours qui contient l'image.
- Référentiel : référentiel dans OCI Container Registry dans la région en cours qui contient l'image.
- Image : image existante dans le référentiel OCI Container Registry de la région en cours. L'architecture d'image doit être compatible avec la forme de l'application (reportez-vous à Spécification de l'architecture de calcul sur laquelle exécuter des fonctions).
- Mémoire (en Mo) : quantité maximale de mémoire que la fonction peut utiliser lors de son exécution.
- Délai d'expiration (en secondes) : durée maximale pendant laquelle la fonction peut s'exécuter.
- Activer la simultanéité d'accès aux données provisionnée : vous pouvez réduire les retards initiaux lors de l'appel de la fonction en indiquant un nombre minimal d'appels de fonction simultanés pour lesquels l'infrastructure d'exécution doit être disponible en permanence.
Si vous sélectionnez cette option, vous entrez une valeur pour Unités simultanées provisionnées afin d'indiquer le nombre minimal d'appels de fonction simultanés. La valeur PCU réelle que vous saisissez doit être un multiple de 10. Si la valeur Memory est définie sur 256 Mo, la valeur PCU doit être un multiple de 20 ; si la valeur Memory est définie sur 128 Mo, la valeur PCU doit être un multiple de 40. Le nombre total d'UC disponibles dépend de la taille de la fonction, de la limite de location et de l'activation ou non de la simultanéité d'accès aux données provisionnée pour d'autres fonctions de la location. Pour plus d'informations sur la simultanéité provisionnée, reportez-vous à Réduction de la latence initiale à l'aide de la simultanéité provisionnée.
- Balises :si vous disposez des droits d'accès nécessaires pour créer une ressource, vous disposez également de droits d'accès nécessaires pour lui appliquer des balises à format libre. Pour appliquer une balise defined, vous devez disposer des droits d'accès permettant d'utiliser l'espace de noms de balise. Pour plus d'informations sur le balisage, reportez-vous à Balises de ressource. Si vous n'êtes pas certain d'appliquer des balises, ignorez cette option ou demandez à un administrateur. Vous pouvez appliquer des balises ultérieurement.
-
Sélectionnez l'une des options suivantes :
- Pour créer la fonction sur le serveur OCI Functions maintenant, sélectionnez Créer. La nouvelle fonction apparaît dans la console, dans la liste des fonctions de l'application sélectionnée.
- Pour créer la fonction ultérieurement à l'aide de Resource Manager et de Terraform, sélectionnez Enregistrer en tant que pile afin d'enregistrer la définition de ressource en tant que configuration Terraform. Pour plus d'informations sur l'enregistrement de piles à partir de définitions de ressource, reportez-vous à Création d'une pile à partir d'une page de création de ressource.
Utilisation 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 utiliser l'interface de ligne de commande du projet Fn afin de créer une fonction dans le serveur OCI Functions à partir d'une image Docker existante qui a déjà été propagée vers le registre Docker, procédez comme suit :
-
Connectez-vous à votre environnement de développement en tant que développeur de fonctions.
-
Dans une fenêtre de terminal, créez une fonction en saisissant la commande suivante :
fn create function <app-name> <function-name> <image-name>
où :
<app-name>
représente le nom d'une application existante dans laquelle créer la fonction.<function-name>
représente le nom de la fonction que vous voulez créer. Evitez de saisir des informations confidentielles.<image-name>
représente le nom de l'image existante dans le registre Docker sur laquelle la nouvelle fonction doit être basée. L'architecture d'image doit être compatible avec la forme de l'application (reportez-vous à Spécification de l'architecture de calcul sur laquelle exécuter des fonctions).
Par exemple :
fn create function acmeapp acme-func phx.ocir.io/ansh81vru1zp/acme-repo/acme-func:0.0.3
Une fonction est créée dans OCI Functions d'après l'image existante et le nom indiqué.
-
Vérifiez que la nouvelle fonction a été créée en saisissant la commande suivante :
fn list functions <app-name>
Par exemple :
$ fn list functions acme-app NAME IMAGE acme-func phx.ocir.io/ansh81vru1zp/acme-repo/acme-func:0.0.3
Utilisation de l'interface de ligne de commande OCI
Utilisez la commande oci fn function create et les paramètres requis pour créer une fonction :
oci fn function create --application-id <application-ocid> --display-name <function-name> --memory-in-mbs <memory> [OPTIONS]
Afin d'obtenir la liste complète des indicateurs et des options de variable pour les commandes d'interface de ligne de commande OCI, reportez-vous à Référence de ligne de commande.
-
Exécutez l'opération CreateFunction pour créer une fonction.