Déploiement du package de composants vers un service
Vous pouvez héberger le package de composants personnalisé à partir d'un conteneur imbriqué Digital Assistant, d'Oracle Cloud Infrastructure Functions, de Mobile Hub ou d'un serveur Node.js externe.
Pour les services de composant imbriqués, déployez le package lorsque vous créez le service. Pour Oracle Cloud Infrastructure Functions, le serveur Node.js externe et les services Mobile Hub, vous devez d'abord déployer le package vers le service, comme décrit ici, avant de l'ajouter à une brique en tant que service de composant.
Déploiement vers un serveur Node.js
Pour héberger un package de composants personnalisé sur un serveur Node.js externe, utilisez l'interface de ligne de commande bots-node-sdk pack --service express
pour copier les dossiers de votre package de composants et apporter quelques modifications propres à Express, puis installez le package de composants et démarrez-le sur votre serveur.
-
Dans le dossier de niveau supérieur du package de composants personnalisé (celui qui contient le fichier
main.js
), saisissez cette commande dans une fenêtre de terminal :bots-node-sdk pack --service express
Cette commande effectue les opérations suivantes :
- Elle copie les fichiers et sous-dossiers dans
service-express-<package version>
. - Elle ajoute un wrapper de service
index.js
. - Elle crée un fichier
api.js
, qui est un wrapper d'Express pourmain.js
. - Elle modifie le fichier
package.json
pour définir le fichier principal surindex.js
et ajouter les dépendances.
Cette étape représente la commande d'interface de ligne de commande de base. Pour plus d'informations, reportez-vous à
https://github.com/oracle/bots-node-sdk/blob/master/bin/CLI.md
. - Elle copie les fichiers et sous-dossiers dans
-
Exécutez les commandes suivantes :
npm install npm start
Déploiement vers Oracle Cloud Infrastructure Functions
Vous pouvez déployer vos composants personnalisés vers Oracle Cloud Infrastructure Functions.
Actuellement, Oracle Digital Assistant ne peut pas accéder aux gestionnaires d'événements d'entité dans les packages que vous déployez vers Oracle Cloud Infrastructure Functions.
Voici les étapes de haut niveau à suivre :
Obtention des noms d'artefact et des droits d'accès pour le déploiement Oracle Cloud Infrastructure Functions
Pour pouvoir déployer des composants personnalisés vers Oracle Cloud Infrastructure Functions, vous devez obtenir les noms des artefacts utilisés pour le déploiement et vérifier que vous êtes autorisé à vous en utiliser.
Afin de configurer votre instance pour le déploiement Oracle Cloud Infrastructure Functions, l'administrateur de location a effectué les étapes décrites dans Configuration et stratégies pour Oracle Functions. Dans le cadre du processus, il a créé les artefacts suivants. Demandez leur nom à l'administrateur. Vous en avez besoin pour réaliser les étapes décrites dans Configuration de votre compte utilisateur pour Oracle Functions :
-
Noms de la région et du compartiment à utiliser pour vos fonctions.
-
Nom du compartiment pour le réseau virtuel de l'application de fonction. Il s'agit généralement du compartiment utilisé pour les fonctions.
-
Nom du réseau cloud virtuel à utiliser pour l'application de fonction.
De plus, demandez à l'administrateur de vérifier que vous appartenez à un groupe disposant des droits d'accès nécessaires aux développeurs de fonctions, qui incluent l'accès à ces artefacts.
Configuration de votre compte utilisateur pour Oracle Functions
Pour pouvoir déployer des packages de composants personnalisés vers Oracle Cloud Infrastructure Functions, vous devez effectuer les étapes suivantes dans la console Oracle Cloud Infrastructure :
Vous devez connaître le nom des compartiments et du réseau virtuel (VCN) à utiliser et appartenir à un groupe qui permet le développement de fonctions, comme décrit dans Obtention des noms d'artefact et des droits d'accès pour le déploiement d'Oracle Cloud Infrastructure Functions.
-
Connectez-vous à la console et, dans la barre supérieure, sélectionnez la région dans laquelle se trouve le compartiment de développement de fonctions.
-
Vous allez effectuer le déploiement vers Oracle Cloud Infrastructure Functions via Oracle Cloud Infrastructure Registry. Si vous ne disposez pas encore d'un référentiel de registre que vous pouvez utiliser, procédez comme suit pour en créer un.
-
Cliquez sur
en haut à gauche pour ouvrir le menu de navigation. Cliquez sur Services de développeur, sur Registre du conteneur, puis, dans la section Portée de la liste, sélectionnez le compartiment configuré pour le développement de fonctions.
-
Cliquez sur Créer un référentiel.
-
Attribuez un nom au référentiel, puis cliquez sur Créer un référentiel.
-
-
Si vous ne disposez d'aucune application de fonctions pour vos packages de composants personnalisés, vous devez en créer une. Sur la page Services de développeur, cliquez sur Fonctions, puis sur Créer une application. Indiquez un nom, sélectionnez un réseau cloud virtuel, sélectionnez au moins un sous-réseau, puis cliquez sur Créer.
Si aucun réseau cloud virtuel n'apparaît pour faire votre choix, il se peut que vous ne vous trouviez pas dans la région appropriée.
Le nombre d'applications et de fonctions est limité. Pour connaître les limites par défaut, reportez-vous à Limites de Functions dans la documentation Oracle Cloud Infrastructure .
-
Sur la page Applications, cliquez sur l'application que vous utilisez pour le déploiement de fonctions, cliquez sur Mise en route dans la section Ressources, puis sur Configuration locale.
Comme le montre la capture d'écran suivante, la page affiche plusieurs commandes que vous devrez utiliser pour configurer votre ordinateur local et pour déployer votre package de composants personnalisés. Copiez et enregistrez les commandes pour les étapes 3 à 7.
Vous en aurez besoin ultérieurement après avoir installé le logiciel requis sur votre ordinateur local et une fois que vous serez prêt à déployer vos composants personnalisés. Vous pouvez également ajouter un signet pour cette page afin de pouvoir y revenir lorsque vous aurez besoin d'utiliser les commandes.
N'exécutez pas ces commandes maintenant. Contentez-vous de les copier.
-
Dans la commande copiée qui ressemble à ce qui suit, remplacez
[OCIR-REPO]
par le nom de votre référentiel de registre.fn update context registry phx.ocir.io/devdigital/[OCIR-REPO]
-
Cliquez sur l'icône Profil dans l'angle supérieur droit, puis sur Paramètres d'utilisateur pour accéder à la page Détails de l'utilisateur.
-
A l'étape suivante, vous allez créer un fichier PEM que vous devez stocker dans un dossier
.oci
sur votre ordinateur local. Si votre dossier de base sur l'ordinateur local ne comporte pas ce répertoire, créez-le à partir d'une fenêtre de terminal.-
Linux et Mac :
cd ~ mkdir .oci
-
Windows :
cd C:\Users\<your-user-name> mkdir .oci
-
-
Vous avez besoin d'un fichier
PEM
public et privé pour un accès sécurisé. Si vous n'en avez pas encore configuré pour votre compte utilisateur, dans Détails de l'utilisateur dans la console, cliquez sur Clés d'API dans la section Ressources, puis sur Ajouter une clé d'API.Enregistrez le fichier de clés privées (fichier
PEM
) dans le répertoire.oci
de votre dossier de base. - Notez l'empreinte associée à la clé d'API. Lorsque vous disposez de plusieurs clés d'API, vous devez connaître l'empreinte à utiliser pour chaque fichier
PEM
privé. -
Si vous n'avez pas encore configuré de fichier
config
pour l'empreinte sur votre ordinateur local, dans la section Clés d'API, procédez comme suit :-
Cliquez sur
dans la ligne correspondant à l'empreinte de la clé d'API, puis sur Afficher le fichier de configuration.
-
Copiez le contenu de l'aperçu du fichier de configuration.
-
Dans le dossier
.oci
de votre ordinateur local (dossier dans lequel vous avez enregistré le fichier de clés privées), créez un fichier nomméconfig
et collez le contenu copié dans le fichier.
-
-
Dans le fichier
config
, modifiez la propriétékey_file
pour qu'elle pointe vers l'emplacement du fichier PEM privé. Par exemple :key_file=/home/joe/.oci/my-private.pem
-
Si vous ne disposez d'aucun jeton d'authentification, cliquez sur Jetons d'authentification dans le menu Ressources, puis sur Générer un jeton. Copiez immédiatement le jeton d'authentification vers un emplacement sécurisé à partir duquel vous pourrez le récupérer ultérieurement car vous ne pourrez plus le voir dans la console. Vous utilisez le jeton d'authentification en tant que mot de passe lorsque vous vous connectez pour propager le package de composants personnalisés vers le registre Oracle Infrastructure à des fins de déploiement.
Configuration de votre ordinateur local pour Oracle Functions
Vous devez installer cURL, l'interface de ligne de commande (CLI) OCI, Fn et Docker sur votre ordinateur local pour activer le déploiement vers Oracle Cloud Infrastructure Functions. Si votre ordinateur fonctionne sous Windows, vous devez appliquer l'une des options suivantes pour utiliser Fn :
-
Installez Fn et Docker sur Linux dans une instance Oracle VM VirtualBox en suivant les étapes de cette rubrique.
-
Installez Docker et Fn sur Windows, puis installez le sous-système Linux pour Windows comme décrit dans Exécution du client Fn sur Windows et connexion à un serveur Fn distant.
- Déployez vos composants personnalisés à partir de Cloud Shell. Reportez-vous à Cloud Shell dans la documentation Oracle Cloud Infrastructure.
Pour configurer l'ordinateur local, procédez comme suit :
-
(Windows sur machine virtuelle uniquement) Si vous voulez utiliser un invité Linux sur Oracle VM VirtualBox afin de déployer votre package de composants personnalisés vers Oracle Cloud Infrastructure Functions, procédez comme suit :
-
Installez VirtualBox à partir de l'adresse https://www.virtualbox.org/.
-
Téléchargez une image ISO Linux. Par exemple, pour obtenir l'image ISO d'Ubuntu-Mate, accédez à la page https://ubuntu-mate.org/fr/download/ et cliquez sur PCs 64-bit/Mac.
-
Dans VirtualBox, créez une machine virtuelle à partir de l'image ISO. Vous trouverez des instructions sur la création d'une machine virtuelle Ubuntu-Mate à l'adresse https://itsfoss.com/install-linux-in-virtualbox/. Cette machine virtuelle est votre invité Linux.
-
Démarrez l'invité Linux.
-
A partir d'une fenêtre de terminal, exécutez la commande suivante :
sudo apt-get update
Vous mettez ainsi à jour les listes de packages pour les nouveaux packages et ceux nécessitant une mise à niveau.
Conseil :
Pour ouvrir une fenêtre de terminal dans Ubuntu, appuyez sur Ctrl+Alt+T. -
Pour pouvoir effectuer des opérations telles que copier et coller dans une fenêtre de terminal, vous aurez besoin des additions invité. Téléchargez http://download.virtualbox.org/virtualbox/<release>/VBoxGuestAdditions_<release>.iso, puis installez et configurez les additions en suivant les instructions disponibles sur la page https://itsfoss.com/virtualbox-guest-additions-ubuntu/
Veillez à configurer Appareils > Glisser-déplacer en bidirectionnel.
-
Entrez la commande suivante dans une fenêtre de terminal pour installer Node.js et npm sur l'invité.
sudo apt install npm
-
Faites glisser le dossier
.oci
de votre répertoire de base sur l'ordinateur local vers le dossier de base de l'invité Linux.Etant donné qu'il s'agit d'un fichier masqué, vous devez appuyer sur Ctrl+H ou sélectionner Afficher > Afficher les fichiers masqués dans le dossier de base pour le faire apparaître.
-
Dans le dossier
.oci
sur l'invité Linux, ouvrez le fichierconfig
et modifiezkey_file
de façon à pointer vers l'emplacement du fichier sur l'invité Linux. Par exemple :key_file=/home/joe/.oci/my-private.pem
-
Effectuez les étapes restantes de cette rubrique à partir de l'invité Linux.
-
- (Mac uniquement) Si vous ne l'avez pas encore fait, installez Homebrew pour pouvoir installer cURL, l'interface de ligne de commande OCI et Fn. Reportez-vous à la page https://docs.brew.sh/Installation. Vous pouvez également utiliser les commandes MacPorts équivalentes.
-
Si vous accédez à Internet via un VPN, vous devrez peut-être configurer des proxies. Par exemple :
export http-proxy = http://<external_ip>:80 export https-proxy = http://<external_ip>:80 export no_proxy = localhost,127.0.0.1,<list> export noproxy = localhost,127.0.0.1,<list> export no_proxy = localhost,127.0.0.1,<list> # Example for apt nano /etc/apt/apt.conf Acquire::http::Proxy "http://<external_ip>:80"; Acquire::https::Proxy "http://<external_ip>:80";
-
Exécutez la commande appropriée pour mettre à jour les packages.
-
Linux :
sudo apt update && sudo apt upgrade
-
Mac :
brew update && brew upgrade
-
-
(Linux uniquement) Vous allez utiliser cURL pour installer OCI et Fn. Entrez la commande suivante dans une fenêtre de terminal. La dernière instruction permet de vérifier que l'installation est effectuée correctement.
sudo apt install curl curl --version
-
Fn utilise l'interface de ligne de commande OCI pour déployer les composants personnalisés vers Oracle Cloud Infrastructure Functions. Exécutez la commande appropriée pour installer l'interface de ligne de commande et acceptez toutes les valeurs par défaut.
-
Linux :
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
-
Mac :
brew update && brew install oci-cli
- Windows (si vous utilisez un sous-système Linux sur Windows) : suivez les étapes Windows de démarrage rapide dans la documentation Oracle Cloud Infrastructure.
-
-
Dans Configuration de votre compte utilisateur pour Oracle Functions, vous avez créé un fichier
config
. Vous devez à présent configurer l'interface de ligne de commande pour qu'elle utilise ce fichier. Ouvrez une nouvelle fenêtre de terminal, exécutez cette commande, indiquez l'emplacement du fichierconfig
, puis entrezn
pour les questions restantes (le fichierconfig
possède déjà les paramètres nécessaires).oci setup config
Par exemple :
$ oci setup config This command provides a walkthrough of creating a valid CLI config file. ... Enter a location for your config [/home/joe/.oci/config]: Config file: /home/joe/.oci/config already exists. Do you want add a profile here? (If no, you will be prompted to overwrite the file) [Y/n]: n File: /home/joe/.oci/config already exists. Do you want to overwrite (Removes existing profiles!!!)? [y/N]: n
-
Vous devez disposer de Docker 17.10.0-ce ou version ultérieure pour propager le package de composants personnalisés vers le registre.
-
Pour Ubuntu, les instructions d'installation sont disponibles à l'adresse https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository.
-
Pour Mac, les instructions d'installation sont disponibles à l'adresse https://docs.docker.com/docker-for-mac/install/
Reportez-vous à la page https://docs.docker.com/engine/install/linux-postinstall/ si vous ne souhaitez pas faire précéder la commande
docker
desudo
. -
-
Si vous utilisez un VPN, suivez les instructions disponibles à l'adresse https://docs.docker.com/network/proxy/
Si vous utilisez le sous-système Linux sur Windows, vous pouvez définir les proxies à partir de la page Ressources dans les paramètres de Docker Desktop.
-
Vérifiez que Docker est en cours d'exécution. Vous ne pouvez pas démarrer Fn, que vous installez par la suite, si Docker n'est pas en cours d'exécution.
-
Vous allez utiliser Fn, plate-forme légère de fonctions sans serveur Docker, pour configurer le contexte et déployer le package. Si vous ne l'avez pas déjà installé, suivez les instructions d'installation de Fn, de démarrage du serveur Fn et de test de l'installation à l'adresse https://fnproject.io/tutorials/install/
Vous n'avez pas besoin de configurer le contexte ni de définir le registre pour le moment. Pour cela, suivez les étapes décrites dans Déploiement des composants personnalisés vers Oracle Cloud Infrastructure Functions.
Modification du package de composants personnalisés pour Oracle Functions
Afin de pouvoir déployer un package de composants personnalisés vers Oracle Cloud Infrastructure Functions, vous devez ajouter les fichiers func.js
et func.yaml
, ajouter une dépendance de développeur pour le kit de développement de fonction Fnproject et installer le kit.
(Machine virtuelle Windows uniquement) Si vous utilisez un invité Linux, effectuez ces étapes sur votre ordinateur local, puis utilisez le glisser-déplacer pour copier le package de composants vers l'invité Linux. Vous pouvez également installer Node.js et le kit SDK Bots Node, comme décrit dans Etape 1 : installation du logiciel pour créer des composants personnalisés, sur l'invité Linux avant de suivre la procédure.
-
Si vous avez utilisé la commande
bots-node-sdk init
pour créer votre package de composants personnalisé, il se peut qu'il ait créé un fichier nomméDockerfile
dans le dossier supérieur. Si tel est le cas, vous devez le supprimer. Sinon, votre déploiement échouera. -
Dans le dossier principal du package de composants personnalisés (dossier contenant
main.js
), créez un fichier nomméfunc.js
, puis ajoutez le code suivant. Fichier appelé par Oracle Cloud Infrastructure Functions./*** This function handles an invocation that sets the "Oracle-Bots-Fn-Path" header to determine which component to invoke or if metadata should be returned. ***/ const fdk = require('@fnproject/fdk'); const OracleBotLib = require('@oracle/bots-node-sdk/lib'); const path = require("path"); const BOTS_FN_PATH_HEADER = "Oracle-Bots-Fn-Path"; const METADATA_PATH = "metadata"; const COMPONENT_PREFIX = "components/"; let shell; let componentsRegistry; const getComponentsRegistry = function (packagePath) { let registry = require(packagePath); if (registry.components) { return OracleBotLib.ComponentRegistry.create(registry.components, path.join(process.cwd(), packagePath)); } return null; } componentsRegistry = getComponentsRegistry('.'); if (componentsRegistry && componentsRegistry.getComponents().size > 0) { shell = OracleBotLib.ComponentShell({logger: console}, componentsRegistry); if (!shell) { throw new Error("Failed to initialize Bots Node SDK"); } } else { throw new Error("Unable to process component registry because no components were found in package: " + packagePath); } const _handle = function (input, ctx) { let botsFnPath = ctx.getHeader(BOTS_FN_PATH_HEADER); if (!botsFnPath) { throw new Error("Missing required header " + BOTS_FN_PATH_HEADER); } else if (botsFnPath === METADATA_PATH) { return shell.getAllComponentMetadata(); } else if (botsFnPath.startsWith(COMPONENT_PREFIX)) { let componentName = botsFnPath.substring(COMPONENT_PREFIX.length); if (!componentName) { throw new Error("The component name is missing from the header " + BOTS_FN_PATH_HEADER + ": " + botsFnPath); } return new Promise((resolve) => { let callback = (err, data) => { if (!err) { resolve(data); } else { console.log("Component invocation failed", err.stack); throw err; } }; shell.invokeComponentByName(componentName, input, {logger: () => console}, callback); }); } }; fdk.handle(function (input, ctx) { try { return _handle(input, ctx); } catch (err) { console.log("Function failed", err.stack); throw err; } });
-
Dans le même dossier, créez un fichier nommé
func.yaml
, puis ajoutez le contenu suivant :schema_version: 20180708 name: <custom component package name> version: 0.0.1 runtime: [node11|node14] build_image: [fnproject/node:11-dev|fnproject/node:14-dev] run_image: [fnproject/node:11|fnproject/node:14] entrypoint: node func.js
-
Dans la propriété
name
, remplacez<custom component package name>
par le nom du package de composants personnalisés, puis enregistrez les modifications. Le nom est généralement celui que vous indiquez dans le fichierpackage.json
.Le nom ne doit pas comporter plus de 255 caractères, et doit contenir uniquement des lettres, des chiffres,
_
et-
. -
Définissez les propriétés suivantes :
-
runtime
: langue et version du noeud. Indiqueznode11
ounode14
. -
build_image
: image de base de compilation contenant les bibliothèques et les outils propres au langage permettant de créer des fonctions exécutables. Indiquezfnproject/node:11-dev
oufnproject/node:14-dev
. -
run_image
: image de base d'exécution qui fournit l'environnement d'exécution propre au langage dans lequel exécuter les fonctions exécutables. Indiquezfnproject/node:11
oufnproject/node:14
.
-
-
Dans une fenêtre de terminal, passez au dossier principal du package et entrez la commande suivante pour installer le kit de développement de fonction et l'ajouter en tant que dépendance de package dans le fichier
package.json
:npm install --save-dev @fnproject/fdk
-
(Facultatif – Linux, Mac et sous-système Linux sur Windows uniquement) Exécutez la commande suivante pour installer les dépendances de package :
npm install
Si le dossier
node_modules
n'existe pas, la commandefn deploy
exécutée ultérieurement appellenpm install
pour vous. -
(Machine virtuelle Windows uniquement) Afin de copier le code de composant personnalisé vers l'invité Linux pour le déploiement, procédez comme suit :
-
Glissez-déplacez le dossier de niveau supérieur vers l'invité Linux.
-
Dans une fenêtre de terminal, passez au dossier de niveau supérieur (celui qui contient
main.js
) et saisissez la commande suivante afin d'ajouter des droits d'exécution pour le dossier.chmod 755 components
-
Supprimez le dossier
node_modules
pour vous assurer que vous ne disposez d'aucun module de noeud dépendant de la plate-forme. -
(Facultatif) Exécutez la commande suivante pour réinstaller les dépendances de module de noeud.
npm install
Si le dossier
node_modules
n'existe pas, la commandefn deploy
exécutée ultérieurement appellenpm install
pour vous.
-
Vous êtes maintenant prêt à suivre les étapes décrites dans Déploiement des composants personnalisés vers Oracle Cloud Infrastructure Functions.
Déploiement des composants personnalisés vers Oracle Cloud Infrastructure Functions
Une fois que vous avez créé le fichier func.js
, ajouté Fnproject aux dépendances de développement et installé les dépendances comme décrit dans Modification du package de composants personnalisés pour Oracle Functions, vous êtes prêt à déployer une image Docker du package de composants vers Oracle Cloud Infrastructure Functions.
Lorsque vous avez effectué les étapes décrites dans Configuration de votre compte utilisateur pour Oracle Functions, vous avez copié les commandes de la configuration locale sur la page Mise en route pour les étapes 3 à 7. Ces commandes copiées vont vous permettre de déployer vos composants personnalisés.
Si vous utilisez Cloud Shell, exécutez plutôt les commandes similaires indiquées dans Configuration de Cloud Shell.
Pour déployer les composants personnalisés, procédez comme suit :
-
Assurez-vous que Docker et le serveur Fn sont en cours d'exécution.
-
Dans une fenêtre de terminal, passez au répertoire principal du package de composants personnalisés et entrez les commandes copiées équivalentes pour configurer le contexte.
fn create context <context> --provider oracle fn use context <context> fn update context oracle.compartment-id <compartment-ocid> fn update context api-url https://functions.<region-identifier>.oci.oraclecloud.com
Vous n'avez pas à réexécuter ces commandes tant que vous n'avez pas besoin de modifier les configurations de contexte.
Si vous obtenez l'erreur "Fn : error replace file with tempfile" lorsque vous modifiez le contexte, modifiez manuellement
~/.fn/config.yaml
et modifiez le contexte dans ce fichier. -
Si votre fichier de configuration possède plusieurs profils, entrez cette commande pour pointer vers le profil que vous avez créé dans Configuration de votre compte utilisateur pour Oracle Functions.
fn update context oracle.profile <profile-name>
-
Pour pointer vers le référentiel de registre que vous avez créé dans Configuration de votre compte utilisateur pour Oracle Functions, entrez la commande copiée équivalente à la suivante. Si vous ne l'avez pas encore fait, remplacez
[OCIR-REPO]
par le nom de votre référentiel.fn update context registry <region-key>.ocir.io/<tenancy-namespace>/[OCIR-REPO]
Vous n'avez pas à réexécuter cette commande tant que vous n'avez pas besoin de modifier la configuration du référentiel.
-
Si vous ne vous êtes pas connecté à Docker dans la session en cours, exécutez la commande copiée équivalente à celle indiquée ici.
Lorsque vous êtes invité à saisir un mot de passe, entrez votre jeton d'authentification, qui est le jeton obtenu lors des étapes décrites dans Configuration de votre compte utilisateur pour Oracle Functions.
docker login -u '<tenancy-namespace>/<user-name>' <region-key>.ocir.io
-
Pour déployer les composants personnalisés, exécutez la commande suivante :
fn deploy --app <application>
Si le message suivant apparaît, ouvrez le fichier
.oci/config
et vérifiez quefingerprint
indique l'empreinte correcte pour l'élémentkey_file
spécifié. Si tel n'est pas le cas, accédez à vos paramètres utilisateur dans la console, cliquez sur Clés d'API, affichez le fichier de configuration correspondant à l'empreinte correcte, puis remplacez le contenu de votre fichier de configuration par le contenu affiché.Fn: Service error:NotAuthenticated. The required information to complete authentication was not provided or was incorrect.. http status code: 401.
Vos composants personnalisés sont prêts à être utilisés dans une brique, tel que décrit dans Ajout d'un service Oracle Functions.
Déploiement vers Mobile Hub
Pour héberger un package de composants personnalisé dans Mobile Hub, utilisez l'interface de ligne de commande bots-node-sdk pack --service mobile-api
pour copier les dossiers de votre package de composants et effectuer quelques modifications propres à Mobile Hub, y compris le fichier RAML. Ensuite, créez l'API personnalisée à partir du fichier RAML et téléchargez un fichier ZIP du package de composants vers l'API personnalisée.
-
Dans le dossier de niveau supérieur du package de composants personnalisé (celui qui contient le fichier
main.js
), saisissez cette commande dans une fenêtre de terminal :bots-node-sdk pack --service mobile-api
Cette commande effectue les opérations suivantes :
- Elle copie les fichiers et sous-dossiers dans
service-mobile-api-<package version>
. - Elle ajoute un fichier
component.service.raml
contenant les adresses et les opérations nécessaires. - Elle crée un fichier
api.js
, qui est un wrapper de Mobile Hub pourmain.js
. - Elle modifie le fichier
package.json
pour définir le fichier principal surapi.js
, définir les dépendances et ajouter la configuration du noeud Mobile Hub.
Cette étape représente la commande d'interface de ligne de commande de base. Pour plus d'informations, reportez-vous à
https://github.com/oracle/bots-node-sdk/blob/master/bin/CLI.md
. - Elle copie les fichiers et sous-dossiers dans
- Vérifiez le fichier
package.json
et assurez-vous que le nom du package respecte les contraintes Mobile Hub suivantes : Modifiez le nom en conséquence.- Le nom doit être composé uniquement de lettres (A-Z, a-z), de chiffres (0-9) et de traits de soulignement (_).
- Le nom doit commencer par une lettre.
- Le nom ne doit pas comporter plus de 100 caractères.
-
Sur la page d'API Mobile Hub, cliquez sur Nouvelle API > API, puis créez l'API personnalisée en téléchargeant le fichier
component.service.raml
vers le serveur. -
Dans l'onglet Sécurité, désactivez Connexion requise, puis cliquez sur Enregistrer.
-
Compressez le dossier
service-mobile-api-<package version>
, puis téléchargez le fichier ZIP vers le serveur à partir de l'onglet Implémentation de l'API personnalisée. -
A partir de la page Test, appelez la demande
GET
. La réponse doit afficher les métadonnées de composant.Conseil :
Si vous obtenez le statut 500 et que l'erreur indique que la définition d'acheminement correspondante est introuvable, recherchez des éléments de syntaxe JavaScript erronés dans vos fichiers, car il s'agit de la cause la plus courante.