Es gibt eine Sentry-Integration, um Slack zu benachrichtigen, aber nur die kostenpflichtige Version ist verfügbar.
Ich hatte nicht vor, für persönliche Projekte eine Gebühr zu erheben, deshalb habe ich versucht, es in der kostenlosen Version verfügbar zu machen. Da der Fokus nur auf dem Benachrichtigungsteil liegt, werden Erklärungen wie Wachposteneinstellungen weggelassen.
Verwenden Sie den Webhook von Sentry. Geben Sie den Lambda-URI als Ziel und die Anforderung von Lamda an den Slack-Webhook an.
--Stellen Sie den eingehenden Webhook auf Slack ein und bereiten Sie das Anforderungsziel vor. (Da es verschiedene Artikel gibt, wird es weggelassen)
--Erstellen Sie ein Lambda und setzen Sie den Slack-URI in der Umgebungsvariablen SLACK_INCOMING_WEBHOOK_URL
require 'json'
def lambda_handler(event:, context:)
body = JSON.parse(event['body'])
post_query = {
"attachments": [
"pretext": "<#{body['url']}|Exception>\r\nproject: #{body['project_slug']}\r\nenvironment: #{body['event']['environment']}\r\ndetail: #{body['event']['metadata']['filename']}`#{body['event']['metadata']['function']}`",
"color": "#D00000",
"fields": [
"title": "#{body['event']['title']}",
"value": "#{body['culprit']}"
]
]
}
uri = URI.parse(ENV['SLACK_INCOMING_WEBHOOK_URL'])
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.post(uri.path, post_query.to_json)
{ statusCode: 200, body: JSON.generate('') }
end
Sie erhalten folgende Benachrichtigung. (Das Beispiel ist ein Fehler, der durch Rails verursacht wurde.)
Da die Verarbeitung von Lambda auf einem Fehler in Rails beruht, besteht die Möglichkeit, dass die Informationen mit anderen Frameworks nicht korrekt angezeigt werden. Die Anpassung kann anhand der Sentry-Webhook-Parameter erfolgen.
Recommended Posts