![](/img/trans.png)
[英]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.