Todos os produtos
Search
Central de documentação

Function Compute:Implante um pacote de código

Última atualização: Sep 09, 2026

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.

Prepare o código

Configure um diretório de código local com o handler da função antes da implantação.

  1. Crie um diretório chamado mycode para o código da função.

    • Linux e macOS: Execute mkdir -p /tmp/mycode.

    • Windows: Crie uma pasta chamada mycode.

  2. No diretório mycode, crie o arquivo index.php com 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: Use 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:

Instale as dependências e implante

  1. No diretório mycode, crie o arquivo composer.json:

    {
      "require": {
        "nette/utils": "v3.2.5"
      }
    }
  2. No diretório mycode, execute composer install para instalar as dependências. Após a conclusão do comando, o Composer gera um arquivo composer.lock e um diretório vendor dentro de mycode. As dependências baixadas ficam armazenadas em vendor.

  3. Empacote todos os arquivos de mycode em um arquivo ZIP.

    • Linux e macOS: Acesse o diretório mycode e 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.php está no diretório raiz do pacote.
  4. 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. Alternativamente, envie um arquivo ZIP durante a criação da função. Consulte Create an event function.

  5. Na aba Code da página de detalhes da função, clique em Test Function para verificar a implantação.

Método 2: Use 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 etapas a seguir:

Instale as dependências e implante

  1. No diretório mycode, crie o arquivo s.yaml com 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
  2. No diretório mycode, crie o arquivo composer.json:

    {
        "require": {
            "nette/utils": "^3.0"
        }
    }
  3. Execute o comando a seguir para instalar as dependências em um container Docker compatível com o ambiente de execução do Function Compute:

    sudo s build --use-docker

    Após a conclusão do comando, o Serverless Devs instala as dependências e o código no diretório ./vendor.

  4. Execute o comando a seguir para implantar a função:

    sudo s deploy

    Após a conclusão do comando, a função estará implantada no Function Compute.

Próximos passos

Para gerenciar dependências sem incluí-las em cada pacote de implantação, use camadas do Function Compute. Consulte Create a custom layer.