Size: a a a

2019 July 31

РР

Роман Рахманин in terraform_ru
В мапе тебе нужно будет ВСЕ параметры повторять для каждой лямбды
источник

РР

Роман Рахманин in terraform_ru
если они должны быть кастомизируемыми
источник

U

UNCIA in terraform_ru
у меня массив имен лямбд и их ENV
источник

РР

Роман Рахманин in terraform_ru
У меня им еще задаются таймауты, память
источник

РР

Роман Рахманин in terraform_ru
С недавних пор - сетки и роли
источник

U

UNCIA in terraform_ru
т.е. я просто обращаюсь в момент создания к массиву и забираю все что нужно именно для этой лямбды
источник

РР

Роман Рахманин in terraform_ru
И версия ноды
источник

РР

Роман Рахманин in terraform_ru
И все это пришлось бы держать в мапе для каждой лямбды с таким подходом
источник

U

UNCIA in terraform_ru
Да не проблема- посмотри на пример выше - в 12.6-dev я делаю вот так:    each.value.env - тут массив переменных для лямбды. И можною
источник

U

UNCIA in terraform_ru
нет не нужно для каждой держать - можно держать отдельно local.env_common и local.env_special - а потом мержить их :)
источник

U

UNCIA in terraform_ru
долой копипаст! :) Даешь бэкэн программирование инфраструктуры :))
источник

U

UNCIA in terraform_ru
locals {
 lambda_functions = {
   "devices-factory-create" = {
     type = ["rest"]
     env = merge(local.rest_lambda_devices, {
       IPI_FACTORY_DEVICES_CREATED_SNS_TOPIC = "TBD"
       IPI_FACTORY_DEVICES_CREATED_SQS_QUEUE = "TBD"
     })
   }
   "devices-factory-read" = {
     type = ["rest"]
     env = merge(local.rest_lambda_devices, {})
  }
}

Так выглядит описание лямбд.
источник

U

UNCIA in terraform_ru
и потом просто по этому дереву проходишься и для каждой лямбды забираешь все что нужно.
источник

U

UNCIA in terraform_ru
можно JSON для этого дела сделать - тоже вариант - и отдать его разработчикам - пусть там сами этим занимаюстя. А нам остается terraform apply :)))
источник

РР

Роман Рахманин in terraform_ru
> local.env_common и local.env_special - а потом мержить их 🙂
К сожалению, как показала практика, такие решения в поддержке/расширении создают тонну головной боли)
источник

U

UNCIA in terraform_ru
Роман Рахманин
> local.env_common и local.env_special - а потом мержить их 🙂
К сожалению, как показала практика, такие решения в поддержке/расширении создают тонну головной боли)
Нууу.. не знаю. На мой взгляд чем меньше строк в коде для решения задачи - тем лучше:) Главное что бы имена понятные были.
источник

U

UNCIA in terraform_ru
Обфускацию никто читать не любит :))
источник

РР

Роман Рахманин in terraform_ru
Просто когда тебе нужно, например, для тестов внезапно поменять для одной лямбды версию ноды, а другую вынуть из сетки для теста
источник

РР

Роман Рахманин in terraform_ru
Начинается веселье
источник

U

UNCIA in terraform_ru
Не управляю лямбдами на уровне версий - только всей инфраструктурой целиком на уровне git ревизий. Нужна отдельная лямбда - забирай всю ветку с полным окружением.
источник