【问题标题】:Fetching AWS SecretManager Secret as Integer Value per CDK获取 AWS SecretManager 密钥作为每个 CDK 的整数值
【发布时间】:2022-01-20 20:54:16
【问题描述】:

我正在尝试将 Secret 作为每个 CDK 的整数值(端口号)获取,以便创建另一个资源。基本上,当我需要 String 参数的 String 值时,一切正常,但是当我尝试将 String 解析为 int 以提供 number 参数时,它不再起作用。问题是 CDK 会为这些值生成一个引用,并且不能将其转换为数字值。 问题是:有没有办法将秘密值检索为数字?

这里有一些代码sn-ps:

SecretManager 对象:

const secret = secretsmanager.Secret.fromSecretAttributes(this, "SecretId", {
      secretCompleteArn: someValidSecretArn
    });

工作正常:

host: secret.secretValueFromJson('host').toString()

不工作,因为参数需要是一个数值:

port: secret.secretValueFromJson('port').toString()

不工作,因为端口为空(不是!),基本上无法解析引用:

port: parseInt(secret.secretValueFromJson('port').toString())

不工作,同上:

port: +secret.secretValueFromJson('port').toString()

【问题讨论】:

    标签: typescript amazon-web-services aws-cdk aws-secrets-manager infrastructure-as-code


    【解决方案1】:

    您可以使用 CDK 的 Token 类将令牌转换为数字:

    https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_core.Token.html#static-aswbrnumbervalue

    port: cdk.Token.asNumber(secret.secretValueFromJson('port'));
    

    它将在部署时解析为正确的值。

    【讨论】:

      猜你喜欢
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 2021-08-15
      • 2020-07-05
      • 2022-08-14
      • 2020-12-16
      相关资源
      最近更新 更多