Cette rubrique explique comment installer des dépendances tierces pour votre code Node.js, empaqueter le code et le déployer sur Function Compute. Nous utilisons ici la bibliothèque tierce node-emoji à titre d'exemple.
Préparatifs
-
Créez un répertoire de code pour les tests et spécifiez son nom. Dans cet exemple, nous utilisons
mycode.-
Linux et macOS
Exécutez la commande
mkdir -p /tmp/mycodepour créer le répertoire. -
Windows
Créez un dossier et nommez-le
mycode.
-
-
Créez le fichier
index.mjsouindex.jsdans le répertoire mycode.Le code suivant illustre un exemple :
Modules ECMAScript
RemarqueCet exemple prend uniquement en charge Node.js 18 ou une version ultérieure.
// index.mjs 'use strict'; import * as emoji from 'node-emoji' export const handler = async (event, context) => { console.log('hello world'); return emoji.get(':unicorn:'); }Modules CommonJS
// index.js 'use strict'; var emoji = require('node-emoji') exports.handler = (event, context, callback) => { console.log('hello world'); callback(null, emoji.get(':unicorn:')); }
Utiliser npm pour installer les dépendances et déployer le code
Prerequisites
npm est installé sur votre machine locale et vous disposez des autorisations nécessaires pour exécuter les commandes npm.
Une fonction Node.js a été créée dans la console Function Compute. Pour plus d'informations, consultez la rubrique Créer une fonction déclenchée par un événement.
Procedure
Exécutez la commande
npm install node-emojidans le répertoiremycodeafin d'installer la bibliothèque de dépendances emoji dans le répertoire actuel.-
Empaquetez tous les fichiers du répertoire
mycode.-
Linux et macOS
Accédez au répertoire
mycodeet exécutez la commandezip code.zip -r ./*.RemarqueAssurez-vous de disposer des autorisations de lecture et d'écriture sur le répertoire.
-
Windows
Accédez au répertoire
mycode, sélectionnez tous les fichiers, faites un clic droit, puis compressez-les dans un fichier .zip.
RemarqueVérifiez que le fichier
index.jsque vous avez créé se trouve dans le répertoire racine du package. -
-
Dans la console Function Compute, localisez la fonction à gérer. Dans le coin supérieur droit de la page des détails de la fonction, cliquez sur Upload Code et téléchargez le package ZIP préparé.
Une fois le code téléchargé, vous pouvez cliquer sur Test Function dans l'onglet Code pour vérifier la validité du code.
Function Compute s'exécute dans un environnement Linux. Si un fichier binaire est inclus lors de l'installation de la bibliothèque de dépendances emoji sur un appareil Windows ou macOS, l'exécution du package de code échouera.Function Compute Par conséquent, nous vous recommandons d'utiliser WebIDE pour empaqueter les dépendances tierces ou de recourir à Serverless Devs pour installer les dépendances et déployer le projet. Pour plus d'informations, consultez les rubriques Utiliser WebIDE pour empaqueter les dépendances tierces d'une fonction et Utiliser Serverless Devs pour installer les dépendances et déployer le projet.
Utiliser Serverless Devs pour installer les dépendances et déployer le code
Prerequisites
Serverless Devs et ses dépendances sont installés. Pour plus d'informations, consultez la rubrique Prise en main de Function Compute avec Serverless Devs.
Serverless Devs est configuré. Pour plus d'informations, consultez la rubrique Configurer Serverless Devs.
Procedure
Exécutez la commande
cd /tmp/mycodepour accéder au répertoiremycode.-
Créez le fichier
s.yaml.L'extrait de code suivant montre comment modifier ce fichier :
edition: 3.0.0 name: fcDeployApp access: "default" vars: # The global variables. region: "cn-hangzhou" resources: hello_world: component: fc3 # The name of the component. props: region: ${vars.region} # For information about how to use variables, visit: https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC. functionName: "emoji" description: 'this is emoji' runtime: "nodejs18" code: ./ handler: index.handler memorySize: 128 timeout: 30 -
Ajoutez le fichier
package.json.L'extrait de code suivant montre comment modifier ce fichier :
{ "dependencies": { "node-emoji": "^1.11.0" } } -
Exécutez la commande
sudo s build --use-dockerpour installer les dépendances.Une fois l'exécution terminée, le répertoire
.sest généré dans le répertoiremycode, et les dépendances sont installées dans le répertoire.s/build/artifacts/{functionName}. -
Exécutez la commande
sudo s deploypour déployer le projet.Après l'exécution, vous pouvez déployer votre fonction sur Function Compute.
Remarque importante
Lorsque vous utilisez un runtime personnalisé pour Node.js et spécifiez un exécutable compilé comme commande de démarrage, la modification directe du code source dans WebIDE ne prendra pas effet, car la fonction continuera d'exécuter l'exécutable précédemment compilé. Pour appliquer les modifications de code, vous devez mettre à jour le code source localement, recompiler et empaqueter l'exécutable, télécharger le package mis à jour sur WebIDE, puis réexécuter la fonction.
Informations complémentaires
Si votre package de code est trop volumineux, vous pouvez séparer les dépendances, créer un layer et télécharger uniquement le code métier. Pour plus d'informations, consultez les rubriques suivantes :