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

05.10.2022

🤖✍️⚙️ Сьогодні довелося записувати в AWS Parameter Store цілу купу однотипних сертифікатів. По два сертифікати на чотири сервіси та ще й у трьох оточеннях… виходить 24 параметри. А ще на кожний параметр треба задати опис та шифрування. А ще вони в різних регіонах…

Руцями робити ніяк не хочеться, та й не довіряю я собі. До того ж вебінтерфейс AWS на редагування особливо жахливий і накладає додатковий ризик помилки. Які ще є варіанти? Насправді багато.

Можна зробити конфігурацію Terraform на один раз. Створити всі параметри, перевірити, що все працює, а потім просто викинути файл стану (та й саму конфігурацію). В Terraform весь звʼязок “з реальністю” міститься саме в файлі стану, тому ніяких “хвостів” потім не залишиться, тільки самі параметри. Тут зручно що можна використати цикли Terraform, щоб спростити собі роботу.

Можна написати скрипт, що за допомогою AWS API зробить все потрібне. На один раз це трохи складно. Але в нас навіть вже є такий скрипт, що завантажує параметри з YAML-файлу. Скрипт доволі багатофункціональний, і я його часто вживаю. Втім, він не вміє задавати описи параметрів.

І ще один, напівавтоматичний гібридний спосіб — взяти AWS CLI. Взагалі, якщо працюєш з AWS, то його завжди треба мати під рукою, бо багато чого вміє, від завантаження з/на S3, до усіляких деплоїв та взагалі будь-чого, що буває в Амазоні.

Так от, створив шелл-скрипта, у якому написав один рядок команди aws ssm put-parameter з усіма аргументами — імʼя, значення, опис, регіон. А потім його накопіпастив і відредагував те, що змінюється (таке легко робити мультикурсорами у VSCode.) І все, запустив скрипт — отримав результат. Ідеальний баланс автоматизації та ручної роботи для одноразової події.