Déployer l'ensemble de composants sur un service
Vous pouvez héberger un ensemble de composants personnalisés à partir d'un conteneur intégré de Digital Assistant, d'Oracle Cloud Infrastructure Functions, de Mobile Hub ou d'un serveur Node.js externe.
Pour les services de composants intégrés, vous déployez l'ensemble 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 l'ensemble sur le service, comme décrit ici, avant de l'ajouter à une compétence en tant que service de composant.
Déployer sur un serveur Node.js
Pour héberger un ensemble de composants personnalisés sur un serveur Node.js externe, utilisez l'interface de ligne de commande bots-node-sdk pack --service express
pour copier ses dossiers et apporter quelques modifications propres à Express, puis installez-le et démarrez-le sur votre serveur.
-
À partir du dossier de niveau supérieur de l'ensemble de composants personnalisés (celui qui contient le fichier
main.js
), tapez cette commande dans une fenêtre de terminal :bots-node-sdk pack --service express
La commande effectue les tâches suivantes :
- Elle copie les fichiers et les sous-dossiers dans
service-express-<package version>
. - Elle ajoute un encapsuleur de service
index.js
. - Elle crée un fichier
api.js
, qui est un encapsuleur Express pourmain.js
. - Elle modifie le fichier
package.json
pour régler le fichier principal àindex.js
et ajouter les dépendances.
Cette étape montre la commande de base de l'interface de ligne de commande. Pour plus d'informations, voir
https://github.com/oracle/bots-node-sdk/blob/master/bin/CLI.md
. - Elle copie les fichiers et les sous-dossiers dans
-
Exécutez ces commandes :
npm install npm start
Déployer vers Oracle Cloud Infrastructure Functions
Vous pouvez déployer vos composants personnalisés dans Oracle Cloud Infrastructure Functions.
Actuellement, Oracle Digital Assistant ne peut pas accéder aux programmes de traitement d'événements d'entité dans les ensembles que vous déployez dans Oracle Cloud Infrastructure Functions.
Voici les étapes générales :
Obtenir des noms d'artefact et des autorisations pour le déploiement sur Oracle Cloud Infrastructure Functions
Avant de déployer des composants personnalisés sur Oracle Cloud Infrastructure Functions, vous devez obtenir le nom des objets utilisés pour le déploiement et vérifier que vous êtes autorisé à les utiliser.
Pour configurer votre instance pour le déploiement sur Oracle Cloud Infrastructure Functions, l'administrateur de votre location a effectué les étapes décrites dans Configuration et politiques pour Oracle Functions. Dans le cadre du processus, ils ont créé les artefacts suivants. Demandez son nom à votre administrateur. Vous en aurez besoin lorsque vous aurez effectué les étapes dans Configurer votre compte d'utilisateur pour Oracle Functions :
-
Le nom de la région et du compartiment à utiliser pour vos fonctions.
-
Le nom du compartiment du réseau virtuel de l'application de fonctions. Il s'agit généralement du compartiment utilisé pour les fonctions.
-
Le nom du réseau en nuage virtuel à utiliser pour l'application de fonctions.
Demandez également à votre administrateur de vérifier que vous appartenez à un groupe qui possède les autorisations nécessaires aux développeurs de fonctions, ce qui inclut l'accès à ces artefacts.
Configurer votre compte d'utilisateur pour Oracle Functions
Avant de déployer des ensembles de composants personnalisés sur Oracle Cloud Infrastructure Functions, vous devez effectuer les opérations 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 autorise le développement de fonctions comme décrit dans Obtenir des noms d'artefact et des autorisations pour le déploiement sur 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 des fonctions.
-
Vous serez déployé sur Oracle Cloud Infrastructure Functions au moyen d'Oracle Cloud Infrastructure Registry. Si vous ne disposez pas encore de référentiel de registre, 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éveloppement, sur Container Registry, 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.
-
Donnez un nom au référentiel, puis cliquez sur Créer un référentiel.
-
-
Si vous n'avez pas d'application de fonctions pour vos ensembles de composants personnalisés, vous devrez en créer une. Dans la page Services de développement, cliquez sur Fonctions, puis sur Créer une application. Indiquez un nom, sélectionnez un réseau en nuage virtuel, au moins un sous-réseau, puis cliquez sur Créer.
Si vous ne voyez aucun réseau en nuage virtuel à choisir, vous n'êtes peut-être pas dans la bonne région.
Le nombre d'applications et de fonctions est limité. Pour les limites par défaut, voir Limites du service des fonctions dans la documentation sur Oracle Cloud Infrastructure.
-
Dans la page Applications, cliquez sur l'application que vous utilisez pour le déploiement de fonctions, cliquez sur Démarrage dans la section Ressources, puis sur Configuration locale.
Comme indiqué dans la capture d'écran suivante, la page affiche plusieurs commandes que vous devrez utiliser pour configurer votre ordinateur local et déployer votre ensemble de composants personnalisés. Copiez et enregistrez les commandes des étapes 3 à 7.
Vous les utiliserez plus tard après avoir installé le logiciel requis sur votre machine locale et que vous serez prêt à déployer vos composants personnalisés. Sinon, ajoutez cette page à vos signets afin de pouvoir y retourner lorsque vous aurez besoin d'utiliser les commandes.
N'exécutez pas ces commandes maintenant. Copiez-les seulement.
-
Dans votre commande copiée similaire à 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 le coin supérieur droit, puis sur Paramètres de l'utilisateur pour accéder à la page Détails de l'utilisateur.
-
À l'étape suivante, vous allez créer un fichier PEM que vous devez stocker dans un dossier
. oci
sur votre machine locale. Si votre dossier de base sur votre machine locale ne contient 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é un pour votre compte d'utilisateur, à partir de 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é privée (fichier
PEM
) dans le répertoire.oci
de votre dossier de base. - Prenez note de l'empreinte digitale associée à la clé d'API. Lorsque vous avez plusieurs clés d'API, vous devez savoir quelle empreinte digitale utiliser pour chaque fichier
PEM
privé. -
Si vous n'avez pas déjà paramétré de fichier
config
pour l'empreinte digitale sur votre machine locale, procédez comme suit à partir de la section Clés d'API :-
Cliquez sur
dans la rangée de l'empreinte digitale de votre clé d'API, puis sur Voir le fichier de configuration.
-
Copiez le contenu Prévisualisation du fichier de configuration.
-
Dans le dossier
.oci
de votre machine locale (dans le dossier où vous avez enregistré votre fichier de clé privée), créez un fichier nomméconfig
et collez-y le contenu copié.
-
-
Dans le fichier
config
, modifiez la propriétékey_file
pour pointer vers l'emplacement de votre fichier PEM privé. Par exemple :key_file=/home/joe/.oci/my-private.pem
-
Si vous n'avez pas de jeton d'authentification, cliquez sur Jetons d'authentification dans le menu Ressources, puis sur Générer un jeton. Copiez le jeton d'authentification immédiatement vers un emplacement sécurisé à partir duquel vous pourrez l'extraire ultérieurement, car vous ne le verrez plus dans la console. Vous utilisez le jeton d'authentification comme mot de passe lorsque vous vous connectez pour pousser votre ensemble de composants personnalisés vers le registre Oracle Infrastructure pour déploiement.
Configurer votre machine locale pour Oracle Functions
Vous devrez installer cURL, l'interface de ligne de commande (CLI) OCI, Fn et Docker sur votre machine locale pour permettre le déploiement sur Oracle Cloud Infrastructure Functions. Si votre machine fonctionne sous Windows, vous devez choisir l'une des options suivantes pour utiliser Fn :
-
Installez Fn et Docker sur Linux dans Oracle VM VirtualBox en suivant les étapes de cette rubrique.
-
Installez Docker et Fn sous Windows, puis installez le sous-système Linux pour Windows comme décrit dans Comment : Exécuter le client Fn sous Windows et se connecter à un serveur Fn distant.
- Déployez vos composants personnalisés depuis Cloud Shell. Voir Cloud Shell dans la documentation sur Oracle Cloud Infrastructure.
Pour configurer votre machine locale :
-
(Windows sur machine virtuelle seulement)) Si vous souhaitez utiliser un invité Linux sur Oracle VM VirtualBox pour déployer votre ensemble de composants personnalisés sur Oracle Cloud Infrastructure Functions, procédez de la façon suivante :
-
Installez VirtualBox depuis https://www.virtualbox.org/.
-
Téléchargez un fichier ISO Linux. Par exemple, pour obtenir le fichier ISO d'Ubuntu-Mate, accédez à https://ubuntu-mate.org/download/et cliquez sur PC 64 bits/Mac.
-
Dans VirtualBox, créez une machine virtuelle à partir du fichier ISO. Les instructions pour créer une machine virtuelle Ubunto-Mate figurent à l'adresse https://itsfoss.com/install-linux-in-virtualbox/. Ce sera votre invité Linux.
-
Démarrez l'invité Linux.
-
À partir d'une fenêtre de terminal, exécutez cette commande :
sudo apt-get update
Ceci met à jour les listes des nouveaux ensembles et de ceux nécessitant une mise à niveau.
Conseil :
Pour ouvrir une fenêtre de terminal dans Ubuntu, appuyez sur Ctrl-Alt-T. -
Pour effectuer des opérations telles que copier et coller dans une fenêtre de terminal, vous aurez besoin des ajouts d'invités. Téléchargez http://download.virtualbox.org/virtualbox/<release>/VBoxGuestAdditions_<release>.iso, et installez et configurez les ajouts à l'aide des instructions à l'adresse https://itsfoss.com/virtualbox-guest-additions-ubuntu/
Assurez-vous de configurer Périphériques > Glisser-déposer à bidirectionnel.
-
Entrez cette commande dans une fenêtre de terminal pour installer node.js et npm sur l'invité.
sudo apt install npm
-
Glissez le dossier
. oci
du répertoire de base de votre machine locale dans le dossier de base de l'invité Linux.Parce qu'il s'agit d'un fichier caché, vous devez appuyer sur Ctrl-H ou sélectionner Vue > Montrer les fichiers cachés dans le dossier de base pour le voir.
-
À partir du dossier
.oci
de l'invité Linux, ouvrez le fichierconfig
et changezkey_file
pour pointer vers l'emplacement du fichier dans votre invité Linux. Par exemple :key_file=/home/joe/.oci/my-private.pem
-
Effectuez les étapes restantes dans cette rubrique à partir de l'invité Linux.
-
- (Mac seulement) Si vous ne l'avez pas encore fait, installez Homebrew pour vous permettre d'installer cURL, l'interface de ligne de commande OCI et Fn. Voir https://docs.brew.sh/Installation. Vous pouvez également utiliser les commandes MacPorts équivalentes.
-
Si vous accédez à Internet au moyen d'un RPV, vous devrez peut-être configurer des mandataires. 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 les ensembles à jour.
-
Linux :
sudo apt update && sudo apt upgrade
-
Mac :
brew update && brew upgrade
-
-
(Linux seulement) Vous utiliserez cURL pour installer OCI et Fn. Entrez cette commande dans une fenêtre de terminal. Le dernier énoncé permet de vérifier que l'installation a abouti.
sudo apt install curl curl --version
-
Fn utilise l'interface de ligne de commande OCI pour déployer les composants personnalisés sur 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 le sous-système Linux sous Windows) : Suivez les étapes Windows sous Démarrage rapide dans la documentation sur Oracle Cloud Infrastructure.
-
-
Dans Configurer votre compte d'utilisateur pour Oracle Functions, vous avez créé un fichier
config
. Vous devez maintenant configurer l'interface de ligne de commande pour utiliser ce fichier. Ouvrez une nouvelle fenêtre de terminal, exécutez cette commande, indiquez l'emplacement de votre fichierconfig
, puis entrezn
pour les questions restantes (votre fichierconfig
comprend 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 avez besoin de Docker 17.10.0-ce ou ultérieur pour pousser l'ensemble de composants personnalisés vers le registre.
-
Pour Ubuntu, les instructions d'installation figurent à l'adresse https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository.
-
Pour Mac, les instructions d'installation figurent à l'adresse https://docs.docker.com/docker-for-mac/install/.
Voir https://docs.docker.com/engine/install/linux-postinstall/ si vous ne souhaitez pas préfacer la commande
docker
avecsudo
. -
-
Si vous utilisez un RPV, suivez les instructions sous https://docs.docker.com/network/proxy/.
Si vous utilisez le sous-système Linux sous Windows, vous pouvez définir les mandataires à partir de la page Ressources des paramètres du bureau Docker.
-
Assurez-vous que Docker est en cours d'exécution. Vous ne pouvez pas démarrer Fn, que vous installez ensuite, si Docker n'est pas en cours d'exécution.
-
Vous utiliserez Fn, qui est une plate-forme Docker de fonctions sans serveur légère, pour configurer le contexte et déployer l'ensemble. Si vous ne l'avez pas encore fait, suivez les instructions pour installer Fn, démarrer le serveur Fn et tester l'installation à l'adresse https://fnproject.io/tutorials/install/.
Vous n'avez pas besoin de configurer le contexte ou de définir le registre pour le moment. Vous le faire lorsque vous effectuerez les étapes sous Déployer les composants personnalisés sur Oracle Cloud Infrastructure Functions.
Modifier l'ensemble de composants personnalisés pour Oracle Functions
Avant de déployer un ensemble de composants personnalisé sur Oracle Cloud Infrastructure Functions, vous devrez ajouter les fichiers func.js
et func.yaml
, ajouter une dépendance de développement pour la trousse FDK fnproject et installer cette dernière.
(Machine virtuelle Windows uniquement) Si vous utilisez un invité Linux, effectuez les étapes suivantes sur votre machine locale, puis glissez-déposez l'ensemble de composants pour le copier dans votre invité Linux. Sinon, installez node.js et la trousse SDK de développement de robots, comme décrit sous Étape 1 : Installer les logiciels pour créer des composants personnalisés, sur votre invité Linux avant d'effectuer la procédure.
-
Si vous avez utilisé la commande
bots-node-sdk init
pour créer votre ensemble de composants personnalisés, il se peut qu'elle ait créé un fichier nomméDockerfile
dans le dossier supérieur. Si oui, vous devez le supprimer. Sinon, votre déploiement échouera. -
Dans le dossier supérieur de votre ensemble de composants personnalisés (le dossier qui contient
main.js
), créez un fichier nomméfunc.js
, puis ajoutez le code suivant. Il s'agit du fichier qu'Oracle Cloud Infrastructure Functions appellera./*** 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 de votre ensemble de composants personnalisés, puis enregistrez vos modifications. En général, il s'agit du nom que vous spécifiez dans le fichierpackage.json
.Le nom ne doit pas dépasser 255 caractères et ne doit contenir que des lettres, des nombres,
_
et-
. -
Définissez ces propriétés :
-
runtime
: Langue et version du noeud. Spécifieznode11
ounode14
. -
build_image
: Image de base du temps de création qui contient les bibliothèques et outils propres au langage pour créer des fonctions exécutables. Spécifiezfnproject/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. Spécifiezfnproject/node:11
oufnproject/node:14
.
-
-
Dans une fenêtre de terminal, passez au dossier supérieur de l'ensemble et entrez cette commande pour installer la trousse FDK et l'ajouter en tant que dépendance dans le fichier
package.json
:npm install --save-dev @fnproject/fdk
-
(Facultatif – Sous-système Linux, Mac et Linux sous Windows seulement) Exécutez cette commande pour installer les dépendances d'ensemble :
npm install
Notez que si le dossier
node_modules
n'existe pas, la commandefn deploy
que vous exécutez plus tard appelleranpm install
pour vous. -
(Machine virtuelle Windows seulement) Effectuez ces étapes pour copier votre code de composant personnalisé à votre invité Linux pour déploiement :
-
Glissez-déposez 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 tapez cette commande pour ajouter des autorisations d'exécution pour le dossier.chmod 755 components
-
Supprimez le dossier
node_modules
pour vous assurer que vous n'avez pas de module de noeud dépendant de la plate-forme. -
(Facultatif) Exécutez cette commande pour réinstaller les dépendances du module de noeud.
npm install
Notez que si le dossier
node_modules
n'existe pas, la commandefn deploy
que vous exécutez plus tard appelleranpm install
pour vous.
-
Vous êtes maintenant prêt à effectuer les étapes sous Déployer les composants personnalisés sur Oracle Cloud Infrastructure Functions.
Déployer les composants personnalisés sur Oracle Cloud Infrastructure Functions
Après avoir créé le fichier func.js
, ajouté fnproject aux dépendances de développement et installé les dépendances décrites sous Modifier l'ensemble de composants personnalisés pour Oracle Functions, vous êtes prêt à déployer une image Docker de l'ensemble de composants sur Oracle Cloud Infrastructure Functions.
Lorsque vous avez effectué les étapes sous Configurer votre compte d'utilisateur pour Oracle Functions, vous avez copié les commandes de la configuration locale dans la page Démarrage pour les étapes 3 à 7. Vous utiliserez ces commandes copiées pour déployer vos composants personnalisés.
Si vous utilisez Cloud Shell, utilisez plutôt les commandes similaires présentées sous Configuration de Cloud Shell.
Pour déployer les composants personnalisés :
-
Assurez-vous que Docker et le serveur Fn sont en cours d'exécution.
-
Dans une fenêtre de terminal, passez au répertoire supérieur de votre ensemble de composants personnalisés et entrez vos 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'aurez à exécuter ces commandes à nouveau que si vous devez modifier les configurations de contexte.
Si vous obtenez l'erreur "Fn : erreur de remplacement de fichier par tempfile" lorsque vous modifiez le contexte, modifiez manuellement
~/.fn/config.yaml
et modifiez le contexte dans ce fichier. -
Si votre fichier de configuration comporte plusieurs profils, entrez cette commande pour pointer vers le profil que vous avez créé dans Configurer votre compte d'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 Configurer votre compte d'utilisateur pour Oracle Functions, entrez votre commande copiée qui équivaut à ce qui suit. 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'aurez à exécuter cette commande à nouveau que si vous devez modifier la configuration du référentiel.
-
Si vous ne vous êtes pas connecté à Docker dans votre session courante, exécutez la commande copiée équivalente à celle présentée ici.
Lorsqu'un mot de passe vous est demandé, entrez votre jeton d'authentification, que vous avez obtenu lors de l'exécution des étapes sous Configurer votre compte d'utilisateur pour Oracle Functions.
docker login -u '<tenancy-namespace>/<user-name>' <region-key>.ocir.io
-
Pour déployer les composants personnalisés, exécutez cette commande :
fn deploy --app <application>
Si vous voyez le message suivant, ouvrez le fichier
.oci/config
et vérifiez quefingerprint
indique l'empreinte digitale correcte pourkey_file
. Sinon, accédez aux paramètres d'utilisateur dans la console, cliquez sur Clés d'API, recherchez l'empreinte digitale correcte dans le fichier de configuration, puis remplacez le contenu de votre fichier config 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 compétence telle que décrit sous Ajouter un service de fonction Oracle.
Déployer sur Mobile Hub
Pour héberger un ensemble de composants personnalisés dans Mobile Hub, utilisez l'interface de ligne de commande bots-node-sdk pack --service mobile-api
pour copier ses dossiers et apporter quelques modifications propres à Mobile Hub, y compris le fichier RAML. Créez ensuite l'API personnalisée à partir du fichier RAML, puis chargez un fichier ZIP de l'ensemble de composants dans l'API personnalisée.
-
À partir du dossier de niveau supérieur de l'ensemble de composants personnalisés (celui qui contient le fichier
main.js
), tapez cette commande dans une fenêtre de terminal :bots-node-sdk pack --service mobile-api
La commande effectue les tâches suivantes :
- Elle copie les fichiers et les sous-dossiers dans
service-mobile-api-<package version>
. - Elle ajoute un fichier
component.service.raml
, qui contient les points d'extrémité et opérations nécessaires. - Elle crée un fichier
api.js
, qui est un encapsuleur Mobile Hub pourmain.js
. - Elle modifie le fichier
package.json
pour régler le fichier principal àapi.js
, définir les dépendances et ajouter la configuration du noeud Mobile Hub.
Cette étape montre la commande de base de l'interface de ligne de commande. Pour plus d'informations, voir
https://github.com/oracle/bots-node-sdk/blob/master/bin/CLI.md
. - Elle copie les fichiers et les sous-dossiers dans
- Vérifiez le fichier
package.json
et assurez-vous que le nom de l'ensemble est conforme aux contraintes de Mobile Hub. Modifiez le nom au besoin pour qu'il soit conforme.- Le nom doit être composé uniquement de lettres (A-Za-z), de chiffres (0 à 9) et de traits de soulignement (_).
- Le nom doit commencer par une lettre.
- Il doit comporter au plus 100 caractères.
-
Dans la page des API de Mobile Hub, cliquez sur New API > API (Nouvelle API > API), puis créez l'API personnalisée en chargeant le fichier
component.service.raml
. -
Dans l'onglet Security (Sécurité), désactivez Login Required (Connexion obligatoire), puis cliquez sur Save (Enregistrer).
-
Compressez le dossier
service-mobile-api-<package version>
, puis chargez le fichier ZIP à partir de l'onglet Implementation (Mise en oeuvre) de l'API personnalisée. -
Dans la page de test, appelez la demande
GET
. La réponse doit afficher les métadonnées du composant.Conseil :
Si vous obtenez un statut 500 et que l'erreur est due au fait qu'il est impossible de trouver une définition d'acheminement correspondante, vérifiez dans vos fichiers si la syntaxe JavaScript est incorrecte, car c'est la cause habituelle.