Ajout d'une fonction dans le service des fonctions pour OCI comme élément dorsal du service de passerelle d'API
Découvrez comment créer un déploiement d'API avec la passerelle d'API qui expose les fonctions sans serveur définies dans le service des fonctions pour OCI.
Une exigence courante consiste à créer une API avec des fonctions sans serveur comme élément dorsal et une passerelle d'API fournissant un accès frontal à ces fonctions.
Le service des fonctions pour OCI vous permet de créer des fonctions sans serveur créées en tant qu'images Docker et poussées vers un registre Docker spécifié. Une définition de chaque fonction est stockée comme métadonnées sur le serveur du service des fonctions pour OCI. Lorsqu'une fonction est appelée pour la première fois, le service des fonctions pour OCI extrait l'image Docker de la fonction à partir du registre Docker spécifié, l'exécute en tant que conteneur Docker et exécute la fonction. S'il existe des demandes suivantes pour la même fonction, le service des fonctions pour OCI dirige ces demandes vers le même conteneur exécuté. Après une période d'inactivité, le conteneur Docker est arrêté.
Ayant utilisé le service de passerelle d'API pour créer une passerelle d'API, vous pouvez créer un déploiement d'API qui appelle des fonctions sans serveur définies dans le service des fonctions pour OCI.
Pour pouvoir utiliser les fonctions sans serveur du service des fonctions pour OCI comme élément dorsal pour une API :
- Les fonctions sans serveur référencées dans la spécification de déploiement d'API doivent avoir déjà été créées et déployées dans le service des fonctions pour OCI. Les fonctions doivent pouvoir être acheminées à partir du réseau en nuage virtuel spécifié pour la passerelle d'API, au moyen d'une passerelle Internet (dans le cas d'une passerelle d'API publique) ou au moyen d'une passerelle de service (dans le cas d'une passerelle d'API privée). Les fonctions doivent utiliser des codes de statut HTTP conformes à la demande de modification pour communiquer le statut. Voir Création et déploiement de fonctions. Pour un tutoriel pour développeurs connexe, voir Fonctions : Appeler une fonction à l'aide du service de passerelle d'API.
Des politiques appropriées doivent déjà exister, qui permettent l'accès aux fonctions sans serveur définies dans le service des fonctions pour OCI :
- Un groupe dont fait partie votre compte d'utilisateur (voir Créer une politique pour accorder aux utilisateurs du service de passerelle d'API l'accès à Oracle Functions).
- Passerelles d'API (voir Créer une politique pour accorder aux passerelles d'API l'accès à Oracle Functions)
Vous pouvez ajouter des éléments dorsaux de fonction sans serveur à une spécification de déploiement d'API comme suit :
- En utilisant la console.
- En modifiant un fichier JSON.
Création et déploiement d'une fonction sans serveur dans le service des fonctions pour OCI à utiliser comme élément dorsal du service de passerelle d'API
Pour créer une fonction sans serveur dans le service des fonctions pour OCI qui peut être appelée à partir d'une passerelle d'API, suivez les instructions de la documentation sur le service des fonctions pour OCI pour effectuer les opérations suivantes :
- Vérifiez que vous avez terminé les étapes préalables pour utiliser le service des fonctions pour OCI, comme décrit sous Préparation pour le service des fonctions.
- Créez et déployez la fonction dans un compartiment auquel l'accès a été accordé aux passerelles d'API, tel qu'il décrit sous Création et déploiement de fonctions.
Utilisation de la console pour ajouter des éléments dorsaux de fonction sans serveur à une spécification de déploiement d'API
Pour ajouter un élément dorsal de fonction du service des fonctions pour OCI à une spécification de déploiement d'API à l'aide de la console :
-
Créez ou mettez à jour un déploiement d'API à l'aide de la console, sélectionnez l'option À partir de zéro et entrez les détails dans la page Informations de base.
Pour plus d'informations, voir Déploiement d'une API sur une passerelle d'API en créant un déploiement d'API et Mise à jour d'une passerelle d'API.
-
Dans la page Authentification, spécifiez les options d'authentification.
Pour plus d'informations sur les options d'authentification, voir Ajout de l'authentification et de l'autorisation aux déploiements d'API.
-
Dans la page Routes, créez une route et spécifiez les données suivantes :
-
Chemin : Chemin des appels d'API utilisant les méthodes indiquées au service dorsal. Notez que le chemin de routage que vous spécifiez :
- Est relatif au préfixe du chemin du déploiement (voir Déploiement d'une API sur une passerelle d'API en créant un déploiement d'API).
- Doit être précédé d'une barre oblique (/) et peut être simplement cette seule barre oblique.
- Peut contenir plusieurs barres obliques (à condition qu'elles ne soient pas adjacentes) et peut se terminer par une barre oblique.
- Peut inclure des caractères alphanumériques en majuscules et en minuscules.
- peut inclure les caractères spéciaux
$ - _ . + ! * ' ( ) , % ; : @ & =
- Peut inclure des paramètres et des caractères génériques (voir Ajout de paramètres de chemin et de caractères génériques aux chemins de routage).
- Méthodes : Une ou plusieurs méthodes acceptées par le service dorsal. Par exemple,
GET, PUT
. -
Ajouter un seul serveur dorsal ou Ajouter plusieurs serveurs dorsaux : Indique si toutes les demandes doivent être acheminées vers le même serveur dorsal ou si elles doivent être acheminées vers différents serveurs dorsaux en fonction de la variable de contexte et des règles que vous entrez.
Ces instructions supposent que vous voulez utiliser un seul élément dorsal. Sélectionnez donc Ajouter un seul élément dorsal. Sinon, si vous voulez utiliser des éléments dorsaux différents, sélectionnez Ajouter plusieurs éléments dorsaux et suivez les instructions sous Utilisation de la console pour ajouter une sélection d'élément dorsal dynamique à une spécification de déploiement d'API.
- Type dorsal : Type du service dorsal comme
Oracle Functions
. - Application dans <compartiment-nom> : Nom de l'application du service des fonctions pour OCI qui contient la fonction. Vous pouvez sélectionner une application dans un compartiment différent.
- Nom de la fonction : Nom de la fonction du service des fonctions pour OCI.
Dans cet exemple, la route définit une simple fonction sans serveur Hello World dans le service des fonctions pour OCI en tant qu'élément dorsal unique.
Champ : Entrez : Chemin : /hello
Méthodes : GET
Type de service dorsal : Oracle Functions
Application dans <compartment-name> : acmeapp
Nom de la fonction : acme-func
-
- (Facultatif) Sélectionnez Autre route pour entrer les détails des routes supplémentaires.
- Sélectionnez Suivant pour vérifier les détails que vous avez entrés pour le déploiement d'API.
- Sélectionnez Créer ou enregistrer les modifications pour créer ou mettre à jour le déploiement d'API.
-
(Facultatif) Vérifiez que l'API a été déployée avec succès en l'appelant (voir Appel d'une API déployée sur une passerelle d'API).
Si la fonction sans serveur accepte les paramètres, incluez-les dans l'appel à l'API. Par exemple :
curl -k -X GET https://lak...sjd.apigateway.us-phoenix-1.oci.customer-oci.com/marketing/hello/ -d "name=john"
Modification d'un fichier JSON pour ajouter des éléments dorsaux de fonction sans serveur à une spécification de déploiement d'API
Pour ajouter un élément dorsal de fonction du service des fonctions pour OCI à une spécification de déploiement d'API dans un fichier JSON :
-
Dans votre éditeur JSON préféré, créez la spécification de déploiement d'API dans un fichier JSON au format suivant :
{ "requestPolicies": {}, "routes": [ { "path": "<api-route-path>", "methods": ["<method-list>"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "<identifier>" }, "requestPolicies": {} } ] }
où :
"requestPolicies"
spécifie des politiques facultatives pour contrôler le comportement d'un déploiement d'API. Si vous voulez appliquer des politiques à toutes les routes d'une spécification de déploiement d'API, placez les politiques en dehors de la sectionroutes
. Si vous voulez appliquer les politiques uniquement à une route particulière, placez les politiques dans la sectionroutes
. Voir Ajout de politiques de demande et de réponse aux spécifications de déploiement d'API.-
<api-route-path>
spécifie un chemin pour les appels d'API utilisant les méthodes indiquées au service dorsal. Notez que le chemin de routage que vous spécifiez :- Est relatif au préfixe du chemin du déploiement (voir Déploiement d'une API sur une passerelle d'API en créant un déploiement d'API).
- Doit être précédé d'une barre oblique (/) et peut être simplement cette seule barre oblique.
- Peut contenir plusieurs barres obliques (à condition qu'elles ne soient pas adjacentes) et peut se terminer par une barre oblique.
- Peut inclure des caractères alphanumériques en majuscules et en minuscules.
- peut inclure les caractères spéciaux
$ - _ . + ! * ' ( ) , % ; : @ & =
- Peut inclure des paramètres et des caractères génériques (voir Ajout de paramètres de chemin et de caractères génériques aux chemins de routage).
<method-list>
spécifie une ou plusieurs méthodes acceptées par le service dorsal, séparées par des virgules. Par exemple,"GET, PUT"
.<identifier>
spécifie l'OCID de la fonction à utiliser comme service dorsal. Par exemple,"functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
.
Par exemple, la spécification de déploiement d'API de base suivante définit une simple fonction sans serveur Hello World du service des fonctions pour OCI en tant qu'élément dorsal unique :
{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } } ] }
- Enregistrez le fichier JSON contenant la spécification de déploiement d'API.
-
Utilisez comme suit la spécification de déploiement d'API lorsque vous créez ou mettez à jour un déploiement d'API :
- En spécifiant le fichier JSON dans la console lorsque vous sélectionnez l'option Charger une API existante.
- En spécifiant le fichier JSON dans une demande à l'API REST du service Passerelle d'API.
Pour plus d'informations,voir Déploiement d'une API sur une passerelle d'API en créant un déploiement d'API.
-
(Facultatif) Vérifiez que l'API a été déployée et que la fonction sans serveur du service des fonctions pour OCI peut être appelée avec succès en appelant l'API (voir Appel d'une API déployée sur une passerelle d'API).
Si la fonction sans serveur accepte les paramètres, incluez-les dans l'appel à l'API. Par exemple :
curl -k -X GET https://lak...sjd.apigateway.us-phoenix-1.oci.customer-oci.com/marketing/hello/ -d "name=john"