[英]AWS CDK, ecs-patterns, ApplicationLoadBalancedFargateService, setting tags
[英]TypeScript: AWS CDK setting resource tags with loop
我遇到了循环依赖错误。 我即将创建一个 aws 标签,但我不想每次都添加 class 实例; 相反,我创建了一个 function,它遍历给定的 object 并将它们应用于标签。
迭代器:
....
ResourceTagger = (this, id, props: cdk.CfnTag[]) => {
props.forEach(tag => {
cdk.Tags.of(this).add(tag.key, tag.value)
})
}
Function 拨打
....
ResourceTagger(this.vpc, id, [
{
key: "Stack",
value: id,
},
{
key: "Cidr IPv4",
value: this.vpc.vpcCidrBlock,
}
])
错误信息:
❌ Deployment failed: Error: Stack Deployments Failed: ValidationError: Circular dependency between resources:
这段代码是否有有效的解决方案,也许有一种不使用cdk.CfnTag[]
接口的方法?
问题是您尝试在ResourceTagger
中使用的this.vpc.vpcCidrBlock
。 默认情况下ec2.Vpc construct
创建许多资源,除非明确定义,否则不会对其进行管理。
因此,在您的情况下,当您添加 Tag 一些对符号敏感的 aws 资源时,会抛出错误: ValidationError
。 如果您想添加vpcCidrBlock
,请尝试更改为字符串,这应该会有所帮助。
至于cdk.CfnTag[]
:你可以尝试这样的事情:
ResourceTagger = (this, props: Record<string, string>) => {
Object.entries(props).forEach(([key, value]) => {
cdk.Tags.of(this).add(key, value)
});
ResourceTagger(this, {
"Foo1": "Bar1",
"Foo2": "Bar2",
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.