AWS SNS如何在消息中添加线路断裂



我正在尝试通过JSON格式通过CLI发送SNS消息。

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

但是 n不起作用。" r n"或" n"都不是。我认为字符串是由SNS逃脱的,因此 n不起作用。有人知道如何发送2行消息吗?(发送2条消息不是一个选项(感谢您的建议!

我认为\n实际上是您要寻找的。我刚刚通过AWS SNS向设备发送推送通知来测试它。

所以您的消息应该看起来像这样:

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

注意,您不应在换行符号后离开空白空间,否则,您的新行将始于该空间。

aws sns publish-topic-arn" arn:aws:aws:sns:us-west-2:0123456789012:my-topic' - message file://message..txt

message.txt是一个文本文件,包含要发布的消息:

你好世界第二行

将消息放入文本文件中,您可以包括换行符。

这对我来说是解决的:

"first line
second line"

我使用nodejs aws-sdk使用电子邮件协议发布消息。为了使例外正确出现,我需要替换n\n,并安抚Windows和Mac客户端,使用了rn

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

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

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, 'rn') || '';
    return `${replaceNewlines(header)}rn${replaceNewlines(data)}`;
}

四个后斜拉为我工作

使用Firebase使用AWS SNS

ex:backslashbackslashbackslashbackslash n

测试所有建议的答案后,这是我的情况下有效的方法(从python lambda函数运行,从boto3 sns客户端出版(:

这创建了2条新行:message.replace('n', 'rn')

这创建了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
)

最新更新