リアルタイムアラート用の Azure 関数アプリコード
0
Created On 09/26/18 13:45 PM - Last Modified 07/19/22 23:08 PM
Resolution
リアルタイムアラート用に azure 外部アカウントを構成する場合、ユーザーは一連のコードを azure Function アプリにコピーして貼り付ける必要があります。 ただし、構成が "完了" すると、明らかな監視 web UI からコードを再度表示することはできません。
以下は、Azure ファンクションアプリにコピーする必要があるコード (9/21/17 で撮影) です。 以降、コードが変更されている可能性があることに注意してください。
$REPLACE _func_url を Azure の外部アカウントまたはチャネルグループの URL に置き換えるようにしてください。
var 要求 = 必須 (' 要求 ');
モジュール eventHubConsumer = 関数 (コンテキスト、eventHubData) {
var イベント = {};
イベント func = ' EvidentEsp ';
if (isArray (eventHubData)) eventHubData = eventHubData [0];
コンテキストログ (イベント func + ' 呼び出されます ');
var ログ = eventHubData;
if (! ログ) {
コンテキストを返します。
}
invokationId = コンテキスト invokationId;
イベントログ = [];
subscriptionId = getSubscriptionId (ログ);
イベント url = プロセス EVIDENT_URL | |' $REPLACE _func_url ';
ログを記録します。forEach (関数 (ログ) {
buildEvent (ログ) を押します。
});
sendEvent (コンテキスト、イベント);
};
関数 buildEvent (ログ) {
戻り値 {"eventId": log.id, "log": stringify (ログ)};
}
関数 sendEvent (コンテキスト、イベント) {
コンテキストログ (' url に送信: ' + イベント. url + ' サブスクリプションの場合: ' + subscriptionId);
post (イベント url、{
json: {
"関数": イベント func,
"invokationId": イベント invokationId、
"subscriptionId": イベント subscriptionId、
"ログ": イベントログ
}
}、関数 (エラー、応答) {
場合 (エラー) {
コンテキストログ (' メッセージの投稿エラー ');
コンテキスト. 完了 (エラー);
}
else {
コンテキストログ (' メッセージを正常に投稿しました ');
コンテキストログ ("応答:"、JSON. stringify (応答));
コンテキスト。
}
});
}
関数 getSubscriptionId (ログ) {
var ret = ' ';
if (ログ [0] & & ログ [0]. resourceId) {
var r = ログ [0] resourceId toLowerCase (). 一致 (/\/subscriptions\/([^ \/] +) \//);
if (r) {
ret = r [1];
}
}
リターン ret;
}