Custom Application NotificationとAnypoint PlatformのAlert機能を組み合わせることで、
ある条件のエラーが発生した場合にのみ、ある特定の人にメール通知を行う
などといった、アプリケーション内で柔軟なメール通知を指定することができます。
簡単なものを作成してみます。
※ Alert機能はCloud Hubにアプリケーションをデプロイする必要があります。
アプリケーションの作成
トリガーとしてHttpリスナーを配置します。
デバッグ用にloggerを配置します。
CloudHubコネクターの「Create Notification」を配置します。
Anypoint StudioにCloudHubコネクターを追加する必要があります。
Mule Palletの「Add Module」でCloudHubを追加します。
Mule Palletにも存在しない場合は、「Search in Exchange」から探してください。
「Create Notification」の設定は以下のようになります。
デプロイ
プロジェクト右クリック > Anypoint Platform > Deploy to CloudHubで、CludHubにアプリケーションをデプロイしてください。
アラートの設定
アプリケーションのデプロイが完了したら、次にアラート設定を行います。
CloudHubにログインして、Runtime Manager > 左のメニューからAlert > 右上の「+」ボタンを押下して「Create an Alert」画面を表示します。
以下の内容を設定してください。
- Name:<任意の名前>
- Severity level:<任意のレベル>
- Source:server
- Application type:Cloud Hub Applications
- Application:<デプロイしたアプリケーション>
- Condition:Custom application notification
- Priority:<任意の値>
- Contains:<Notificationで設定したMessage。ここでは「test」>
- Subject:<任意のメールのタイトル>
- Message:<任意のメールの内容>
- Recipients:<メール送信するユーザ>
「Cerate Alert」ボタンを押下して、Alertを作成してください。
動作確認
これで設定は完了です。デプロイしたApplicationにアクセスしてみてください。
以下のようなメールが受信できれば成功です。
まとめ
今回は単純にメールを飛ばすだけのアプリケーションを作成しましたが、エラーハンドリングなどと組み合わせれば、必要な状況で必要な人にのみメール送信が可能になるかと思わます。
また、今回はCustom Application Notificationのメール送信を行いましたが、Alert機能では
- CPUやMemoryの使用状況
- デプロイ結果
- Workerのレスポンス
等によってもAlertメールの送信が可能なようです。