如何在 Pulumi 中记录值?

How do I log a value in Pulumi?

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

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

returns

    >>> 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 => `prefix${v}suffix`)o.apply(v => `prefix${v}suffix`)

如何记录 Pulumi 的值?

你应该反过来做:

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

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

您需要在 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