GoLang勉強会に参加してきた
土曜日のこと。
なんとなくGoLang勉強会に参加してきた。2回目の実施らしい。
今回は、もくもく勉強会ということで
Githubのissueにやること書いてそれをやるという感じでした。
最初、hugoのソースでも読もうかと思ったけど、
最初からソース読みに行くのは敷居が高いかなということで
A Tour of Goをやってました。
少し読んだ後に、今まで作ったスクリプトをGoで作ってみようかなという気になったので
ここを見ながら
GoでZabbixのアラート通知をSlackに流すスクリプト作成してみました。(写経ですが...)
package main import ( "fmt" "os" "encoding/json" "io/ioutil" "net/http" "net/url" ) var ( IncomingWebhookUrl string = ""#Webhook URL ) type Slack struct { Text string `json:"text"` Username string `json:"username"` Icon_emoji string `json:"icon_emoji"` Icon_url string `json:"icon_url"` Channel string `json:"channel"` } func main() { params, _ := json.Marshal(Slack{ string(os.Args[1]), "bot君", ":ghost:", "", "#general"}) resp, _ := http.PostForm( IncomingWebhookUrl, url.Values{"payload": {string(params)}}, ) body, _ := ioutil.ReadAll(resp.Body) defer resp.Body.Close() println(string(body)) }
こんな感じでしょうか。
Zabbixの設定は割愛します。
次回も参加できたら
何か書いてみようかな。
おしま。