Журналы приложений — это важная часть информации, которая дает важную информацию о внутренней работе приложения. Сюда входит ценная информация, такая как события, ошибки и взаимодействия с пользователем, которая поможет разработчику приложения или инженеру поддержки операций в отладке и обеспечении поддержки. Однако, когда эти журналы представлены на языках, отличных от английского, это создает серьезные препятствия для разработчиков, которые не могут прочитать содержимое, и затрудняет способность группы поддержки оперативно выявлять и устранять проблемы.
В этом посте мы исследуем решение, позволяющее преодолеть языковые барьеры с помощью Amazon Translate, полностью управляемого сервиса нейронного машинного перевода для перевода текста на английский и обратно на широкий спектр поддерживаемых языков. Это решение дополнит ваши существующие рабочие процессы ведения журналов, автоматически переводя все журналы ваших приложений в Amazon CloudWatch в режиме реального времени, что может облегчить проблемы, связанные с журналами приложений, написанными не на английском языке.
Обзор решения
Это решение показывает, как можно использовать три ключевых сервиса для автоматизации перевода журналов приложений на основе событий:
- CloudWatch Logs используется для мониторинга, хранения и доступа к файлам журналов, созданным из различных источников, таких как сервисы AWS и ваши приложения.
- Amazon Translate используется для перевода текста на английский язык и с него.
- AWS Lambda — это вычислительный сервис, который позволяет запускать коды для получения журналов приложений и переводить их с помощью Amazon Translate SDK.
На следующей диаграмме показана архитектура решения.
Рабочий процесс состоит из следующих шагов:
- Пользовательское или стороннее приложение размещается на экземпляре Amazon Elastic Compute Cloud (Amazon EC2), а созданные журналы приложения загружаются в CloudWatch Logs через агент CloudWatch Logs.
- Каждая запись журнала, записанная в журналы CloudWatch, запускает функцию Lambda, подписанную на группу журналов CloudWatch.
- Функция обрабатывает содержимое записи журнала и использует Amazon Translate SDK. перевести_текст для перевода содержимого журнала.
- Переведенное содержимое журнала возвращается в функцию.
- Функция записывает переведенное содержимое журнала обратно в CloudWatch Logs в другую группу журналов.
Весь процесс происходит автоматически в режиме реального времени, и ваши разработчики смогут получить доступ к переведенным журналам приложений из групп журналов CloudWatch без каких-либо изменений в том, как ваше существующее приложение записывает журналы в CloudWatch.
Предварительные условия
Чтобы следовать инструкциям этого решения, вам понадобится учетная запись AWS с пользователем AWS Identity and Access Management (IAM), у которого есть разрешения на использование AWS CloudFormation, Amazon Translate, CloudWatch, Lambda и IAM.
Развертывание решения
Для начала запустите следующий шаблон CloudFormation, чтобы создать функцию Lambda, две группы журналов CloudWatch и роль IAM. Перейдите к развертыванию с настройками по умолчанию. Создание этого шаблона занимает около 1 минуты.
После успешного создания стека вы можете просмотреть функцию Lambda, перейдя в консоль Lambda и найдя функцию translate-application-logs
.
Вы можете заметить, что к функции добавлен триггер CloudWatch Logs.
Вы можете просмотреть подробную информацию о конфигурации триггера, перейдя к Конфигурация вкладка и выбор Триггеры в панели навигации.
Вы можете подтвердить, что триггер настроен на подписку на события журнала из группы журналов. /applicationlogs
. Сюда будут записываться журналы приложений, написанных не на английском языке.
Далее выберите Переменные среды в панели навигации.
Здесь представлены две переменные среды:
- исходный язык – Исходный язык журнала приложения (например, да для японцев)
- язык перевода – Целевой язык для перевода журнала приложения (например, ru для английского)
Список поддерживаемых языков см. в разделе Поддерживаемые языки и коды языков.
Далее перейдите в Код и просмотрите логику функции:
Проверьте решение
Наконец, чтобы протестировать решение, вы можете создать сообщение журнала через консоль CloudWatch и выбрать созданную группу журналов и поток журналов.
После создания сообщений журнала вы сможете сразу увидеть их переведенными.
Очистить
Чтобы очистить ресурсы, созданные в этом посте, удалите стек CloudFormation через консоль CloudFormation.
Заключение
В этом посте рассматривается проблема, с которой сталкиваются разработчики и группы поддержки, когда журналы приложений представлены на языках, отличных от английского, что затрудняет отладку и предоставление поддержки. Предлагаемое решение использует Amazon Translate для автоматического перевода журналов не на английском языке в CloudWatch и предоставляет пошаговые инструкции по развертыванию решения в вашей среде. Благодаря этой реализации разработчики теперь могут беспрепятственно преодолевать языковой барьер, давая им возможность быстро и эффективно решать проблемы.
Попробуйте эту реализацию и сообщите нам свои мысли в комментариях.
Об авторе
Ксан Хуанг — старший архитектор решений в AWS, живет в Сингапуре. Он сотрудничает с крупными финансовыми учреждениями над проектированием и созданием безопасных, масштабируемых и высокодоступных облачных решений. Вне работы Ксан проводит большую часть своего свободного времени со своей семьей и документирует путь взросления своей дочери.