AWS CDK 生成的资源标识符非常糟糕且不可读。有任何解决这个问题的方法吗?

Lai*_*kus 13 amazon-web-services aws-cloudformation aws-cdk

任何使用 AWS CDK 的人都会遭受可怕的资源标识符。

堆栈/嵌套堆栈名称示例:

在此处输入图片说明

或资源名称示例:

在此处输入图片说明

这些标识符读起来很糟糕。是否有任何解决方法来覆盖这些标识符?

我试图设置资源的 ID/名称/标识符/别名。然而,似乎 cdk 或 cloudformation 本身正在生成这些字符串。

谢谢你的建议!

Myk*_*rol 5

所有资源(或者至少对于我所知道的大多数资源)都可以手动命名。

因为AWS::EC2::SecurityGroup那将是Properties -> GroupName

AWS::CloudWatch::Alarm-Properties -> AlarmName

AWS::Lambda::Function- Properties -> FunctionName ETC。

但对于其中一些会导致后果 - 您将无法更新其中一些,因为它们可能需要重新创建(并且名称已被占用)。所以总的来说这不是一个好的做法。显然,如果不更改生成名称的某些参数,您将无法创建完整的环境副本,如下所示:

FunctionName: !Sub '${InstanceName}-your-resourse-constant-name-${Environment}'

如果您不指定命名,它将创建一个如下所示的名称:

${stackName}-${resourceNameInCF}-${someHashCode},但在你的情况下,你似乎有嵌套的堆栈,并且它变得非常不可读,特别是由于名称链接而导致长名称。

  • 感谢你的回答。但是,它并不能解决我的问题。我完全知道您可以控制 lambda 函数等资源名称。但是,据我现在了解,AWS CDK 故意为其 id 实现了这种糟糕的命名方案,以避免可能的名称冲突。 (4认同)