我正在寻找一种方法来确定AWS Lambda已随AWS CDK一起配置。是否有标签或其他某种类型的元数据来识别? SAM提供标签lambda_createdBy:SAM
。我可以自己添加一个标签,但是对于已经配置了成千上万个Lambda的组织而言,要识别该标签,需要更改所有标签的代码。
答案 0 :(得分:0)
AFAIK CDK没有添加任何特殊的CDK特定标签。我相信某些资源会使用CF模板自动标记,尽管它们是其中的一部分。
您可以编写CDK Aspect,而不是一味地修改代码,而是将标签添加到应用程序中的所有lambda函数中。
类似的东西:
class FunctionTagger implements IAspect {
public visit(node: IConstruct): void {
if (node instanceof lambda.Function) {
Tags.add('myTag', 'myValue', node)
}
}
}
// Apply to the stack
stack.node.applyAspect(new FunctionTagger());
答案 1 :(得分:0)
CDK部署的Lambda函数将通过密钥aws:cloudformation:stack-name
传播标签。
然后,您可以检查资源名为CDKMetadata
的堆栈。例如,
aws cloudformation describe-stack-resource --stack-name my-stack-name --logical-resource-id CDKMetadata