我已经自定义了托管规则-required-tags,并修改了lambda函数以扩展多达9个标签及更多。
代码似乎可以正常工作,并且给了我预期的结果。
此规则检查“规则参数”中给定的标签。空的和部分标记的不符合要求;完全标记的标签是合规的。
我面临的问题是,当创建一个新的EC2实例,并且具有配置更改的自定义规则触发器为我提供了“没有标签”,即使存在“名称”标签也是如此。
当我第二次重新评估时,获得了预期的结果(缺少名称标签的其他标签)
情况像这样
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左右发布
在12:41 PM左右自动触发(配置更改)后,Cloudwatch记录
{
'current_tags': [],
'compliance_type': 'NON_COMPLIANT',
'annotation': 'Name, Customer, Environment, etc not present'
}
在12:43 PM左右进行手动重新评估后,Cloudwatch日志
{
'current_tags': [{u'value': u'instance_name', u'key': u'Name'}],
'compliance_type': 'NON_COMPLIANT',
'annotation': 'Customer, Environment, etc not present'
}
在实例创建时传递给lambda函数(触发器:配置更改)的事件有效负载具有current_tags: empty
(即使在实例创建期间添加了名称标签;该名称也存在)。有没有一种方法可以找出将标签添加到实例的方式和时间。或者可以延迟触发(不是周期性触发)