Я настроил управляемое правило - обязательные теги и изменил лямбда-функцию, чтобы расширить до 9 тегов и более.
Кажется, что код работает и дает ожидаемый результат.
Это правило проверяет теги, указанные в «Параметрах правила».Пустые и частично помеченные не соответствуют;полностью помеченные являются совместимыми.
Проблема, с которой я сталкиваюсь, заключается в том, что при создании нового экземпляра EC2 пользовательское правило, запускаемое с изменениями конфигурации, дает мне «нет тегов», даже если присутствует тег «name».1008 * Когда я переоцениваю во второй раз, ожидаемый результат получен (пропущены теги, кроме тега имени)
Условие выглядит следующим образом
if evaluation["compliance_type"] == "NON_COMPLIANT":
print ("NON_COMPLIANT")
if len(evaluation["current_tags"]) > 0:
print ("Non zero tags")
// evaluation report
else:
print ("Zero tags")
// evaluation report
Экземпляр EC2 был запущен около 12: 39 PM
Cloudwatch регистрирует после автоматического запуска (изменения конфигурации) около 12:41
{
'current_tags': [],
'compliance_type': 'NON_COMPLIANT',
'annotation': 'Name, Customer, Environment, etc not present'
}
Cloudwatch регистрирует после ручной повторной оценки около 12:43
{
'current_tags': [{u'value': u'instance_name', u'key': u'Name'}],
'compliance_type': 'NON_COMPLIANT',
'annotation': 'Customer, Environment, etc not present'
}
Полезная нагрузка события, передаваемая лямбда-функции (триггер: изменения конфигурации) во время создания экземпляра, имеет current_tags: empty
(даже если тег имени добавлен во время создания экземпляра; существует).Есть ли способ узнать, как и когда теги будут добавлены в экземпляр.Или триггер может быть отложен (не периодический триггер)