AWS を勉強する際にコスト面が気になったので作った。
開発環境
> go version
go version go1.16.3 linux/amd64
やること
- AWS Cost Explorer で取得したサービスごとの料金を Slack に通知する
つくったもの
コード
https://github.com/tokizuoh/biloba
Slack
respChannel, respTimestamp, err := c.PostMessage(os.Getenv("SLACK_CHANNEL_ID"), slack.MsgOptionBlocks(
&slack.SectionBlock{
Type: slack.MBTSection,
Text: &slack.TextBlockObject{
Type: "mrkdwn",
Text: "Notify AWS costs by AWS Cost Explorer.",
},
},
slack.NewDividerBlock(),
slack.NewSectionBlock(
&slack.TextBlockObject{
Type: "mrkdwn",
Text: generateDateStr(costOutput.TimePeriod.Start, costOutput.TimePeriod.End),
},
generateTextBlockObjects(costOutput),
slack.NewAccessory(
slack.NewImageBlockElement(os.Getenv("AWS_COST_EXPLORER_IMG_PATH"), "aws_ce"),
),
),
))
slack-go/slack を使用。
Block Kit をラップしたものを使ったが、かなり直感的に書けた。