• /
  • ログイン
  • 無料アカウント

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

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

問題を作成する

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

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

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

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

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

メッセージテンプレートは、 Handlebars というシンプルなテンプレート言語で書かれています。メッセージテンプレート内の変数は、二重の中括弧の中に として書かれています {{ }}

Webhook通知メッセージテンプレートの例のスクリーンショットです。

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

変数メニュー

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

variables メニューで {{ と入力して、変数のリストから選択します。入力すると、オートコンプリートで変数名が表示されます。変数の種類は右端に表示されます。これらの変数にエンリッチドデータを追加することができます。

変数メニューのスクリーンショットでは、利用可能な変数オプションの幅が示されています。

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

Handlebarsの構文を使う

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

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

ヘルパー機能

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

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

使用例

この例は、 データ という変数に基づいています。

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

データ 値には、同等の、ドット表記のフォーマットがあります。

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

データの検証

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

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

名前アリス に等しい場合、出力は 有効 です。

JSONを返す

タグ とオブジェクトのプロパティを 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

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

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

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

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

データ 変数をイテレートして、オブジェクトのエントリを文字列に集約します。

{{#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.