Amazon web services AWS CDK生成的资源标识符非常糟糕,不可读。有办法解决这个问题吗?

Amazon web services AWS CDK生成的资源标识符非常糟糕,不可读。有办法解决这个问题吗?,amazon-web-services,amazon-cloudformation,aws-cdk,Amazon Web Services,Amazon Cloudformation,Aws Cdk,任何使用过AWS CDK的人都会遭受可怕的资源标识符 堆栈/嵌套堆栈名称的示例: 或资源名称的示例: 这些标识符读起来很糟糕。是否有替代这些标识符的方法 我已尝试设置资源的ID/名称/标识符/别名。然而,cdk或cloudformation本身似乎正在生成这些字符串 谢谢你的建议 所有资源(或者至少对我所知道的大多数资源)都可以手动命名 对于AWS::EC2::SecurityGroup,这将是Properties->GroupName AWS::CloudWatch::Alarm-属性->

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

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

或资源名称的示例:

这些标识符读起来很糟糕。是否有替代这些标识符的方法

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

谢谢你的建议

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

对于
AWS::EC2::SecurityGroup
,这将是
Properties->GroupName

AWS::CloudWatch::Alarm
-
属性->AlarmName

AWS::Lambda::Function
-
Properties->FunctionName
等等

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

FunctionName:!Sub'${InstanceName}-您的资源常量名-${Environment}'

如果不指定命名,将创建如下名称:


${stackName}-${resourceNameInCF}-${someHashCode}
,但在您的情况下,似乎有嵌套的堆栈,它变得非常不可读,特别是对于长名称,因为名称链接。

谢谢您的回答。然而,这并不能解决我的问题。我完全知道,您可以控制诸如lambda函数等资源名称。但是,据我所知,AWS CDK故意为其ID实施了这种糟糕的命名方案,以避免可能的名称冲突。