Como criar dependências de função?
É aconselhável criar dependências de função no EulerOS. Se outros sistemas operacionais forem usados, um erro pode ocorrer devido a bibliotecas dependentes subjacentes. Por exemplo, a biblioteca de vínculo dinâmico não pode ser encontrada.
Se os módulos a serem instalados precisarem de dependências como .dll, .so e .a, arquive-os em um pacote .zip.
Configurar o ambiente do EulerOS
EulerOS é um sistema operacional Linux de código aberto para empresas. Ele apresenta alta segurança, escalabilidade e desempenho, atendendo aos requisitos dos clientes para infraestrutura de TI e serviços de computação em nuvem. EulerOS da Huawei Cloud é recomendado.
- Compre um EulerOS do ECS na Huawei Cloud, referindo-se a Compra e logon em um ECS do Linux. Na página Configure Basic Settings, selecione Public Image e selecione Huawei Cloud EulerOS e uma versão de imagem.
- Baixe a imagem do EulerOS e use o software de virtualização para configurar a VM do EulerOS em um PC local.
Criar uma dependência para uma função de Python
Certifique-se de que a versão do Python do ambiente de empacotamento seja a mesma da função. Para o Python 2.7, recomenda-se o Python 2.7.12 ou posterior. Para o Python 3.6, recomenda-se o Python 3.6.3 ou posterior.
Para instalar a dependência do PyMySQL para uma função do Python 2.7 no diretório /tmp/pymysql, execute o seguinte comando:
pip install PyMySQL --root /tmp/pymysql
Depois que o comando for executado com sucesso, vá para o diretório /tmp/pymysql:
cd /tmp/pymysql/
Vá para o diretório site-packages (geralmente, usr/lib64/python2.7/site-packages/) e execute o seguinte comando:
zip -rq pymysql.zip *
A dependência necessária é gerada.
Para instalar o pacote de instalação local de rodas, execute o seguinte comando:
pip install piexif-1.1.0b0-py2.py3-none-any.whl --root /tmp/piexif //Replace piexif-1.1.0b0-py2.py3-none-any.whl with the actual installation package name.
Criando uma dependência para uma função de Node.js
Verifique se a versão correspondente do Node.js foi instalada no ambiente.
Para instalar a dependência de MySQL para uma função de Node.js 8.10, execute o seguinte comando:
npm install mysql --save
A pasta node_modules é gerada sob o diretório atual.
- Sistema operacional Linux
Execute o seguinte comando para gerar um pacote ZIP.
zip -rq mysql-node8.10.zip node_modules
A dependência necessária é gerada.
Para instalar múltiplas dependências, crie um arquivo package.json primeiro. Por exemplo, insira o seguinte conteúdo no arquivo package.json e execute o seguinte comando:
{ "name": "test", "version": "1.0.0", "dependencies": { "redis": "~2.8.0", "mysql": "~2.17.1" } }
npm install --save
Não execute o comando CNPM para gerar dependências de Node.js.
Compacte node_modules em um pacote ZIP. Isso gera uma dependência que contém tanto o MySQL quanto o Redis.
Para outras versões do Node.js, você pode criar dependências da maneira indicada acima.
Criar uma dependência para uma função de Java
Quando você compila uma função usando Java, as dependências precisam ser compiladas localmente. Para obter detalhes sobre como adicionar dependências, consulte Desenvolvimento de funções em Java (usando um projeto IDEA de Java).
Criar uma dependência para uma função de PHP
EulerOS 2.9.6 é recomendado.
Por padrão, o Composer e o PHP 7.3 foram instalados no ambiente. Instale o Protobuf 3.19 usando o Composer.
{ "require": { "google/protobuf": "^3.19" } }
Composer install
A pasta vendor é gerada com as subpastas autoload.php, composer e google no diretório atual.
- Linux
Execute o seguinte comando para gerar um pacote ZIP.
zip –rq vendor.zip vendor
- Windows
Compacte vendor em um arquivo ZIP.
Se várias dependências precisarem ser instaladas, especifique-as no arquivo composer.json, compacte a pasta do vendor em um arquivo ZIP e faça o upload.
Para usar dependências de terceiros baixadas usando o Composer no código do projeto de PHP, carregue as dependências através de require "./vendor/autoload.php". Por padrão, os arquivos descompactados do pacote ZIP carregado são colocados em um diretório no mesmo nível do código do projeto.