皆さんこんにちは。モニターを買いに行ったら入荷待ちばかりで驚愕したid:k-furusawa--gです。みんなリモートワークでモニター買ったんですかね?
今回は前回の「Oracle Cloud Infrastructure(OCI) の予算サービスを使ってみた - Cloudii blog」の中でも紹介しました、通知・イベントサービスを利用して予算サービスと連携させてみたいと思います。予算サービス作成時にコンソールに書かれているやつです!
通知とイベントサービスについては、過去に本ブログの執筆者の一人であるid:s-oomoriが以下の記事内で紹介したことがあります。今回はSlackWebhookを用いた通知方法のご紹介となります。
本記事の目次です。
通知を作成しよう
まずは通知サービスを作成して通知の方法を決めます。
公式ドキュメントは以下です。
通知サービスはメニュー内の「アプリケーション結合」にあります。
通知サービス画面が開かれたら、「トピックの作成」を押します。
ダイアログが開きますので、名前と説明を入力します。済んだら「作成」を押しましょう。
作成が完了したら、次にサブスクリプションの作成を行います。
通知の詳細画面から「サブスクリプションの作成」を押します。
ダイアログが開きますので、必要な情報を入力していきます。
ここで設定した通知先に通知が行われるので、自分が通知を行いたい設定を入力します。今回はSlackに対して通知を行うため、 プロトコル
から Slack
を選択します。 Slack
を選択するとURLの指定が表示されるので、そこにWebHookのURLを指定します。
SlackのWebHookに関しては公式のドキュメントをご参照ください。
指定を終えたら「作成」を押します。サブスクリプションの作成が完了しますが、この時点ではまだ有効ではありません。サブスクリプションの作成が完了された時点で指定されたSlackのチャンネルもしくはDMに、以下のような確認の通知が来ます。
通知内に記載されたURLをクリックすると、サブスクリプションが有効となります。
WebHookが正常かを確認しましょう。通知詳細画面の上部にある「メッセージ公開」を押します。ダイアログが開きますので、メッセージを入力して「公開」を押します。無事に通知が届けば完了です。
イベントを作成しよう
次にイベントを作成します。
公式ドキュメントは以下です。
イベントサービスは通知サービスと同じでメニュー内の「アプリケーション結合」にあります。
イベント画面が開いたら、「ルールを作成」を押します。
この際、コンパートメントは「ルート」を指定してください。ドキュメントなどには書かれていませんが、予算サービスのトリガーイベント類はすべてルートコンパートメントで発生します。予算サービスのターゲットをルート以外のコンパートメントにしても、ルートに記録されるので、コンパートメント設定をルート以外にすると検知できません。
ダイアログが開くので、必要な情報を入力していきます。
ルール条件の設定では、イベント・タイプ
を選択します。サービス名
に Budgets
を選択しましょう。すると イベント・タイプ
で各イベントを選択できます。通知を発信するトリガーとなるイベントを選択しましょう。複数設定することが可能です。今回は TriggeredAlert - Create
を選択します。
アクションの設定では、アクション・タイプ
に 通知
を選択します。通知コンパートメント
には先ほど作成した通知の置かれたコンパートメントを指定します。トピック
には先ほど作成した通知のトピックを指定しましょう。
以上でイベントの作成は完了です。
通知されるのを確認する
設定した予算イベントが発生した時点で、Slackに通知が来ます。予算をすでに超過済みの金額にするか、0.1%後のものに指定すると割と早く確認が可能です。
通知が来ない場合は、以下の点を見直してください。
- 予算サービスのイベントが正常に発生しているのか確認する(メール設定をしてメールが届くかどうか)
- 通知サービスのSlack連携が正常か(メッセージのテストができているか)
- イベントサービスの作成先をルートコンパートメントにしているか(公式のどこにも記載がないので見逃しがち)
機能自体は単純だがそれ以外で欠点が多い
設定自体はとても簡単だと思います。しかし、発生イベントのわかりにくさが欠点だと感じました。
このイベントサービスを設定する操作者が、どのポジションにいるユーザーなのかにもよると思いますが、イベント・タイプの中から自分がトリガーにしてほしいイベントをピンポイントで選ぶことが可能なのは、よほどOCI内部の動きに詳しい人間だけだと感じました。
ドキュメントも簡素すぎて却ってわかりにくく、内容が不足しており、コンソールで設定が可能である旨を書いているにしてはかなり不親切です。サポートに問い合わせても正常な設定方法の開示がなかなか得られず、あまり認知されていない様子でした。
実際にやる場合はほとんどの方がトライアンドエラーになるのではないでしょうか。時間があればいいですが、イベント発生のラグなども考えるとあまり手軽さは感じられませんでした。単純な機能なのですが無用な時間がかかった印象です。
おしまいに
機能以外の面で非常に躓きの多いサービスの一つとなりました。
同じようなものにポリシーがあり、あちらもドキュメントの不親切さ、サポート側に問い合わせてもはっきり答えてくれないなど、機能とは関係のない部分でハードルが上がっています。
OCIはところどころユーザー側の努力に頼っている面があるので、今後改善してほしいですね。
とはいえ設定自体は分かってしまえばそう難しいものでもありませんので、他のイベントでも一度トライしてみてはいかがでしょうか。