Este tópico descreve como instale dependências de terceiros para seu código Node.js, empacotar o código e implantá-lo no Function Compute. Este exemplo utiliza uma biblioteca de dependências de emoji de terceiros.
Preparativos
-
Crie um diretório de código para testes e defina um nome. Neste exemplo, usamos
mycode.-
Linux e macOS
Execute o comando
mkdir -p /tmp/mycodepara criar o diretório. -
Windows
Crie uma pasta chamada
mycode.
-
-
Crie o arquivo
index.mjsouindex.jsno diretório mycode.Exemplo de código:
Módulos ECMAScript
NotaEste exemplo é compatível apenas com Node.js 18 ou superior.
// index.mjs 'use strict'; import * as emoji from 'node-emoji' export const handler = async (event, context) => { console.log('hello world'); return emoji.get(':unicorn:'); }Módulos CommonJS
// index.js 'use strict'; var emoji = require('node-emoji') exports.handler = (event, context, callback) => { console.log('hello world'); callback(null, emoji.get(':unicorn:')); }
Usar npm para instalar dependências e implantar o código
Prerequisites
npm instalado na máquina local, com permissões para executar comandos npm.
Função Node.js criada no console do Function Compute. Para mais informações, consulte Criar uma função acionada por evento.
Procedure
Execute o comando
npm install node-emojino diretóriomycodepara instale a biblioteca de dependências de emoji no diretório atual.-
Empacote todos os arquivos do diretório
mycode.-
Linux e macOS
Acesse o diretório
mycodee executezip code.zip -r ./*.NotaCertifique-se de ter permissões de leitura e gravação no diretório.
-
Windows
Acesse o diretório
mycode, selecione todos os arquivos, clique em com o botão direito e compacte-os em um arquivo .zip.
NotaVerifique se o arquivo
index.jscriado está localizado no diretório raiz do pacote. -
-
No console do Function Compute, localize a função desejada. No canto superior direito da página de detalhes da função, clique em Upload Code e envie o pacote ZIP preparado.
Após o upload do código, clique em Test Function na aba Code para verificar se o código está correto.
O Function Compute executa em ambiente Linux. Se você instale a biblioteca de dependências de emoji em Windows ou macOS e incluir um arquivo binário, a execução do pacote de código falhará.Function Compute Portanto, recomendamos usar o WebIDE para empacotar dependências de terceiros ou utilizar o Serverless Devs para instale dependências e implantar o projeto. Para mais informações, consulte Usar o WebIDE para empacotar dependências de terceiros de uma função e Usar o Serverless Devs para instalar dependências e implantar o projeto.
Usar o Serverless Devs para instalar dependências e implantar o código
Prerequisites
Serverless Devs e dependências instalados. Para mais informações, consulte Introdução ao Function Compute usando Serverless Devs.
Serverless Devs configurado. Para mais informações, consulte Configurar o Serverless Devs.
Procedure
Execute o comando
cd /tmp/mycodepara acessar o diretóriomycode.-
Crie o arquivo
s.yaml.Exemplo de edição do arquivo:
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 -
Adicione o arquivo
package.json.Exemplo de edição do arquivo:
{ "dependencies": { "node-emoji": "^1.11.0" } } -
Execute
sudo s build --use-dockerpara instale as dependências.Após a conclusão da execução, o diretório
.sserá gerado dentro do diretóriomycode, e as dependências serão instaladas no diretório.s/build/artifacts/{functionName}. -
Execute
sudo s deploypara implantar o projeto.Após a execução, a função estará implantada no Function Compute.
Nota importante
Ao usar um runtime personalizado para Node.js e especifique um executável compilado como comando de inicialização, modificar o código source diretamente no WebIDE não surtirá efeito, pois a função continuará executando o executável compilado anteriormente. Para aplicar alterações no código, atualize o código source localmente, recompile e empacote o executável, envie o pacote atualizado para o WebIDE e execute a função novamente.
Mais informações
Se o pacote de código for muito grande, separe as dependências, crie uma camada e envie apenas o código de negócio. Para mais informações, consulte os seguintes tópicos: