Il existe une intégration sentinelle pour notifier Slack, mais seule la version payante est disponible.
Je n'avais pas l'intention de le facturer pour des projets personnels, j'ai donc essayé de le rendre disponible dans la version gratuite. Étant donné que l'accent est uniquement mis sur la partie notification, les explications telles que les paramètres de sentinelle sont omises.
Utilisez le webhook de sentinelle. Spécifiez l'URI lambda comme destination et faites la demande de lamda au webhook slack.
--Définissez le webhook entrant de slack et préparez la destination de la requête. (Puisqu'il existe divers articles, il est omis)
--Créez un lambda et définissez l'URI slack dans la variable d'environnement SLACK_INCOMING_WEBHOOK_URL
--Copiez et collez le processus lambda suivant pour enregistrer et déployer (l'exemple est ruby)
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
Vous recevrez la notification suivante. (L'échantillon est une erreur causée par Rails)
Étant donné que le traitement de lambda est fondé sur une erreur dans Rails, il est possible que les informations ne s'affichent pas correctement avec d'autres frameworks. La personnalisation peut être effectuée en consultant les paramètres du webhook de sentinelle.