Démarrage rapide d'Oracle Functions dans une instance de calcul OCI
Découvrez comment configurer et exécuter rapidement une instance de calcul OCI à l'aide de ce service des fonctions pour OCI QuickStart.
A. Configurer votre location
Si les utilisateurs et groupes appropriés n'existent pas déjà :
- Connectez-vous à la console en tant qu'administrateur de la location.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Identité, sélectionnez Domaines.
- Sélectionnez un domaine et 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, voir Notes de configuration.
Si un compartiment approprié dans lequel créer des ressources de réseau et des ressources du service des fonctions pour OCI n'existe pas déjà :
- Connectez-vous à la console en tant qu'administrateur de la 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, voir Notes de configuration.
Si un réseau VCN approprié dans lequel créer des ressources de réseau n'existe pas déjà :
- Connectez-vous à la console en tant qu'administrateur de la location.
- Ouvrez le menu de navigation , sélectionnez Service de réseau, puis Réseaux en nuage virtuels.
- Sélectionnez Démarrer l'Assistant VCN dans le menu Actions pour créer un nouveau VCN.
- Dans le panneau Démarrer l'assistant VCN, sélectionnez Créer un VCN avec connectivité Internet et sélectionnez Démarrer l'assistant VCN.
- Entrez un nom pour le nouveau VCN, sélectionnez Suivant, puis Créer pour créer le VCN avec les ressources de réseau connexes.
Pour plus d'informations, voir Notes de configuration.
Si un ou plusieurs utilisateurs du service des fonctions pour OCI ne sont pas un administrateur de location :
- Connectez-vous à la console en tant qu'administrateur de la location.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous identité, sélectionnez Politiques.
-
Sélectionnez Créer une politique, spécifiez un nom et une description pour la nouvelle politique, puis sélectionnez le compartiment racine de la location.
-
Utilisez le générateur de politiques pour créer la politique. Sélectionnez Fonctions dans la liste des cas d'utilisation de politique et basez la politique sur le modèle de politique Permettre aux utilisateurs de créer, de déployer et de gérer des fonctions et des applications.
Le modèle de politique comprend les énoncés de politique suivants :
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 énoncés de politique par compartiment.
Pour plus d'informations, voir Notes de configuration.
B. Créer une application
- Connectez-vous à la console en tant que développeur de fonctions.
- Ouvrez le menu de navigation et sélectionnez Services de développement. Sous Fonctions, sélectionnez Applications.
- Sélectionnez la région que vous utilisez avec le service des fonctions pour OCI.
- Sélectionnez Créer une application.
- Spécifiez les données suivantes :
- helloworld-app comme nom de la nouvelle application. Vous allez déployer votre première fonction dans cette application et spécifier cette application lors de l'appel de la fonction.
- Le VCN et le sous-réseau dans lesquels exécuter la fonction. Notez qu'un sous-réseau public nécessite une passerelle Internet dans le VCN et qu'un sous-réseau privé nécessite une passerelle de service dans le VCN.
- Sélectionnez Créer.
Pour plus d'informations, voir instructions détaillées.
C. Configurer une instance de calcul OCI
- Connectez-vous à la console en tant qu'administrateur de la location.
- Ouvrez le menu de navigation et sélectionnez Calcul. Sous Calcul, sélectionnez Instances.
- Sélectionnez le compartiment dans lequel créer des ressources de réseau et des ressources du service des fonctions pour OCI.
- 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 le service des fonctions pour OCI
- spécifier qu'une adresse IP publique doit être affectée à la nouvelle instance de calcul
- sélectionner le fichier qui contient la clé SSH pour accéder à la nouvelle instance de calcul
-
Dans la page des détails de l'instance, copiez l'OCID et l'adresse IP publique de l'instance de calcul à utiliser comme environnement de développement.
Voir Création d'une instance pour plus d'informations.
Créez un nouveau 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 nouveau groupe dynamique.
-
Entrez une règle qui inclut l'OCID de l'instance de calcul :
ANY {instance.id = '<instance-ocid>'}
Voir Gestion des groupes dynamiques pour plus d'informations.
Créez une politique pour accorder au nouveau groupe dynamique l'accès aux ressources de fonction, aux ressources de réseau et à Oracle Cloud Infrastructure Registry :
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous identité, sélectionnez Politiques.
-
Sélectionnez Créer une politique et utilisez l'éditeur manuel du générateur de politiques pour créer une nouvelle politique avec les énoncés suivants :
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
Voir Gestion des politiques pour plus d'informations.
D. Configurer votre environnement de développement d'instance de calcul OCI
Dans une fenêtre de terminal de votre environnement de développement :
- Confirmez que Docker est installé en entrant :
docker version
Si un message d'erreur indique que Docker n'est pas installé, vous devez installer Docker avant de continuer. Consultez la documentation sur Docker pour votre plate-forme (pour Oracle Linux, voir ici).
Si Docker est installé, allez à la section Préalables de la page d'accueil Fn Project sur GitHub et confirmez que la version installée de Docker est au moins la version minimale spécifiée. Sinon, réinstallez Docker avant de continuer.
- Lancez l'image Docker hello-world en tant que conteneur pour confirmer que Docker est en cours d'exécution en entrant :
docker run hello-world
Si vous voyez un message d'erreur indiquant que Docker n'est pas en cours d'exécution, vous devez démarrer le démon Docker avant de continuer. Consultez la documentation sur Docker.
Pour plus d'informations, voir Notes de configuration.
Dans une fenêtre de terminal de votre environnement de développement :
- Installez l'interface de ligne de commande Fn Project à l'aide des 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 Installer le client Fn sur GitHub.
- Linux, MacOS ou Windows : Téléchargez et exécutez le fichier binaire à partir de la page Versions de Fn Project sur GitHub.
- Linux ou MacOS : Entrez :
- Vérifiez que l'interface de ligne de commande Fn Project a été installée en entrant :
fn version
Pour plus d'informations, voir Notes de configuration.
Dans une fenêtre de terminal de votre environnement de développement :
- Créez un contexte d'interface de ligne de commande Fn Project en entrant :
fn create context <my-context> --provider oracle-ip
Notez que vous spécifiez
--provider oracle-ip
pour activer l'authentification et l'autorisation à l'aide des OCID d'instance, des groupes dynamiques et des politiques accordant des autorisations à ces groupes dynamiques. - Indiquez que l'interface de ligne de commande Fn Project doit utiliser le nouveau contexte en entrant :
fn use context <my-context>
Pour plus d'informations, voir 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 Fn Project avec l'OCID du compartiment dont vous voulez détenir les fonctions déployées
fn update context oracle.compartment-id <compartment-ocid>
- Configurez le nouveau contexte avec le point d'extrémité de l'API-URL à utiliser pour appeler l'API OCI en entrant :
fn update context api-url <api-endpoint>
où
<api-endpoint>
est l'un des points d'extrémité de la liste des points d'extrémité du service des fonctions dans l'API du service des fonctions, 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 Fn Project avec l'adresse Oracle Cloud Infrastructure Registry dans la région et la location courantes que vous voulez utiliser avec le service des fonctions pour OCI :
fn update context registry <region-key>.ocir.io/<tenancy-namespace>/<repo-name-prefix>
où
<repo-name-prefix>
est un préfixe de votre choix pour le référentiel d'Oracle Cloud Infrastructure Registry dans lequel stocker les images pour la fonction. Par exemple :fn update context registry phx.ocir.io/ansh81vru1zp/acme-repo
-
Configurez le contexte d'interface de ligne de commande Fn Project avec l'OCID du compartiment pour les référentiels vers et depuis lesquels vous voulez que le service des fonctions pour OCI pousse et extrait des images de fonction, en entrant :
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 ne spécifiez pas de valeur pour
oracle.image-compartment-id
, le service des fonctions pour OCI pousse et extrait des images vers et depuis les référentiels du compartiment racine.
Pour plus d'informations, voir 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 de l'utilisateur ou Mon profil, selon l'option que vous voyez.
- Sélectionnez l'onglet Jetons et clés, allez à la section Jetons d'authentification et sélectionnez Générer un jeton.
- Entrez une description significative pour le 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 le jeton d'authentification ne s'affichera pas de nouveau dans la console.
- Fermer la boîte de dialogue Créer un jeton.
Pour plus d'informations, voir 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é à indiquer un mot de passe, entrez 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, voir Notes de configuration.
E. Créer une fonction, la déployer et l'appeler
Dans la fenêtre de terminal :
-
Créez une fonction java helloworld en entrant :
fn init --runtime java hello-java
Un répertoire appelé hello-java est créé, contenant :
- un fichier de définition de fonction nommé func.yaml
- un répertoire source contenant des fichiers et répertoires sources pour la fonction helloworld
- un fichier de configuration Maven appelé pom.xml qui indique les dépendances requises pour la compilation de la fonction
Java n'est qu'un des nombreux langages pris en charge.
Pour plus d'informations, voir 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
- Entrez la commande Fn Project suivante pour créer la fonction et ses dépendances en tant qu'image Docker appelée hello-java, pousser l'image dans le registre Docker spécifié et déployer la fonction dans le service des fonctions pour OCI 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 dans le service des fonctions pour OCI en sélectionnant l'onglet Fonctions (dans la page de détails de l'application helloworld-app) et en notant que la fonction hello-java apparaît maintenant.
Pour plus d'informations, voir instructions détaillées.
Dans la fenêtre de terminal :
-
Appelez la fonction hello-java en entrant :
fn invoke helloworld-app hello-java
Le message "Hello world!" s'affiche.
-
Appelez la fonction hello-java avec le paramètre
'John'
en entrant :echo -n 'John' | fn invoke helloworld-app hello-java
Le message "Hello John!" s'affiche.
Félicitations! Vous venez de créer, de déployer et d'appeler votre première fonction à l'aide du service des fonctions pour OCI.
Pour plus d'informations, voir instructions détaillées.
Maintenant que vous avez créé, déployé et appelé une fonction, découvrez comment :
- voir les journaux de fonction dans le service Oracle Cloud Infrastructure Logging ou en configurant une URL syslog (voir Stockage et consultation des journaux de fonction
- explorer le service des fonctions pour OCI à l'aide d'exemples sur GitHub (voir Exemples Oracle Functions)
- appeler une fonction à l'aide de SDK (voir Utilisation de SDK pour appeler des fonctions)
Vous avez terminé!