我正在尝试通过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
)