【发布时间】:2021-01-19 17:27:02
【问题描述】:
我正在同一个 CDK 项目中处理两个独立的堆栈(称为 A 和 B)。我在堆栈 B 中生成了一个策略,其中包含对堆栈 A 中资源的 ARN 的资源引用。CDK 做了这个聪明的魔术,为每个共享的 arn 创建 CfnOutputs,然后在堆栈 B 中使用 Fn::ImportValue。
堆栈 B 中的示例 TypeScript 代码:
const role = stackA.role;
stackB.permissionsBoundary.addStatements(
new iam.PolicyStatement({
resources: [ role.roleArn ],
actions: [
'sts:AssumeRole'
]
})
);
我不希望它这样做。当您事后需要处理堆栈时,它会引起各种悲伤。我只想在堆栈 B 中使用从堆栈 A 中生成的标记中提取的文字字符串。
请告诉我有一种方法可以关闭此功能。这是一个非常非常容易泄漏的抽象,应该是可选的。
堆栈 A 中生成的示例模板:
"ExportsOutputFnGetAttfoo": {
"Value": {
"Fn::GetAtt": [
"bar",
"Arn"
]
},
"Export": {
"Name": "stackA:ExportsOutputFnGetAttfoo"
}
}
在堆栈 B 中生成的示例模板:
"Resource": [
{
"Fn::ImportValue": "stackA:ExportsOutputFnGetAttfoo"
}
【问题讨论】:
标签: amazon-web-services aws-cdk