Amazon cloudformation CDK/Cloudformation中资源的逻辑Id中的哈希
每当我从CDK生成cloudformation模板时,我看到在逻辑ID中,它添加了某种散列。那散列是什么意思?例如 Test4FCEEF4AAmazon 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获取并返回十六进制值。因此,您看到
这个散列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)散列。希望这能为将来节省一些时间。