【发布时间】:2021-01-27 16:55:19
【问题描述】:
我在 ruby 中具有以下功能,可通过 webhook 将 aws 日志发送到 Microsoft 团队频道。某些文本包含下划线符号,如 connection_web,但在 MS 团队中显示为 connectionweb。如何得到准确的输出?
require 'json'
require 'net/https'
require 'uri'
require 'base64'
require 'zlib'
require 'stringio'
def lambda_handler(event:, context:)
log_event = JSON.parse(decode_and_decompress(event["awslogs"]["data"]))
response = speak(messages_from_blob(log_event))
puts response.body
end
def speak(message)
http = Net::HTTP.new("MS-Teamwebhook.com", 443)
http.use_ssl = true
request = Net::HTTP::Post.new(ENV["HOOK_URL"])
request.body = JSON.generate({
text: message
})
http.request(request)
end
def decode_and_decompress(input)
binary_compressed = Base64.decode64(input)
gz = Zlib::GzipReader.new(StringIO.new(binary_compressed))
gz.read
end
def messages_from_blob(event_data)
event_data["logEvents"]
.map{ |e| e["message"] }
.join("\n")
end
【问题讨论】:
-
默认情况下它似乎打开了markdown标志,我在代码
markdown: false中关闭了但仍然有问题。 -
有人帮我解决这个问题吗?
-
嗨@blaCkninJa,我无法使用邮递员重现该问题,请尝试Sending messages to connectors and webhooks。
-
嗨@blaCkninJa,你还面临这个问题吗?如果是,请您按照this 文件尝试使用邮递员。它有示例
-
@Jagadeesh-MSFT 我已经在下面提到了详细信息。使用 ruby 代码无法解决问题。
标签: ruby microsoft-teams amazon-cloudwatchlogs