Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

30.07.2024

Власні віджети для AWS Cloudwatch Dashboards

В сервісі моніторингу AWS Cloudwatch є можливість вбудувати в дешборд не тільки графік чи журнал, а й абсолютно власний зміст. Віджет фактично є вікном до AWS Lambda-функції.

Хочу сказати, що це зручний спосіб надати обмежений доступ до ресурсів. Взагалі AWS Lambda добре підходять для інкапсуляції доступів. А в разі віджетів в нас ще й авторизація готова, та стилі, та й деякі особливості інтерфейсу: наприклад, можливість обрати діапазон часу, або увімкнути автоматичне оновлення.

Лямбда в віджеті може повертати довільний HTML/CSS… а чого вона не може, так це містити JavaScript. (От, сьогодні дізнався про елемент <summary>, яким можна згорнути блок без всякого JS.) Також віджет може містити внутрішню навігацію, але особливим чином: у вигляді спеціальних посилань на інші AWS Lambda. Оскільки посилання може йти на ту ж саму лямбду (з іншими параметрами), отримуємо можливість зробити маленький вебзастосунок.

Ось тут я стикнувся з проблемою… параметри до функції не зберігаються під час оновлення віджета — він скидається до початкового стану. Тоді знайшов, що хоч параметри не зберігаються, зате функція отримує ‘особливим параметром widgetContext стан форм, якщо такі є на віджеті. Тоді зробив помірно закручений код, де наявні параметри виводяться у <input type="hidden" /> - а якщо явних параметрів немає, тоді навпаки, дивлюся в зміст цього поля.