本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理 AWS Config 自定义 Lambda 规则的已删除资源
报告已删除资源的规则应返回 NOT_APPLICABLE
的评估结果,以避免不必要的规则评估。
删除资源时,AWS Config 会创建一个 configurationItemStatus
为 ResourceDeleted
的 configurationItem
。您可以使用此元数据检查规则是否报告了已删除的资源。有关配置项的更多信息,请参阅概念 | 配置项。
包括以下代码段以检查是否有已删除的资源,如果报告了已删除的资源,则将 AWS Config 自定义 Lambda 规则的评估结果设置为 NOT_APPLICABLE
:
- Custom Lambda Rules (Node.js)
-
// Check whether the resource has been deleted. If the resource was deleted, then the evaluation returns not applicable.
function isApplicable(configurationItem, event) {
checkDefined(configurationItem, 'configurationItem');
checkDefined(event, 'event');
const status = configurationItem.configurationItemStatus;
const eventLeftScope = event.eventLeftScope;
return (status === 'OK' || status === 'ResourceDiscovered') && eventLeftScope === false;
}
- Custom Lambda Rules (Python)
-
# Check whether the resource has been deleted. If the resource was deleted, then the evaluation returns not applicable.
def is_applicable(configurationItem, event):
try:
check_defined(configurationItem, 'configurationItem')
check_defined(event, 'event')
except:
return True
status = configurationItem['configurationItemStatus']
eventLeftScope = event['eventLeftScope']
if status == 'ResourceDeleted':
print("Resource Deleted, setting Compliance Status to NOT_APPLICABLE.")
return (status == 'OK' or status == 'ResourceDiscovered') and not eventLeftScope
默认情况下,AWS Config 托管规则和 AWS Config 自定义策略规则会处理此行为。
如果您将 Python 和 AWS Config 开发工具包 (RDK) 与 AWS Config 开发工具包库 (RDKlib) 结合使用来创建 AWS Config 自定义 Lambd 规则,则导入的评估程序类将检查此行为。有关如何使用 RDK 和 RDKlib 编写规则的信息,请参阅使用 RDK 和 RDKlib 编写规则。