CDK/Cloudformation 中资源的逻辑 ID 中的哈希值

Hash in the Logical Id of the resources in CDK/Cloudformation

每当我从 CDK 生成 cloudformation 模板时,我都会在逻辑 ID 中看到它添加了某种哈希。这个哈希是什么意思?例如。

Test4FCEEF4A

这个哈希 4FCEEF4A 是如何生成的?

资源的逻辑 ID 是使用 allocateLogicalId 方法设置的,您可以在 here. It calls the makeUniqueId method which you can find here 中找到该方法。在makeUniqueId方法中,它创建了逻辑ID的hash组件和逻辑ID的human可读组件。它使用 crypto 库使用 path 创建 md5 哈希,它从 CfnElement 的节点 ID 和 returns 十六进制值中获取。所以你看到的Hash 4FCEEF4A就是在makeUniqueId方法中创建的hash组件。