Todos os produtos
Search
Central de documentação

Simple Log Service:Crie uma função personalizada

Última atualização: Jul 03, 2026

Se os modelos de funções integrados do Log Service não atenderem às suas necessidades, desenvolva uma função personalizada para o Function Compute consumir dados de log.

Evento da função

Um evento de função é uma string serializada em JSON que contém os parâmetros de execução. Para obter mais informações, consulte Usar o Function Compute para consumir dados de log.

  • Parâmetros

    Parâmetro

    Descrição

    jobName

    Nome do trabalho de extração, transformação e carga (ETL) no Log Service. Cada trabalho ETL corresponde a um gatilho do Function Compute.

    taskId

    Identificador exclusivo de uma invocação de função no trabalho ETL.

    cursorTime

    Timestamp UNIX da última entrada de log recebida durante a invocação da função.

    source

    Intervalo de dados da invocação atual da função. O Log Service gera esse valor regularmente para cada invocação.

    • endpoint: endpoint da região do projeto. Endpoints.

    • projectName: nome do projeto.

    • logstoreName: nome do Logstore.

    • shardId: ID de um shard no Logstore.

    • beginCursor: posição inicial para consumo de dados no shard.

    • endCursor: posição final para consumo de dados no shard.

      Nota

      O intervalo de consumo é fechado à esquerda e aberto à direita, no formato [beginCursor,endCursor).

    parameter

    Valor de Function Configuration especificado na criação do gatilho. A função ETL personalizada analisa esse objeto JSON em tempo de execução. Consulte Gatilhos do Simple Log Service.

  • Exemplo

    {
        "source": {
            "endpoint": "http://cn-shanghai-intranet.log.aliyuncs.com", 
            "projectName": "fc-****************", 
            "logstoreName": "demo", 
            "shardId": 0, 
            "beginCursor": "MTUwNTM5MDI3NTY1ODcwNzU2Ng==", 
            "endCursor": "MTUwNTM5MDI3NTY1ODcwNzU2OA=="
        }, 
        "parameter": {
            ...
        }, 
        "jobName": "fedad35f51a2a97b466da57fd71f315f539d2234", 
        "taskId": "9bc06c96-e364-4f41-85eb-b6e579214ae4",
        "cursorTime": 1511429883
    }

    Para depurar uma função personalizada, chame a operação GetCursor para obter cursores e construa um evento no formato anterior para testar a função.

Desenvolvimento da função

O Log Service fornece SDKs para Java, Python, Node.js e outras linguagens para desenvolvimento de funções personalizadas. Referência de SDK.

O exemplo a seguir usa JRE 8 para demonstrar o desenvolvimento de funções ETL. Guia de programação Java para Function Compute.

  • Modelo de função Java

    O Log Service oferece um modelo de função personalizada baseado em JRE 8 como ponto de partida para sua lógica personalizada.

    Recursos integrados:

    • Analisa os campos source, taskId e jobName dos eventos.

    • Usa o Log Service SDK for Java para recuperar dados com base no parâmetro source e chama processData para processá-los.

    Personalizações necessárias:

    • Analise o campo parameter dos eventos usando o arquivo UserDefinedFunctionParameter.java.

    • Defina a lógica de negócio personalizada no método processData do arquivo UserDefinedFunction.java.

    • Renomeie UserDefinedFunction para um nome descritivo que identifique sua função ETL.

  • Método processData

    O método processData gerencia o consumo, a transformação e a entrega de dados. Por exemplo, LogstoreReplication.java lê dados de um Logstore e os grava em outro.

    Nota
    • processData retorna true em caso de sucesso ou false em caso de falha. Se retornar false, a função ETL continuará em execução, o Log Service considerará a tarefa bem-sucedida e ignorará os dados de exceção.

    • Se um erro fatal ou exceção de lógica acionar throw Exception, a função ETL será interrompida. O Log Service marcará a função como falha e a reinvocará com base na regra de nova tentativa do trabalho ETL.

    • Para shards de alto throughput, aloque memória suficiente para evitar erros de falta de memória (OOM).

    • Em funções demoradas ou shards de alto throughput, defina um intervalo de gatilho curto e um período de timeout longo.

    • Conceda as permissões necessárias ao Function Compute. Por exemplo, conceda permissão de gravação no OSS se a função gravar dados nesse serviço.

Logs de ETL

  • Logs de agendamento de ETL

    Os logs de agendamento de ETL registram a hora de início, a hora de término, o status de sucesso e as informações de retorno de cada tarefa ETL. Erros geram entradas de log e disparam alertas por e-mail ou SMS para o administrador do sistema. Ao criar um gatilho, especifique um Logstore para os logs de gatilho e ative índices. Consulte Criar índices.

    Use a função outputStream no JRE 8 para recuperar resultados de execução. O modelo de função gera uma string serializada em JSON registrada no log de agendamento para consulta e análise.

  • Logs de processamento de ETL

    Os logs de processamento de ETL registram informações essenciais e erros de cada etapa, incluindo hora de início, hora de término, status de inicialização e detalhes de erros. Use esses logs para monitorar e solucionar problemas nas funções ETL.

    Registre logs de processamento com o método context.getLogger(). Os logs são armazenados em um Logstore dentro de um projeto especificado. Recomendamos ativar a indexação para esse Logstore.