【问题标题】:How do I log a value in Pulumi?如何在 Pulumi 中记录值?
【发布时间】:2021-09-07 20:55:39
【问题描述】:

每个Pulumi's documentation for inputs and outputs 我正在尝试console.log() 输出的字符串值。

console.log(
  `>>> masterUsername`,
  rdsCluster.masterUsername.apply((v) => `swag${v}swag`)
);

返回

    >>> masterUsername OutputImpl {
      __pulumiOutput: true,
      resources: [Function (anonymous)],
      allResources: [Function (anonymous)],
      isKnown: Promise { <pending> },
      isSecret: Promise { <pending> },
      promise: [Function (anonymous)],
      toString: [Function (anonymous)],
      toJSON: [Function (anonymous)]
    }

我正在按指定运行o.apply(v =&gt; `prefix${v}suffix`)

如何记录 Pulumi 的值?

【问题讨论】:

    标签: typescript pulumi


    【解决方案1】:

    你应该反过来做:

    rdsCluster.masterUsername.apply(v =>
      console.log(`>>> masterUsername`, `swag${v}swag`));
    

    当输出值被解析时回调将运行,并在那时打印该值。在预览中,如果值未知,它可能根本不会运行。

    【讨论】:

    • 感谢@MikhailShilkov 的快速回复!
    • 作为一些反馈,“应用”一词通常不用于在 JavaScript / TS 中继续传递,因此这里的名称令人困惑。也许 onComplete 会更好。或者改变 Pulimi 使用 Promises!
    【解决方案2】:

    您需要记录apply() 中的值。下面是来自 S3 存储桶的一些示例代码,向您展示它的外观:

    bucket.arn.apply(arn => console.log(arn))
    

    值得注意的是,pulumi 有它的own logging functions,它将记录包括资源在内的引擎值:

    bucket.arn.apply(arn => pulumi.log.info(`bucket arn: ${arn}`, bucket))
    

    这样的结果如下:

    Diagnostics:
      pulumi:pulumi:Stack (logging-output-dev):
        arn:aws:s3:::my-bucket-eb42897
    
      aws:s3:Bucket (my-bucket):
        bucket arn: arn:aws:s3:::my-bucket-eb42897
    

    有关为什么需要在应用程序内部运行日志记录方法的更多信息,请查看this blog post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 2020-06-14
      • 2015-11-05
      • 1970-01-01
      • 2021-11-14
      • 2020-12-06
      • 2021-10-14
      相关资源
      最近更新 更多