Приклад отримання даних з AWS Cloudwatch використовуючи Google Script

Cloudwatch Log це сервіс AWS в який додатка або Bash скрипти можуть відправляти дані у вигляді рядків або JSON, потім їх можна знайти або побудувати різні графіки засобами того ж AWS.

Як то раз у мене виникло бажання отримати дані з AWS Cloudwatch Log, обробити їх особливим чином і красиво представити у вигляді графіка. Google Spreadsheet добре справляється з візуалізацією даних, і раніше для подібних завдань я завантажував в нього дані використовуючи Ruby. Але той же ruby скрипт потрібно десь хостити і періодично запускати, а все що він буде робити це запитувати дані з одного API (AWS) і класти їх в інший (Spreadsheet). Добре б, якщо б Spreadsheet сам міг би запитувати дані, і виявляється він може, використовуючи Google Script. Дивно, скільки всього насправді вміють гугл доки.

Google Script дозволяє не тільки створювати користувальницькі функції і макроси використовуючи JavaScript, але і звертатися до зовнішнього API.
У AWS є SDK під JavaScript, так що я не очікував ніяких складнощів, але не тут то було. Виявилося, що цей SDK будучи імпортованим в проект GS не може знайти об'єкт window» і не працює.

Довелося почитати API доки і самому реалізувати обчислення сигнатури для запиту. У цьому немає нічого технічно складного, просто склеювання рядків і обчислення хешу. Тому я не вдаюся в подробиці, а просто уявляю своє рішення на разі, якщо хтось зіткнеться з подібною задачею.


код викладений на GitHub

Що б перевірити його роботу можете:
  • зробити копію документа
  • відкрити «Інструменти» -> «Редактор скриптів»
  • «Файл»->«Властивості проекту»->«Властивості скрипта» додати рядки «access_key_id» і «secret_access_key» і вказати в них значення своїх API ключів
  • Потім відкрити файл «Код.gs» і запустити функцію «dataFromCloudWatch»
  • Результати будуть видні в «Вид»->«Звіт про виконання». Це для простоти. У реальному завданні відповідь легко розпарсити і вставити значення у відповідні комірки електронної таблиці.


Код використовує запит GetMetricStatistics але при необхідності ви можете замовити будь-який інший метод, алгоритм підпису залишиться без змін.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.