Todos os produtos
Search
Central de documentação

Function Compute:Implantar um pacote de código

Última atualização: Jun 29, 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.

Preparar o código

Configure um diretório de código local com o handler da função antes de iniciar a 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: 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:

Instalar dependências e implantar

  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 cria 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. Como alternativa, envie um arquivo ZIP ao criar uma função. Consulte Criar uma função de evento.

  5. 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

  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 contêiner 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 empacotá-las em cada implantação, use camadas do Function Compute. Consulte Criar uma camada personalizada.