Todos os produtos
Search
Central de documentação

Simple Log Service:Erros ao obter dados do OSS

Última atualização: Jul 03, 2026

Se uma regra de transformação carregar recursos do Object Storage Service (OSS), poderão ocorrer erros de carregamento ou atualização. Conheça as causas comuns e saiba como solucioná-las.

Após o mecanismo DPI ler os dados do Logstore de origem, ele transforma os eventos de log. Se a regra de transformação carregar recursos externos do OSS, do ApsaraDB RDS ou de outros Logstores, poderão ocorrer erros de carregamento ou atualização de recursos.

Impacto do erro

O campo logging.levelname no log de erros indica o nível de severidade: WARNING ou ERROR.

  • Em erros de nível ERROR, o sistema descarta o evento de log afetado. A saída da transformação não inclui esse evento e o processamento continua com o próximo evento de log, sem tentativas de repetição.

  • Em erros de nível WARNING, como incompatibilidade de regex, o sistema ignora a etapa atual da DSL para aquele evento e avança para a próxima etapa.

Solução de problemas

  • Verifique o campo logging.levelname no log de erros para determinar o nível de severidade.

  • Analise o campo message no log de erros para identificar qual evento de log causou a falha. Para mais informações, consulte Visualizar logs de erros.

  • Consulte o campo reason no log de erros para determinar a causa da falha naquele evento de log.

Com base na causa identificada, adicione lógica ao script de transformação para tratar essas exceções. Utilize funções de controle de fluxo, como e_if e e_switch, para capturar e gerenciar esses erros. O exemplo abaixo mostra um log de erro em que o campo message contém os detalhes do evento de log com falha e o campo reason exibe a causa do erro, integer division or modulo by zero: 07-26 16:21:48 __source__: __tag__:__job_name__: etl-preview-1564110081-604324 __tag__:__schedule_type__: DryRun __topic__: __etl-log-status__ etl_context: { "project": "ali-licheng-test-uk2", "logstore": "source_logstore", "shard_id": "2"} event_id: transorm_data:process:fail extra_info_params: {"src_event": {"__time__": "1563266137", "__topic__": "", "__source__": xxx, "__tag__:__client_ip__": xxx, "__tag__:__receive_time__": "1563774221", "body_bytes_sent": "740", "client_ip": "1.2.3.4", "host": "m.abcd.com", "status": "403"}} logging: {"process": "34", "levelname": "ERROR", "funcName": "_transform_events_to_logstore", "module": "logclient_operator", "threadName": "MainThread", "thread": "139890150307648", "processName": "ForkProcess-1"} message: [ali-licheng-test-uk2/source_logstore/2]transform_data: fail to process event: {"__time__": "1563266137", "__topic__": "", "__source__": xxx, "__tag__:__client_ip__": xxx, "__tag__:__receive_time__": "1563774221", "body_bytes_sent": "740", "client_ip": "1.2.3.4", "host": "m.abcd.com", "status": "403"}, detail=integer division or modulo by zero reason: integer division or modulo by zero

Erros comuns ao obter dados do OSS

Nota

Nos exemplos a seguir, AK_ID é a abreviação de AccessKeyId e AK_KEY é a abreviação de AccessKeySecret.

Caminho ou formato de arquivo incorreto

Um log de erro 404 é gerado porque o diretório data não existe no OSS ou porque o formato do arquivo está incorreto.

  • Exemplo de regra de transformação

    # Assume that the correct directory is test.
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'data/test.txt', format='text', change_detect_interval=20))
    # This format does not exist in the test directory.
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.dat', format='text', change_detect_interval=20))
  • Log de erro

    message:  Exception: {'status': 404, 'x-oss-request-id': '5D49****878', 'details': {'Code': 'NoSuchKey', 'Message': 'The specified key does not exist.', 'RequestId': '5D4***8878', 'HostId': 'lo***g.oss-cn-hangzhou.aliyuncs.com', 'Key': 'oss/test.txt'}}
  • Solução de problemas

    Verifique o evento de log que causou o erro. Se o status na mensagem de erro for 404 e o campo Messages estiver relacionado ao arquivo, confirme primeiro se o caminho do arquivo está correto.

  • Solução

    Altere o parâmetro res_oss_file na orquestração da função file para o caminho correto do arquivo.

    # Assume that the correct directory is test.
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.txt', format='text', change_detect_interval=20))

Erro de decodificação de arquivo

Ocorre um erro durante a decodificação de um arquivo baixado do OSS ou ao utilizar um método de decodificação inexistente.

  • Exemplo de regra de transformação

    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.txt', format='text', change_detect_interval=20, encoding='unicode'))
  • Log de erro

    {
      "reason": "LookupError: unknown encoding: unicode"
    }
  • Solução de problemas

    Inspecione o evento de log que originou o erro. Caso a mensagem seja unknown encoding: unicode, valide se o parâmetro encoding usado na decodificação do arquivo está correto.

  • Solução

    Modifique o valor do parâmetro encoding na orquestração da função res_oss_file para o formato de decodificação adequado.

    # Assume that the correct decoding format is utf8.
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.txt', format='text', change_detect_interval=20,encoding='utf8'))

Erro de endpoint

O Endpoint está incorreto ao usar a função res_oss_file.

O endpoint não existe

  • Exemplo de regra de transformação

    e_set("oss_file",res_oss_file("https://oss-cn-asd.aliyuncs.com", ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), 'your bucket', 'test/test.txt', format='text', change_detect_interval=20))
  • Log de erro

    message:  get_oss_bytes get errors:{'status': -2, 'x-oss-request-id': '', 'details': "RequestError: HTTPSConnectionPool(host='log-etl-staging.oss-cn-asd.aliyuncs.com', port=443)
  • Solução de problemas

    Revise o evento de log de erro. Se a mensagem de erro for -2 e o campo Message indicar um RequestError, verifique se o endpoint existe.

  • Solução

    Atualize o valor do parâmetro endpoint na orquestração da função res_oss_file para um valor válido.

O Endpoint do OSS não corresponde ao nome do bucket

A AccessKey autorizada tem permissão para realizar operações na região de Hangzhou, mas o Endpoint está configurado para a região de Xangai.

  • Exemplo de regra de transformação

    e_set("oss_file",res_oss_file("https://oss-cn-shanghai.aliyuncs.com", ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), 'your bucket', 'test/test.txt', format='text', change_detect_interval=20))
  • Log de erro

    message:  get_oss_bytes get errors:{'status': 403, 'x-oss-request-id': '5D7219353A90A2852B234D14', 'details': {'Code': 'AccessDenied', 'Message': 'The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.', 'RequestId': '5D7**14', 'HostId': 'log-**.oss-cn-shanghai.aliyuncs.com', 'Bucket': 'log-**', 'Endpoint': 'oss-cn-hangzhou.aliyuncs.com'}}
  • Solução de problemas

    Examine o evento de log que gerou o erro. Se a mensagem for 403 e o campo Message mencionar o bucket e o endpoint, confirme se o endpoint e a AccessKey pertencem à mesma região.

  • Solução

    Na orquestração da função res_oss_file, defina o parâmetro encoding com o formato de decodificação correto.

Erro de permissão

AccessKey incorreta

A AccessKey está incorreta ao utilizar a função res_oss_file.

  • Exemplo de regra de transformação

    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), 'your bucket', 'test/test.txt', format='text', change_detect_interval=20))
  • Log de erro

    message: Exception: {'status': 403, 'x-oss-request-id': '5D***BEB6', 'details': {'Code': 'InvalidAccessKeyId', 'Message': 'The OSS Access Key Id you provided does not exist in our records.', 'RequestId': '5D4***BEB6', 'HostId': 'lo***g.oss-cn-hangzhou.aliyuncs.com', 'OSSAccessKeyId': 'LT***Ai'}}
  • Solução de problemas

    Analise o evento de log que provocou o erro. Se a mensagem for 403 e o campo Message estiver relacionado à AccessKey, valide se a AccessKey está correta.

  • Solução

    Corrija as informações da AccessKey na orquestração da função res_oss_file.

Erro de permissão do bucket

Um erro relacionado ao bucket ocorre durante o uso da função res_oss_file.

  • Exemplo de regra de transformação

    e_set("oss_file",res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com',ak_id=os.getenv("SLS_ACCESS_KEY_ID"),
                         ak_key=os.getenv("SLS_ACCESS_KEY_SECRET"),
                         bucket='log', file='test.txt',
                         change_detect_interval=30, encoding='utf8'))
  • Log de erro

    message: Exception: {'status': 403, 'x-oss-request-id': '5D674CE8BE0EBC45166026C5', 'details': {'Code': 'AccessDenied', 'Message': 'You have no right to access this object because of bucket acl.', 'RequestId': '5D4***BEB6', 'HostId': 'log.oss-cn-hangzhou.aliyuncs.com'}}
  • Solução de problemas

    Verifique o evento de log que causou a falha. Se a mensagem de erro for 403 e o campo Message referenciar o bucket, confirme se você possui permissões para operar nesse bucket.

  • Solução

    Ajuste as informações do bucket na orquestração da função res_oss_file.

O bucket não existe

O bucket especificado não existe no OSS.

  • Exemplo de regra de transformação

    e_set("oss_file",res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com',ak_id=os.getenv("SLS_ACCESS_KEY_ID"),
                         ak_key=os.getenv("SLS_ACCESS_KEY_SECRET"),
                         bucket='twiss', file='test.txt',
                         change_detect_interval=30, encoding='utf8'))
  • Log de erro

    message: Exception: {'status': 404, 'x-oss-request-id': '5D75F6E9BB4097C678A381EF', 'details': {'Code': 'NoSuchBucket', 'Message': 'The specified bucket does not exist.', 'RequestId': '5D75F6E9BB4097C678A381EF', 'HostId': 'twiss.oss-cn-hangzhou.aliyuncs.com', 'BucketName': 'twiss'}}
  • Solução de problemas

    Analise o evento de log de erro. Se o código de erro for 403 e o campo Message estiver associado ao bucket, certifique-se de que o bucket existe.

  • Solução

    Retifique as informações do bucket na orquestração da função res_oss_file.

Logs de erro para atualizações agendadas de arquivos

Os logs de erro a seguir aparecem apenas nos registros de log de backend durante atualizações agendadas de arquivos.

  • Este log indica que a primeira tentativa de recuperar o recurso falhou, possivelmente devido a um problema de rede, e uma nova tentativa está sendo preparada.

    {
      "reason":"Failed to pull data from oss for the first time and it is preparing to re-pull ..."
    }
  • O log abaixo sinaliza que o backend executa atualizações em intervalos regulares, mas a nova função de recurso falhou ao recuperar dados e está se preparando para tentar novamente.

    {
      "reason":"get_oss_byte get errors,begin retry ..."
    }
  • A mensagem seguinte mostra que a nova tentativa falhou e outra está sendo preparada. O sistema realiza no máximo três tentativas.

    {
      "reason":"get_oss_byte get errors,refresh_interval ..."
    }