Implante uma função PHP com dependências de terceiros no Function Compute ao empacotar o código e o diretório vendor em um arquivo ZIP. Este guia usa a biblioteca Nette\Utils como exemplo de dependência e aborda dois métodos de implantação: Composer com o console do Function Compute e Serverless Devs.
Preparar o código
Configure um diretório de código local com o handler da função antes de iniciar a implantação.
-
Crie um diretório chamado
mycodepara o código da função.Linux e macOS: Execute
mkdir -p /tmp/mycode.Windows: Crie uma pasta chamada
mycode.
-
No diretório
mycode, crie o arquivoindex.phpcom o seguinte conteúdo:<?php require_once __DIR__ . '/vendor/autoload.php'; use Nette\Utils\Arrays; function handler($event, $context) { return Arrays::contains([1, 2, 3], 1); }
Método 1: Usar o Composer
Instale as dependências localmente com o Composer, empacote o código em um arquivo ZIP e envie-o pelo console do Function Compute.
Pré-requisitos
Antes de começar, verifique se você tem:
PHP e Composer instalados, com permissão para executar comandos do Composer. Consulte Composer para obter instruções de instalação.
(Opcional) Uma função PHP criada no console do Function Compute. Consulte Criar uma função de evento.
Instalar dependências e implantar
-
No diretório
mycode, crie o arquivocomposer.json:{ "require": { "nette/utils": "v3.2.5" } } No diretório
mycode, executecomposer installpara instalar as dependências. Após a conclusão do comando, o Composer cria um arquivocomposer.locke um diretóriovendordentro demycode. As dependências baixadas ficam armazenadas emvendor.-
Empacote todos os arquivos de
mycodeem um arquivo ZIP.-
Linux e macOS: Acesse o diretório
mycodee execute:zip code.zip -r ./*Nota: Certifique-se de ter permissões de leitura e gravação no diretório.
Windows: Abra o diretório
mycode, selecione todos os arquivos, clique em com o botão direito e compacte-os em um arquivo ZIP.
Nota: Verifique se o arquivo
index.phpestá no diretório raiz do pacote. -
No console do Function Compute, abra a função que deseja atualizar. No canto superior direito da página de detalhes da função, clique em Upload Code e selecione o arquivo ZIP. Como alternativa, envie um arquivo ZIP ao criar uma função. Consulte Criar uma função de evento.
Na aba Code da página de detalhes da função, clique em Test Function para verificar a implantação.
Método 2: Usar o Serverless Devs
Use o Serverless Devs com Docker para compilar e implantar a função sem gerenciar manualmente o arquivo ZIP.
Pré-requisitos
Antes de começar, certifique-se de ter concluído as seguintes etapas:
Instalar dependências e implantar
-
No diretório
mycode, crie o arquivos.yamlcom o seguinte conteúdo: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: "testphp" description: 'this is a test' runtime: "php7.2" code: ./ handler: index.handler memorySize: 128 timeout: 30 -
No diretório
mycode, crie o arquivocomposer.json:{ "require": { "nette/utils": "^3.0" } } -
Execute o comando a seguir para instalar as dependências em um contêiner Docker compatível com o ambiente de execução do Function Compute:
sudo s build --use-dockerApós a conclusão do comando, o Serverless Devs instala as dependências e o código no diretório
./vendor. -
Execute o comando a seguir para implantar a função:
sudo s deployApós a conclusão do comando, a função estará implantada no Function Compute.
Próximos passos
Para gerenciar dependências sem empacotá-las em cada implantação, use camadas do Function Compute. Consulte Criar uma camada personalizada.