Todos os produtos
Search
Central de documentação

Function Compute:Handlers

Última atualização: Jun 29, 2026

Use handlers PHP para responder a eventos e executar sua lógica de negócios. Este tópico descreve os conceitos, a estrutura e exemplos de handlers PHP.

O que é um handler

O handler de uma função do FC é o método no código da função que processa as requisições. Quando sua função do FC é invocada, o Function Compute executa o handler especificado. Configure o handler no console do Function Compute definindo o parâmetro Handler.

Para uma função PHP no FC, o handler deve estar no formato filename.methodname. Por exemplo, se o arquivo for nomeado como main.php e o método como handler, o handler será main.handler.

Para obter mais informações sobre como definir funções do FC, consulte Criar uma função acionada por evento.

As configurações de handlers devem obedecer às especificações de configuração do Function Compute. Essas especificações variam conforme o tipo de handler.

Assinatura do handler

O código a seguir define uma assinatura simples de handler.

<?php

function handler($event, $context) {
  return 'hello world';
}

Os parâmetros são descritos abaixo:

  • handler: Nome do método. Corresponde ao Handler configurado no console do Function Compute. Por exemplo, se o Handler de uma função do FC estiver definido como index.handler, o Function Compute carrega a função handler definida em index.php e inicia a execução a partir da função handler.

  • $event: Parâmetro transmitido durante a chamada da função. Seu tipo de dado é string. Uma função PHP utiliza diretamente o parâmetro event especificado sem pré-processamento. Analise o event na função conforme necessário. Por exemplo, se os dados de entrada forem uma string JSON, converta-a para um Array.

  • $context: Contém informações de tempo de execução sobre a função, como o ID da requisição e credenciais temporárias. Utilize essas informações no seu código.

Nota

Para acessar funções usando gatilhos HTTP ou nomes de domínio personalizados, obtenha a struct da requisição antes de definir as respostas HTTP. Para obter mais informações, consulte Usar um gatilho HTTP para invocar uma função.

Exemplo 1: Analisar parâmetros formatados em JSON

Sample Code

O Function Compute transmite parâmetros formatados em JSON como uma string bruta, que deve ser analisada no código. O código de exemplo a seguir demonstra como analisar um evento formatado em JSON.

<?php

function handler($event, $context) {
  $v = json_decode($event, true);
  var_dump($v['key1']);
  var_dump($v['key2']);
  var_dump($v['key3']);
  return $v;
}

Pré-requisitos

Crie uma função que utilize o runtime PHP. Para obter mais informações, consulte Criar uma função acionada por evento.

Procedimento

  1. Faça login no console do Function Compute. No painel de navegação à esquerda, escolha Function Management > Functions.

  2. Na barra de navegação superior, selecione uma região. Na página Functions, clique na função desejada.

  3. Na página de detalhes da função, clique na aba Code, insira o código de exemplo no editor de código e clique em Deploy.

    Nota

    No código de exemplo, o handler é o método handler em index.php. Caso o handler da sua função tenha uma configuração diferente, atualize os nomes do arquivo e do método para corresponder à sua configuração.

  4. Na aba Code, clique no ícone down à direita de Test Function, selecione Configure Test Parameters na lista suspensa, insira os seguintes parâmetros de teste de exemplo e clique em OK.

    {
      "key1": "value1",
      "key2": "value2",
      "key3": {
        "v1": true,
        "v2": "bye",
        "v3": 1234
      }
    }
  5. Clique em Test Function.

    Após a execução da função, ela retorna o conteúdo formatado em JSON, e os valores de key1, key2 e key3 são impressos nos logs.

Exemplo 2: Acessar recursos do OSS com segurança

Sample Code

Utilize credenciais temporárias do Function Compute para acessar o Object Storage Service (OSS). O código a seguir mostra um exemplo.

<?php

use OSS\OssClient;
use OSS\Core\OssException;

function handler($event, $context) {
    /*
      An AccessKey pair of an Alibaba Cloud account grants full permissions for all API operations. We recommend that you use a RAM user for API calls and routine maintenance.
      To mitigate the risk of AccessKey leaks, we recommend that you do not hard-code the AccessKey ID and AccessKey Secret in your project code.
      This example shows how to obtain credentials from the context.
    */
    $creds = $context["credentials"];
    $accessKeyId = $creds["accessKeyId"];
    $accessKeySecret = $creds["accessKeySecret"];
    $securityToken = $creds["securityToken"];
    $endpoint = "https://oss-cn-hangzhou-internal.aliyuncs.com";
    $bucket= "randombucket";
    $object = "exampledir/index.php";
    $filePath = "/code/index.php";

    try{
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false, $securityToken);
        $ossClient->uploadFile($bucket, $object, $filePath);
    } catch(OssException $e) {
        printf(__FUNCTION__ . ": FAILED\n");
        printf($e->getMessage() . "\n");
        return $e->getMessage();
    }
    return 'hello world';
}

O código de exemplo é explicado da seguinte forma:

  • $creds = $context["credentials"]: Obtém credenciais temporárias do parâmetro $context. Essa prática evita a codificação fixa de informações sensíveis, como credenciais, no código.

  • O código anterior faz upload do arquivo /code/index.php para o diretório exampledir no bucket randombucket no OSS.

    Nota

    Substitua endpoint, bucket, object e filePath pelos valores reais dos seus recursos.

Pré-requisitos

Procedimento

  1. Faça login no console do Function Compute. No painel de navegação à esquerda, escolha Function Management > Functions.

  2. Na barra de navegação superior, selecione uma região. Na página Functions, clique na função desejada.

  3. Na página de detalhes da função, clique na aba Code, insira o código de exemplo no editor de código e clique em Deploy.

    Nota

    No código de exemplo, o handler é o método handler em index.php. Caso o handler da sua função tenha uma configuração diferente, atualize os nomes do arquivo e do método para corresponder à sua configuração.

  4. Clique em Test Function.

    Após a execução, a função retorna hello world.

Exemplo 3: Chamar comandos externos

Seu programa PHP também pode criar um processo com fork para chamar comandos externos.

Caso sua função PHP precise usar ferramentas escritas em outras linguagens, como scripts shell ou executáveis compilados em C++ ou Go, empacote as ferramentas junto com o código da função e faça o upload de tudo. Em seguida, chame essas ferramentas executando comandos externos a partir da função. Métodos comuns para chamar comandos externos incluem exec, system e shell_exec.

O código de exemplo a seguir executa o comando Linux ls -halt para listar o conteúdo detalhado do diretório /code.

<?php

function handler($event, $context) {
  return shell_exec("ls -halt /code");
}        

Exemplo 4: Invocar uma função usando um gatilho HTTP

Código de exemplo

<?php

function handler($event, $context) {
  $logger = $GLOBALS['fcLogger'];
  $logger->info('hello world');
  $logger->info('receive event: ' . $event);
  
  try {
    $evt = json_decode($event, true);
    if (is_null($evt['body'])) {
      return "The request did not come from an HTTP Trigger, event: " . $event;
    }
    $body = $evt['body'];
    if ($evt['isBase64Encoded']) {
      $body = base64_decode($evt['body']);
    }
    return array(
      "statusCode" => 200,
      'headers' => array("Content-Type" => "text/plain"),
      'isBase64Encoded' => false,
      "body" => $body
    );
  } catch (Exception $e) {
      $logger->error("Caught exception: " . $e->getMessage());
      return "The request did not come from an HTTP Trigger, event: " . $event;
  }
}

Pré-requisitos

Crie uma função que utilize o runtime PHP e um gatilho HTTP. Para obter mais informações, consulte Criar uma função acionada por evento e Configurar um gatilho HTTP.

Procedimento

  1. Faça login no console do Function Compute. No painel de navegação à esquerda, escolha Function Management > Functions.

  2. Na barra de navegação superior, selecione uma região. Na página Functions, clique na função desejada.

  3. Na página de detalhes da função, clique na aba Trigger para localizar o endpoint público do gatilho HTTP.

  4. Execute o seguinte comando cURL para invocar a função.

    curl -i "https://http-trigger-demo.cn-shanghai.fcapp.run" -d 'Hello FC!'
    Importante
    • Se o Authentication Method do gatilho HTTP estiver definido como No Authentication, use diretamente o Postman ou cURL para chamar a função. Para obter mais informações, consulte Etapas.

    • Caso o Authentication Method do gatilho HTTP seja Signature Authentication, JWT Authentication ou Bearer Authentication, utilize o método de autenticação correspondente para invocar a função. Para obter mais informações, consulte Autenticação e autorização.

Análise de erros

Este código de exemplo suporta invocações usando um gatilho HTTP ou um nome de domínio personalizado. Se você testar a função no console com um evento que não corresponda ao formato de requisição do gatilho HTTP, ocorrerá um erro.

Por exemplo, se você invocar a função no console, definir o parâmetro de requisição como "Hello, FC!" e clicar em Test Function, a função retornará a seguinte resposta:

The request did not come from an HTTP Trigger, event: Hello FC!