json AWS SNS如何在消息中添加换行符

jogvjijk  于 2022-12-24  发布在  其他
关注(0)|答案(6)|浏览(169)

我试图通过CLI发送json格式的SNS消息。

aws sns publish --cli-input-json "{\"TopicArn\":\"xxx\",\"Message\":\"first line\n second line\",\"Subject\":\"Empty subject\"}"

但是\n不起作用。“\r\n”或“\n”也不起作用。我认为字符串被SNS转义了,所以\n不起作用。有人知道如何发送2行消息吗?(发送2条消息不是一个选项)感谢您的建议!

qyyhg6bp

qyyhg6bp1#

我想\\n就是你要找的,我刚刚通过AWS SNS向我的设备发送推送通知进行了测试。
因此,您的消息应该如下所示:

aws sns publish --cli-input-json "{\"TopicArn\":\"xxx\",\"Message\":\"first line\\nsecond line\",\"Subject\":\"Empty subject\"}"

注意,您不应该在换行符后面留下白色,否则,您的新行将以该空白开始。

fzwojiic

fzwojiic2#

aws sns发布--主题-arn“arn:aws:sns:美国西部-2:0123456789012:我的主题”--消息文件://message.txt
message.txt是包含要发布的消息的文本文件:
你好世界二线
将消息放在文本文件中允许您包括换行符。

hc2pp10m

hc2pp10m3#

这对我来说很有效:

"first line
second line"
c0vxltue

c0vxltue4#

我正在使用nodejs aws-sdk使用电子邮件协议发布消息。为了正确显示异常,我需要同时替换\n\\n,为了安抚windows和mac客户端,使用了\r\n

message.replace(/\n|\\n/g, '\r\n')

对于任何需要完整代码的人来说,这就是我处理 typescript 中错误的方式

public prepareMessage(header: string, error: any) {
    const data = (error instanceof Error)
        ? JSON.stringify(error, Object.getOwnPropertyNames(error), 2)
        : JSON.stringify(error, null, 2);

    const replaceNewlines = (str: string) => str?.replace(/\n|\\n/g, '\r\n') || '';

    return `${replaceNewlines(header)}\r\n${replaceNewlines(data)}`;
}
lrl1mhuk

lrl1mhuk5#

四个反斜杠对我有效
将Aws SNS与Firebase配合使用
EX:反斜杠反斜杠反斜杠反斜杠+n

blpfk2vs

blpfk2vs6#

在测试了所有建议的答案之后,下面是在我的案例中工作的(从python lambda函数运行,从boto3sns客户端发布):
这创建了2个新行:第一个月
这创建了1个新行:message.replace('\n', '\r')

    • 示例:**
message = message.replace('\n', '\r').replace('\t', '    ')

# Sending the notification...
snsclient.publish(
    TargetArn=SNS_EMAIL_ALERTS_ARN,
    Subject=f'{filter_name} Alert: ({lambda_func_name[3]})',
    Message=message
)

相关问题