Amazon cloudformation CDK/Cloudformation中资源的逻辑Id中的哈希

Amazon cloudformation CDK/Cloudformation中资源的逻辑Id中的哈希,amazon-cloudformation,aws-cdk,Amazon Cloudformation,Aws Cdk,每当我从CDK生成cloudformation模板时,我看到在逻辑ID中,它添加了某种散列。那散列是什么意思?例如 Test4FCEEF4A 这个散列4FCEEF4A是如何生成的?资源的逻辑ID是使用您可以找到的分配逻辑ID方法设置的。它调用您可以找到的makeUniqueId方法。在makeUniqueId方法中,它创建逻辑ID的hash组件和逻辑ID的human可读组件。它使用crypto库使用path创建md5哈希,该哈希从CFNEElement节点的ID获取并返回十六进制值。因此,您看到

每当我从CDK生成cloudformation模板时,我看到在逻辑ID中,它添加了某种散列。那散列是什么意思?例如

Test4FCEEF4A


这个散列4FCEEF4A是如何生成的?

资源的逻辑ID是使用您可以找到的
分配逻辑ID
方法设置的。它调用您可以找到的
makeUniqueId
方法。在
makeUniqueId
方法中,它创建逻辑ID的
hash
组件和逻辑ID的
human
可读组件。它使用
crypto
库使用
path
创建md5哈希,该哈希从CFNEElement节点的ID获取并返回十六进制值。因此,您看到的Hash 4FCEEF4A是在
makeUniqueId
方法中创建的
Hash
组件。

这是物理资源id。只需添加到此答案。MD5哈希后缀可能会有点问题。例如,如果您正在从Terraform迁移到CDK,并且不希望名称必须更改。解决此问题的最佳方法(没有很好的文档)是重写AllocateLogicId方法,并从默认方案创建的名称中去掉最后8个字符(MD5)散列。希望这能为将来节省一些时间。