やりたいこと
GCP Error Reportingが便利なのでSlackに連携する
Slack App作成
https://api.slack.com/apps/ からSlack Appを作成
OAuth & Permissions
からScopeは以下のように設定
Install App
からインストールする
Bot User OAuth Token
が取得できる。(例. xoxb-11111111-xxxxxxxx
)
GCP Secret Managerの設定
上で取得したBot User OAuth TokenをSecret Managerに設定する
resource "google_secret_manager_secret" "slack_bot_token_gcp" {
secret_id = "slack-bot-token-gcp"
replication {
auto {}
}
}
secret manager versionに値を追加 (Console 上 or gcloud)
echo -n "xoxb-xxxxxxx" | gcloud secrets versions add slack-bot-token-gcp --data-file=- --project <project>
notification channelの設定
data "google_secret_manager_secret_version" "slack_bot_token_gcp" {
secret = "slack-bot-token-gcp"
}
resource "google_monitoring_notification_channel" "slack_proj_internal_system" {
display_name = "slack-proj-internal-system"
type = "slack"
labels = {
"channel_name" = "#proj-internal-system" # you can set your own slack channel name
}
sensitive_labels {
auth_token = data.google_secret_manager_secret_version.slack_bot_token_gcp.secret_data
}
}
GCPのError Reporting を連携
terraform でのError Reportingとの連携はサポートされてないようなので、手動で設定。
Slack通知
通知が来るようになる!
Ref
- https://github.com/hashicorp/terraform-provider-google/issues/12068
- https://cloud.google.com/blog/products/devops-sre/use-slack-and-webhooks-for-notifications
- https://github.com/hashicorp/terraform-provider-google/issues/14256
- https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/secret_manager_secret_version