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.

  1. À 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 pour main.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.

  2. 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 :

  1. Obtenir des noms d'artefact et des autorisations pour le déploiement sur Oracle Cloud Infrastructure Functions

  2. Configurer votre compte d'utilisateur pour Oracle Functions

  3. Configurer votre machine locale pour Oracle Functions

  4. Modifier l'ensemble de composants personnalisés pour Oracle Functions

  5. Déployer les composants personnalisés sur Oracle Cloud Infrastructure Functions

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 :

Note

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.
  1. 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.

  2. 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.

    1. Cliquez sur Icône du menu de navigation 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.

    2. Cliquez sur Créer un référentiel.

    3. Donnez un nom au référentiel, puis cliquez sur Créer un référentiel.

  3. 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.

  4. 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.


    Une description de fn-local-setup-commands.png suit
    Description de l'illustration fn-local-setup-commands.png

  5. 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]
  6. 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.

  7. À 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
  8. 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.

  9. 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é.
  10. 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 :

    1. Cliquez sur Plus dans la rangée de l'empreinte digitale de votre clé d'API, puis sur Voir le fichier de configuration.

    2. Copiez le contenu Prévisualisation du fichier de configuration.

    3. 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é.

  11. 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

  12. 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 :

Pour configurer votre machine locale :

  1. (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 :

    1. Installez VirtualBox depuis https://www.virtualbox.org/.

    2. 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.

    3. 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.

    4. Démarrez l'invité Linux.

    5. À 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.
    6. 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.

    7. Entrez cette commande dans une fenêtre de terminal pour installer node.js et npm sur l'invité.

      sudo apt install npm
    8. 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.

    9. À partir du dossier .oci de l'invité Linux, ouvrez le fichier config et changez key_file pour pointer vers l'emplacement du fichier dans votre invité Linux. Par exemple : key_file=/home/joe/.oci/my-private.pem

    10. Effectuez les étapes restantes dans cette rubrique à partir de l'invité Linux.

  2. (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.
  3. 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";
  4. Exécutez la commande appropriée pour mettre les ensembles à jour.

    • Linux :

      sudo apt update && sudo apt upgrade
    • Mac :

      brew update && brew upgrade
  5. (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
  6. 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.
  7. 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 fichier config, puis entrez n pour les questions restantes (votre fichier config 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
  8. Vous avez besoin de Docker 17.10.0-ce ou ultérieur pour pousser l'ensemble de composants personnalisés vers le registre.

    Voir https://docs.docker.com/engine/install/linux-postinstall/ si vous ne souhaitez pas préfacer la commande docker avec sudo.

  9. 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.

  10. 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.

  11. 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.

Note

(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.
  1. 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.

  2. 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;
        }
    });
  3. 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
  4. 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 fichier package.json.

    Le nom ne doit pas dépasser 255 caractères et ne doit contenir que des lettres, des nombres,_et -.

  5. Définissez ces propriétés :

    • runtime : Langue et version du noeud. Spécifiez node11 ou node14.

    • 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écifiez fnproject/node:11-dev ou fnproject/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écifiez fnproject/node:11 ou fnproject/node:14.

  6. 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
  7. (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 commande fn deploy que vous exécutez plus tard appellera npm install pour vous.

  8. (Machine virtuelle Windows seulement) Effectuez ces étapes pour copier votre code de composant personnalisé à votre invité Linux pour déploiement :

    1. Glissez-déposez le dossier de niveau supérieur vers l'invité Linux.

    2. 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
    3. Supprimez le dossier node_modules pour vous assurer que vous n'avez pas de module de noeud dépendant de la plate-forme.

    4. (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 commande fn deploy que vous exécutez plus tard appellera npm 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 :

  1. Assurez-vous que Docker et le serveur Fn sont en cours d'exécution.

  2. 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.

  3. 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>
  4. 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.

  5. 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
  6. 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 que fingerprint indique l'empreinte digitale correcte pour key_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.

  1. À 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 pour main.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.

  2. 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.
  3. 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.

  4. Dans l'onglet Security (Sécurité), désactivez Login Required (Connexion obligatoire), puis cliquez sur Save (Enregistrer).

  5. 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.

  6. 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.