首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CDK secretsmanager.Secret secretName是一个令牌

CDK secretsmanager.Secret secretName是一个令牌
EN

Stack Overflow用户
提问于 2022-07-26 07:35:14
回答 1查看 96关注 0票数 0

我似乎无法在一个方面中使用CDK secretsmanager.Secret secretName,下面是我如何定义这个秘密的方法:

代码语言:javascript
复制
new secretsmanager.Secret(this, 'MySecret', {
  secretName: 'my-secret-name'
})

但是,在方面中,当我尝试访问secretName时:

代码语言:javascript
复制
export default class NameCheckAspect implements cdk.IAspect {
  visit(node: IConstruct): void {
    if (node instanceof secretsmanager.Secret) {
      console.log(node.secretName)
    }
  }
}

但是,我希望它记录“我的秘密名称”:'${TokenFn::Join.248}‘。因此,我尝试使用构造的堆栈解析令牌:

代码语言:javascript
复制
export default class NameCheckAspect implements cdk.IAspect {
  visit(node: IConstruct): void {
    if (node instanceof secretsmanager.Secret) {
      console.log(cdk.Stack.of(node).resolve(node.secretName))
    }
  }
}

但是,这将解析为一个CloudFormation Fn::Join:

代码语言:javascript
复制
{
  'Fn::Join': [
    '-',
    [ [Object], [Object], [Object], [Object], [Object], [Object] ]
  ]
}

为什么它要这样做,而不只是把我设置的字符串secretName还给我?有没有人知道,如果有一个明智的方法,以使secretName回到,而不需要采取措施,以逃避舱口?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-28 13:10:47

您可以尝试通过cfnProperties获得名称

代码语言:javascript
复制
const secret = node.defaultChild as secretsmanager.CfnSecret;
const secretName = secret.cfnProperties.SecretName as string | undefined;

它应该是一个解析的名字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73119401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档