Inteligência de dados generativa

Desbloqueando barreiras linguísticas: traduza logs de aplicativos com o Amazon Translate para obter suporte contínuo | Amazon Web Services

Data:

Os logs de aplicativos são informações essenciais que fornecem insights cruciais sobre o funcionamento interno de um aplicativo. Isso inclui informações valiosas, como eventos, erros e interações do usuário, que ajudariam um desenvolvedor de aplicativos ou um engenheiro de suporte operacional a depurar e fornecer suporte. No entanto, quando esses logs são apresentados em idiomas diferentes do inglês, isso cria um obstáculo significativo para os desenvolvedores que não conseguem ler o conteúdo e prejudica a capacidade da equipe de suporte de identificar e resolver problemas prontamente.

Nesta postagem, exploramos uma solução sobre como você pode desbloquear barreiras linguísticas usando Amazon Tradutor, um serviço de tradução automática neural totalmente gerenciado para traduzir textos de e para o inglês em um ampla variedade de idiomas suportados. A solução complementará seus fluxos de trabalho de registro existentes, traduzindo automaticamente todos os registros de seus aplicativos Amazon CloudWatch em tempo real, o que pode aliviar os desafios apresentados por logs de aplicativos em idiomas diferentes do inglês.

Visão geral da solução

Esta solução mostra como você pode usar três serviços principais para automatizar a tradução dos logs do seu aplicativo de maneira orientada a eventos:

  • CloudWatch Logs é usado para monitorar, armazenar e acessar seus arquivos de log gerados a partir de várias fontes, como serviços AWS e seus aplicativos
  • Amazon Translate é usado para realizar a tradução de texto de e para o inglês
  • AWS Lambda é um serviço de computação que permite executar códigos para recuperar logs de aplicativos e traduzi-los por meio do uso do SDK do Amazon Translate

O diagrama a seguir ilustra a arquitetura da solução.

O fluxo de trabalho consiste nas seguintes etapas:

  1. Um aplicativo personalizado ou de terceiros está hospedado em um Amazon Elastic Compute Nuvem (Amazon EC2) e os logs de aplicativos gerados são carregados no CloudWatch Logs por meio do Agente do CloudWatch Logs.
  2. Cada entrada de log gravada no CloudWatch Logs aciona a função Lambda inscrita no grupo de logs do CloudWatch.
  3. A função processa o conteúdo da entrada de log e usa o SDK do Amazon Translate traduzir_texto para traduzir o conteúdo do log.
  4. O conteúdo do log traduzido é retornado para a função.
  5. A função grava o conteúdo do log traduzido de volta no CloudWatch Logs em um grupo de logs diferente.

Todo o processo acontece automaticamente em tempo real, e seus desenvolvedores poderão acessar os logs de aplicativos traduzidos dos grupos de log do CloudWatch sem nenhuma alteração na forma como seu aplicativo existente grava logs no CloudWatch.

Pré-requisitos

Para seguir as instruções desta solução, você precisa de um Conta da AWS com um Gerenciamento de acesso e identidade da AWS (IAM) usuário que tem permissão para Formação da Nuvem AWS, Amazon Translate, CloudWatch, Lambda e IAM.

Implante a solução

Para começar, inicie o seguinte Modelo CloudFormation para criar uma função Lambda, dois grupos de log do CloudWatch e uma função IAM. Prossiga com a implantação com as configurações padrão. Este modelo leva cerca de 1 minuto para ser concluído.

Depois que a pilha for criada com sucesso, você poderá revisar a função do Lambda navegando até o console do Lambda e localizando a função translate-application-logs.

Você pode observar que há um gatilho do CloudWatch Logs adicionado à função.

Você pode visualizar os detalhes da configuração do gatilho navegando até o Configuração guia e escolhendo gatilhos no painel de navegação.

Você pode confirmar se o gatilho foi configurado para assinar eventos de log do grupo de logs /applicationlogs. É aqui que os logs do seu aplicativo que não seja em inglês serão gravados.

Em seguida, escolha Variáveis ​​ambientais no painel de navegação.

Duas variáveis ​​de ambiente são fornecidas aqui:

  • idioma_fonte – O idioma original em que o log do aplicativo está (por exemplo, ja para japonês)
  • idioma_alvo – O idioma de destino para o qual traduzir o log do aplicativo (por exemplo, en Para inglês)

Para obter uma lista de idiomas suportados, consulte Idiomas e códigos de idioma suportados.

Em seguida, vá para o Code guia e revise a lógica da função:

import json, boto3, gzip, base64, os translate = boto3.client(service_name='translate', region_name=os.environ['AWS_REGION'], use_ssl=True)
logs = boto3.client('logs') def lambda_handler(event, context): # retrieve log messages encoded_zipped_data = event['awslogs']['data'] zipped_data = base64.b64decode(encoded_zipped_data) data = gzip.decompress(zipped_data) json_log = json.loads(data) logGroup = json_log['logGroup']+'-'+os.environ['target_language'] logStream = json_log['logStream'] # check if log group exists, create if not dlg = logs.describe_log_groups(logGroupNamePrefix=logGroup) if len(dlg['logGroups']) == 0: logs.create_log_group(logGroupName=logGroup) # check if log stream exists, create if not dls = logs.describe_log_streams(logGroupName=logGroup, logStreamNamePrefix=logStream) if len(dls['logStreams']) == 0: logs.create_log_stream(logGroupName=logGroup, logStreamName=logStream) # translate log event messages from source language to target language for logevent in json_log['logEvents']: logevent['message'] = translate.translate_text(Text=logevent['message'], SourceLanguageCode=os.environ['source_language'], TargetLanguageCode=os.environ['target_language']).get('TranslatedText') del logevent['id'] # write translated log events back to a different log group in CloudWatch logs.put_log_events( logGroupName = logGroup, logStreamName = logStream, logEvents = json_log['logEvents'] ) # return success return { 'statusCode': 200, 'body': 'Translation success!' }

Teste a solução

Por fim, para testar a solução, você pode criar uma mensagem de log por meio do console do CloudWatch e escolher o grupo de logs e o fluxo de logs criados.

Depois de criar suas mensagens de log, você poderá vê-las traduzidas imediatamente.

limpar

Para limpar os recursos criados nesta postagem, exclua a pilha do CloudFormation por meio do console do CloudFormation.

Conclusão

Esta postagem abordou o desafio enfrentado pelos desenvolvedores e equipes de suporte quando os logs de aplicativos são apresentados em idiomas diferentes do inglês, dificultando a depuração e o fornecimento de suporte. A solução proposta usa o Amazon Translate para traduzir automaticamente logs em idiomas diferentes do inglês no CloudWatch e fornece orientação passo a passo sobre como implantar a solução em seu ambiente. Através desta implementação, os desenvolvedores podem agora superar facilmente a barreira linguística, capacitando-os para resolver problemas de forma rápida e eficaz.

Experimente esta implementação e deixe-nos saber sua opinião nos comentários.


Sobre o autor

Xan Huang é arquiteto de soluções sênior da AWS e mora em Cingapura. Ele trabalha com grandes instituições financeiras para projetar e construir soluções seguras, escaláveis ​​e altamente disponíveis na nuvem. Fora do trabalho, Xan passa a maior parte do tempo livre com a família e documentando a jornada de crescimento da filha.

local_img

Inteligência mais recente

local_img