Este tópico descreve como instalar dependências de terceiros para seu código Node.js, empacotar o código e fazer o deploy no Function Compute. Como exemplo, utilizamos uma biblioteca de dependências de emojis de terceiros.
Preparativos
-
Crie um diretório de código para testes e especifique um nome para o diretório. Neste exemplo, usamos
mycode.-
Linux e macOS
Execute o comando
mkdir -p /tmp/mycodepara criar o diretório. -
Windows
Crie uma pasta e nomeie-a como
mycode.
-
-
Crie o arquivo
index.mjsouindex.jsno diretório mycode.O código a seguir mostra um exemplo:
Módulos ECMAScript
NotaEste exemplo oferece suporte apenas ao 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:')); }
Use o npm para instalar dependências e fazer o deploy do código
Prerequisites
O npm está instalado na sua máquina local e você possui as permissões para executar comandos do npm.
Você criou uma função Node.js no console do Function Compute. Para mais informações, consulte {{XREF_0}}.
Procedure
Execute o comando
npm install node-emojino diretóriomycodee instale a biblioteca de dependências de emojis no diretório atual.-
Empacote todos os arquivos no diretório
mycode.-
Linux e macOS
Acesse o diretório
mycodee executezip code.zip -r ./*.NotaCertifique-se de ter as permissões de leitura e gravação no diretório.
-
Windows
Acesse o diretório
mycode, selecione todos os arquivos, clique com o botão direito neles e compacte-os em um arquivo .zip.
NotaCertifique-se de que o arquivo
index.jscriado esteja localizado no diretório raiz do pacote. -
-
No console do Function Compute, encontre a função que você deseja gerenciar. No canto superior direito da página de detalhes da função, clique em Upload Code e faça o upload do 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 é executado em um ambiente Linux. Se um arquivo binário for incluído ao instalar a biblioteca de dependências de emojis em um dispositivo Windows ou macOS, o pacote de código falhará na execução. Portanto, recomendamos usar o WebIDE para empacotar dependências de terceiros ou usar o Serverless Devs para instalar dependências e implantar o projeto. Para mais informações, consulte {{XREF_1}} e {{XREF_2}}.
Use o Serverless Devs para instalar dependências e fazer o deploy do código
Prerequisites
O Serverless Devs e as dependências estão instalados. Para mais informações, consulte {{XREF_3}}.
O Serverless Devs está configurado. Para mais informações, consulte {{XREF_4}}.
Procedure
Execute o comando
cd /tmp/mycodepara acessar o diretóriomycode.-
Crie o arquivo
s.yaml.O código de exemplo a seguir mostra como editar o 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.O código de exemplo a seguir mostra como editar o arquivo:
{ "dependencies": { "node-emoji": "^1.11.0" } } -
Execute
sudo s build --use-dockerpara instalar as dependências.Após a conclusão da execução, o diretório
.sé gerado no diretóriomycode, e as dependências são instaladas no diretório.s/build/artifacts/{functionName}. -
Execute
sudo s deploypara fazer o deploy do projeto.Após a execução, você pode implantar sua função no Function Compute.
Nota importante
Ao usar um runtime personalizado para Node.js e especificar um executável compilado como comando de inicialização, a modificação do código-fonte diretamente no WebIDE não terá efeito, pois a função continuará a executar o binário compilado anteriormente. Para aplicar alterações no código, atualize o código-fonte localmente, recompile e empacote o executável, faça o upload do pacote atualizado para o WebIDE e execute a função novamente.
Mais informações
Se o seu pacote de código for muito grande, separe as dependências, crie uma camada e faça o upload apenas do código de negócio. Para mais informações, consulte os seguintes tópicos: