1

我正在使用 pulumi 的 Typescript API。我注意到,当我调用console.log("\n\n")pulumi 时,会去掉换行符。我想保留这些换行符以提高部署日志的可读性。

有没有办法指示 pulumi 在输出日志中保留换行符?

4

2 回答 2

2

Pulumi CLI 的当前行为是将您的消息分成几行(用 分割\n)、修剪每一行、删除空行并显示结果。

虽然丑陋,但您可以使用额外的“零宽度空格”字符强制换行:

console.log("Top line");
console.log("\u200B\n\u200B\n\u200B");
console.log("There will be three empty lines before this line");

您可以使用更简单的东西_来代替零宽度空间。显然,下划线将是可见的。

跟踪此问题以获得进一步的进展。

于 2019-09-04T21:08:06.193 回答
1

Pulumi 不应剥离换行符或以其他方式操纵您的console.log()输出。我刚刚对此进行了测试,并且带有换行符的字符串按预期使用换行符打印。

代码

import * as aws from "@pulumi/aws";

const bucket = new aws.s3.Bucket("main", {
    acl: "private",
})

bucket.onObjectCreated("logger", new aws.lambda.CallbackFunction<aws.s3.BucketEvent, void>("loggerFn", {
    memorySize: 128,
    callback: (e) => {
        for (const rec of e.Records || []) {
            const [buck, key] = [rec.s3.bucket.name, rec.s3.object.key];
            console.log(`Object created: ${buck}/${key}`);
        }
    },
}));

console.log(`My 
multi-line
string`);

export const bucketName = bucket.bucket;

输出

$ pulumi up -y
Previewing update (dev):

     Type                                  Name                        Plan       Info
 +   pulumi:pulumi:Stack                   demo-aws-ts-serverless-dev  create     3 ...
 +   └─ aws:lambda:Function                loggerFn                    create

Diagnostics:
  pulumi:pulumi:Stack (demo-aws-ts-serverless-dev):
    My
    multi-line
    string

Resources:
    + 8 to create

Updating (dev):

     Type                                  Name                        Status      Info
 +   pulumi:pulumi:Stack                   demo-aws-ts-serverless-dev  created     ...
 +   └─ aws:lambda:Function                loggerFn                    created

Diagnostics:
  pulumi:pulumi:Stack (demo-aws-ts-serverless-dev):
    My
    multi-line
    string

Outputs:
    bucketName: "main-b568df3"

Resources:
    + 8 created

...
于 2019-09-04T15:01:42.267 回答