GoでSlackにPostする
SlackにGo言語でMessageをPostするコードを書いたので備忘録です。 Slackにエラーログを送ったり、アラート通知やリソース情報通知などに活用する。
- 開発環境
- Mac
- go1.11.2
- Slack: WebHookURLが必要
- SlackにPostするときにAPI仕様を確認する ( Attachment structure )
- GoでSlackにPostするために、以下のパッケージを利用した
- SlackPost.go
package main import ( "github.com/ashwanthkumar/slack-go-webhook" "os" ) const ( WEBHOOKURL = "https://hooks.slack.com/services/XXXX" CHANNEL = "dev" USERNAME = "GoBot" ) func main() { PostSlack("HelloWorld!!") } func PostSlack(msg string) { field1 := slack.Field{Title: "Message", Value: msg} field2 := slack.Field{Title: "AnythingKey", Value: "AnythingValue"} attachment := slack.Attachment{} attachment.AddField(field1).AddField(field2) color := "good" attachment.Color = &color payload := slack.Payload{ Username: USERNAME, Channel: CHANNEL, Attachments: []slack.Attachment{attachment}, } err := slack.Send(WEBHOOKURL, "", payload) if err != nil { os.Exit(1) } }
通知結果
まとめ
Go言語を使って、SlackにPostするコードを作成した。次はLambdaで動かす記事は別途作成したいと思います。