Démarrage de Functions sur une instance OCI Compute
Découvrez comment configurer et exécuter rapidement une instance de calcul OCI à l'aide de cette instance OCI Functions QuickStart.
A. Configurez la location
Si des utilisateurs et des groupes appropriés n'existent pas déjà :
- Connectez-vous à la console en tant qu'administrateur de location.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Identité, sélectionnez Domaines.
- Sélectionnez un domaine, puis sélectionnez l'onglet Gestion des utilisateurs.
- Créez un groupe en sélectionnant Créer un groupe dans la section Groupes.
- Créez un utilisateur en sélectionnant Créer dans la section Utilisateurs.
- 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.
Si un compartiment approprié dans lequel créer des ressources réseau et des ressources OCI Functions n'existe pas déjà :
- Connectez-vous à la console en tant qu'administrateur de location.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Identité, sélectionnez Compartiments.
- Sélectionnez Créer un compartiment.
Pour plus d'informations, reportez-vous à Notes de configuration.
Si un VCN approprié dans lequel créer des ressources réseau n'existe pas déjà :
- Connectez-vous à la console en tant qu'administrateur de location.
- Ouvrez le menu de navigation , sélectionnez Fonctions de réseau, puis Réseaux cloud virtuels.
- Sélectionnez Démarrer l'assistant VCN dans le menu Actions pour créer un VCN.
- Dans le panneau Démarrer l'assistant VCN, sélectionnez Créer un VCN avec la connectivité Internet et Démarrer l'assistant VCN.
- 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.
Si des utilisateurs OCI Functions ne sont pas des administrateurs de location, procédez comme suit :
- Connectez-vous à la console en tant qu'administrateur de location.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Identité, sélectionnez Stratégies.
-
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.
-
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
- Connectez-vous à la console en tant que développeur de fonctions.
- Ouvrez le menu de navigation et sélectionnez Services de développeur. Sous Fonctions, sélectionnez Applications.
- Sélectionnez la région que vous utilisez avec OCI Functions.
- Sélectionnez Create application (Créer une application).
- 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.
- Choisissez Créer.
Pour plus d'informations, reportez-vous à instructions détaillées.
C. Configurer une instance de calcul OCI
- Connectez-vous à la console en tant qu'administrateur de location.
- Ouvrez le menu de navigation et sélectionnez Compute. Sous Compute, sélectionnez Instances.
- Sélectionnez le compartiment dans lequel créer les ressources réseau et les ressources OCI Functions.
- Si aucune instance de calcul appropriée n'existe déjà dans le compartiment, sélectionnez Créer une instance et :
- sélectionner le compartiment, le VCN et les sous-réseaux à utiliser avec OCI Functions
- indiquer qu'une adresse IP publique doit être affectée à la nouvelle instance de calcul
- sélectionner le fichier contenant la clé SSH pour accéder à la nouvelle instance de calcul
-
Sur la page de détails de l'instance, copiez l'OCID et l'adresse IP publique de l'instance de calcul à utiliser en tant qu'environnement de développement.
Pour plus d'informations, reportez-vous à Création d'une instance.
Créez un groupe dynamique pour inclure l'instance de calcul :
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Identité, sélectionnez Domaines. Sous Domaine d'identité, sélectionnez Groupes dynamiques.
- Créez un groupe dynamique.
-
Entrez une règle qui inclut l'OCID de l'instance de calcul :
ANY {instance.id = '<instance-ocid>'}
Pour plus d'informations, reportez-vous à Gestion des groupes dynamiques.
Créez une stratégie accordant au nouveau groupe dynamique l'accès aux ressources de fonction, aux ressources réseau et à Oracle Cloud Infrastructure Registry :
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Identité, sélectionnez Stratégies.
-
Sélectionnez Créer une stratégie et utilisez l'éditeur manuel du générateur de stratégies pour créer une stratégie avec les instructions de stratégie suivantes :
Allow dynamic-group <dynamic-group-name> to manage functions-family in compartment <compartment-name>
Allow dynamic-group <dynamic-group-name> to use virtual-network-family in compartment <compartment-name>
Allow dynamic-group <dynamic-group-name> to read repos in tenancy
Pour plus d'informations, reportez-vous à Gestion des stratégies.
J. Configurer votre environnement de développement d'instance de calcul OCI
Dans une fenêtre de terminal de votre environnement de développement :
- 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.
- 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.
Dans une fenêtre de terminal de votre environnement de développement :
- 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.
- Linux ou MacOS : entrez :
- 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.
Dans une fenêtre de terminal de votre environnement de développement :
- 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-ip
Vous indiquez
--provider oracle-ip
pour activer l'authentification et l'autorisation à l'aide d'OCID d'instance, de groupes dynamiques et de stratégies accordant à ces derniers des droits d'accès. - 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>
Pour plus d'informations, reportez-vous à Notes de configuration.
Dans une fenêtre de terminal de votre environnement de développement :
- 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>
- 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>
où
<api-endpoint>
représente l'une des adresses dans la liste des adresses Functions dans l'API Functions, au formathttps://functions.<region-identifier>.oci.oraclecloud.com
. Par exemple :fn update context api-url https://functions.us-phoenix-1.oci.oraclecloud.com
-
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>
où
<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
-
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.
- Connectez-vous à la console en tant que développeur de fonctions.
- Dans le menu de navigation , sélectionnez le menu Profil
, puis sélectionnez Paramètres d'utilisateur ou Mon profil, selon l'option que vous voyez.
- Sélectionnez l'onglet Jetons et clés, accédez à la section Jetons d'authentification et sélectionnez Générer un jeton.
- 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.
- 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.
- Fermez la boîte De dialogue Générer un token.
Pour plus d'informations, reportez-vous à Notes de configuration.
Dans une fenêtre de terminal de votre environnement de développement :
-
Entrez 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
-
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.
E. Créer, déployer et appeler votre fonction
Dans la fenêtre de terminal :
-
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.
Dans la fenêtre de terminal :
- Accédez au répertoire hello-java créé à l'étape précédente :
cd hello-java
- 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
- (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.
Dans la fenêtre de terminal :
-
Appelez la fonction hello-java en saisissant la commande suivante :
fn invoke helloworld-app hello-java
Le message "Hello world !" s'affiche.
-
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.
Maintenant que vous avez créé, déployé et appelé une fonction, découvrez comment :
- afficher les journaux de fonction dans le service Oracle Cloud Infrastructure Logging ou en configurant une URL syslog (reportez-vous à Stockage et visualisation des journaux de fonction)
- Explorer OCI Functions à l'aide d'exemples sur GitHub (reportez-vous à Exemples pour Oracle Functions)
- Appeler une fonction à l'aide des kits SDK (reportez-vous à Utilisation des kits SDK pour appeler des fonctions)
C'est fait !