• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

通知メッセージテンプレート

通知メッセージのテンプレートを使うと、サードパーティの送信先に送信する前に、通知イベントデータをカスタマイズすることができます。テンプレートは、お客様のカスタム値をサードパーティの送信先で使用される値にマッピングします。

これにより、どのようなデータがどこに送信されるかを完全にコントロールすることができ、お客様が利用するサービスを十分に活用することができます。

メッセージテンプレートの変数

メッセージテンプレートとは、New Relic のイベントデータをサードパーティサービスで利用可能なデータに変換するために使用するものです。変数は、サードパーティサービスのデータフィールドにマッピングされる特定の属性です。

メッセージ テンプレートは、 Handlebarsと呼ばれる単純なテンプレート言語で記述されます。メッセージ テンプレート内の変数は、二重中括弧{{ }}内のとして記述されます。

通知メッセージテンプレートを使用して、New Relic の通知を外部サービスのフィールドにマッピングします。

変数メニュー

New Relic の変数名は、メッセージテンプレートの変数メニューに記載されています。変数はサブカテゴリーに分類されています。

変数メニューで{{と入力して、変数のリストから選択します。入力すると、オートコンプリートによって変数名が表示されます。変数の型は右側に書かれています。これらの変数に強化されたデータを追加できます。

変数メニューには、New Relic の通知フィールドを外部サービスのフィールドにマッピングする際のオプションが表示されます。

Handlebarsの構文を使う

イベントで通知が発生すると、メッセージテンプレートはハンドルバー変数を使用して、通知データをサードパーティサービスが使用するフィールドにマッピングします。

Handlebars言語は、基本的な変数の置き換えに加えて、 ネストした入力オブジェクトの評価 や、反復(ループ)や条件文などの関数など、多くの機能を備えています。Handlebarsではこれらの関数をヘルパーと呼びます。

ヘルパー機能

私たちのメッセージテンプレートは、Handlebars 組み込みヘルパー をサポートしています。

さらに、あなたの役に立つかもしれない他のヘルパーも追加しました。

使用例

例は、 dataという変数に基づいています。

"data": {
"tags":["infra, team-a"],
"id":123456789,
"name": "Alice",
}

data値は、同等のドット表記形式です。

"data.tags": ["infra, team-a"]
"data.id": 123456789
"data.name": "Alice"

データの検証

id123456789と等しい場合、出力はvalidです。そうでない場合、出力はnot validです。

{{eq data.name "Alice" yes='valid' no='not valid'}}

nameAliceと等しい場合、出力はvalidです。

JSONを返す

tagsとオブジェクトのプロパティを JSON 形式で取得します。

{{json data.tags}}

そうすると、次のようなJSONが返ってきます。

["infra", "team-a"]

配列からの値の取得

tags配列から最初のタグを取得します。

{{json data.tags.[0]}}

これは、配列から最初の値を返すことになります。

bash
$
"infra"

配列の反復処理

配列型の変数をイテレートし、その値を文字列に集約します。

{{#each tags}}{{this}}{{#unless @last}}, {{/unless}}{{/each}}

結果には、カンマで区切られたタグが含まれます(末尾のカンマは省略されます)。

bash
$
infra, team

同様に、 data変数を反復し、オブジェクトの値を集計して、JSON 要素を出力します。

{{#each (json data)}}{{this}}{{/each}}

これは次のようなJSONを返します。

{
"tags": ["infra, team-a"],
"name": "Alice",
"id": "123456789"
}

data変数を反復処理してから、オブジェクトのエントリを文字列に集約します。

{{#each data}}{{@key}}: {{this}}{{#unless @last}}, {{/unless}}{{/each}}

これは次のような文字列を返します。

bash
$
tags: infra,team-a, name: Alice, id: 123456789

欠落した属性の処理

場合によっては、ある属性が 変数メニュー に存在しなかったり、全く存在しないこともあります。

#ifステートメントを使用して、次のようなフォールバックを設定できます。

{{#if data.type}} {{ json data.type }} {{else}}"N/A"{{/if}}

文字列"N/A"を返します。

Copyright © 2023 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.