イベントルールを使用して、イベントをフィルタリングし、DingTalkにルーティングできます。このトピックでは、カスタムイベントをDingTalkにルーティングするための前提条件と手順について説明します。また、結果を確認する方法についても説明します。
前提条件
- EventBridgeがアクティブ化されており、RAMユーザーにEventBridgeに必要な権限が付与されている.
- DingTalkがダウンロードされている.
- A custom chatbot is added.重要 When you add a custom chatbot, you must select Additional Signature for Security Settings.
背景情報
DingTalkチャットボットは、次の種類のメッセージをプッシュできます。- テキストタイプのメッセージ
- リンクタイプのメッセージ
- Markdownタイプのメッセージ
- 単一リダイレクトactionCardタイプのメッセージ
- 複数リダイレクトactionCardタイプのメッセージ
- feedCardタイプのメッセージ
手順 1:カスタムイベントソースを作成する
EventBridge コンソールにログオンします。左側のナビゲーションペインで、[イベントバス] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。[イベントバス] ページで、管理するカスタムイベントバスの名前をクリックします。
左側のナビゲーションペインで、[イベントソース] をクリックし、次に [イベントソースの追加] をクリックします。
[カスタムイベントソースの追加] パネルで、[名前] パラメーターと [説明] パラメーターを設定し、[イベントプロバイダー] ドロップダウンリストから [カスタムアプリケーション] を選択し、[OK] をクリックします。
手順 2:イベントルールを作成する
EventBridge コンソールにログオンします。
左側のナビゲーションペインで、[イベントバス] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。
[イベントバス] ページで、管理するイベントバスの名前をクリックします。
左側のナビゲーションペインで、[イベントルール] をクリックします。
- [イベントルール] ページで、[ルールの作成] をクリックします。
- [ルールの作成] ウィザードを完了します。
- [基本情報の構成] 手順で、[名前] フィールドにルール名を入力し、[説明] フィールドにルールの説明を入力し、[次の手順] をクリックします。
- [イベントパターンの構成] 手順で、[イベントソースの種類] パラメーターを [カスタムイベントソース] に設定し、[イベントソース] ドロップダウンリストから手順 1 で作成したカスタムイベントソースを選択し、[イベントパターンのコンテンツ] コードエディターでイベントパターンを指定し、[次の手順] をクリックします。
詳細については、「イベントパターン」をご参照ください。
- [ターゲットの構成] 手順で、イベントターゲットを設定します。次に、[作成] をクリックします。説明 1 つのイベントルールに対して最大 5 つのイベントターゲットを設定できます。
- [サービスタイプ]:[dingtalk] をクリックします。
- [アドレス]:DingTalkチャットボットのwebhook URLを入力します。
- [秘密鍵]:DingTalkチャットボットのキーを入力します。
- [プッシュされたコンテンツ]:テンプレートを指定します。イベントは、カスタムテンプレートで定義された形式でイベントターゲットにルーティングされます。テンプレート内の変数をカスタマイズできます。
DingTalkチャットボットは、指定されたタイプおよび指定された形式のメッセージのみをプッシュできます。通常、DingTalkチャットボットは次の種類の変数とテンプレートをサポートしています。
- テキストタイプの変数とテンプレートの例
変数の例:
{ "content": "$.data.content" // コンテンツ }
テンプレートの例:
{ "msgtype":"text", // メッセージタイプ "text":{ "content":"${content}@1760514XXXX" // メッセージコンテンツ }, "at":{ "atMobiles":[ // @でメンションするモバイル番号 "1760514XXXX", "1898325XXXX" ], "isAtAll":false // 全員をメンションするかどうか } }
パラメーター タイプ 必須 説明 メッセージタイプ String はい メッセージのタイプ。 テキスト String はい メッセージのタイプ。 コンテンツ Object はい テキストタイプのメッセージのコンテンツ。 で String はい メッセージのコンテンツ。 atMobiles Object はい アットマーク(@)を使用したリマインダーの構成。 説明 携帯電話番号は DingTalk アカウントにバインドする必要があります。すべてにおいて Array いいえ アットマーク(@)でリマインドするメンバーの携帯電話番号。 説明 携帯電話番号はDingTalkアカウントにバインドされている必要があります。すべてにおいてコンテンツ - リンクタイプのサンプル変数とテンプレート
サンプル変数:
{ "name": "$.data.name" }
サンプルテンプレート:
{ "msgtype":"link", "link":{ "text":"The founder ${name} calls the upcoming new version a mangrove. Product managers adopt an appropriate alias for each major upgrade. Why is this version called the mangrove?", "title":"The train of the era is moving forward", "picUrl":"", "messageUrl":"www.example.com" } }
パラメーター タイプ 必須 説明 msgtype String はい メッセージのタイプ。 link Object はい リンクタイプのメッセージの内容。 text String はい メッセージの内容。 説明 メッセージの内容が長すぎる場合、DingTalk ウィンドウには内容の一部のみが表示されます。title String はい メッセージのタイトル。 picUrl String いいえ 画像の URL。 messageUrl String はい メッセージの URL。 - リンクタイプの変数とテンプレートの例
変数の例:
{ "time":"$.time", // 時刻 "content":"$.data.content" // 内容 }
サンプルテンプレート:
{ "msgtype":"markdown", "markdown":{ "title":"杭州の天気", //杭州の天気 "text":"#### Weather in Hangzhou @1760514XXXX \n> ${content}\n> \n> ###### ${time}Publish [Weather](www.example.com) \n" //杭州の天気 @1760514XXXX \n> ${content}\n> \n> ###### ${time}発行 [天気](www.example.com) \n }, "at":{ "atMobiles":[ "1760514XXXX" ], "isAtAll":false } }
パラメーター タイプ 必須 説明 msgtype String はい メッセージのタイプ。 markdown Object はい Markdown タイプのメッセージの内容。 title String はい メッセージのタイトル。 text String はい メッセージの内容。 at Object はい アットマーク (@) を使用したリマインダーの設定。 atMobiles Array いいえ アットマーク (@) でリマインドするメンバーの携帯電話番号。 isAtAll Boolean いいえ アットマーク (@) を使用してすべてのメンバーにリマインドするかどうかを指定します。 説明 isAtAll パラメーターを true に設定すると、DingTalk はアットマーク (@) を使用してすべてのメンバーにリマインドします。この場合、content パラメーターで特定のメンバーにリマインドするために使用するアットマーク (@) は無効になります。 - 単一リダイレクト actionCard タイプのサンプル変数とテンプレート
サンプル変数:
{ "content":"$.data.content" }
サンプルテンプレート:
{ "msgtype":"actionCard", "actionCard":{ "title":"Jobs wanted to build an Apple Cafe 20 years ago, and it was the predecessor of Apple Store", "text":" \n ### ${content} \n The design of Apple Store is moving from the original full sense of technology to life, and its life-oriented trend can be traced back to the plan of Apple to build a cafe 20 years ago.", "btnOrientation":"0", "singleTitle":"Read the full text", "singleURL":"www.example.com" } }
パラメーター タイプ 必須 説明 msgtype String はい メッセージのタイプ。 actionCard Object はい actionCard タイプのメッセージの内容。 title String はい プレビューボックス内のメッセージのタイトル。 text String はい メッセージの内容。 btnOrientation String いいえ ボタンの方向。 有効な値:
- 0: 垂直方向の配置
- 1: 水平方向の配置
singleTitle String はい 単一ボタンのタイトル。 singleURL String はい singleTitle パラメーターで指定されたタイトルをクリックしたときにトリガーされる URL。 - 複数リダイレクト actionCard タイプのサンプル変数とテンプレート
サンプル変数:
{ "content":"$.data.content" }
サンプルテンプレート:
{ "msgtype":"actionCard", "actionCard":{ "title":"Jobs wanted to build an Apple Cafe 20 years ago, and it was the predecessor of Apple Store", "text":" \n ### ${content} \n The design of Apple Store is moving from the original full sense of technology to life, and its life-oriented trend can be traced back to the plan of Apple to build a cafe 20 years ago.", "btnOrientation":"0", "btns":[ { "title":"The content is good", "actionURL":"www.example.com" }, { "title":"Not interested", "actionURL":"www.example.edu" } ] } }
パラメーター タイプ 必須 説明 msgtype String はい メッセージのタイプ。 actionCard Object はい actionCard タイプのメッセージの内容。 title String はい プレビューボックス内のメッセージのタイトル。 text String はい メッセージの内容。 btnOrientation String いいえ ボタンの方向。 有効な値:
- 0: 垂直方向の配置
- 1: 水平方向の配置
btns Array はい ボタン。 title String はい ボタンのタイトル。 actionURL String はい ボタンをクリックしたときにトリガーされる URL。 - Markdownタイプの変数とテンプレートの例
変数の例:
{ "content":"$.data.content" }
サンプルテンプレート:
{ "msgtype":"feedCard", "feedCard":{ "links":[ { "title":"${content}", "messageURL":"www.example.com", "picURL":"img.example.com/image_04.png" }, { "title":"時代の列車は前進しています", // The train of the era is moving forward "messageURL":"www.example.edu", "picURL":"img.example.edu/image_05.png" } ] } }
<tablegパラメーター タイプ 必須 説明 msgtype String はい メッセージのタイプ。 feedCard Object はい feedCardタイプのメッセージの内容。 links Array いいえ feedCardタイプのメッセージに関連するURL。 title String はい メッセージのタイトル。 messageURL String はい メッセージのURL。 picURL String はい 画像のURL。
詳細については、「イベント変換」をご参照ください。
- テキストタイプの変数とテンプレートの例
手順 3: イベントを発行する
EventBridge コンソールにログオンします。左側のナビゲーションペインで、[イベントバス] をクリックします。
- 上部のナビゲーションバーで、リージョンを選択します。
- [イベントバス] ページで、イベントを発行するイベントバスを見つけ、イベントのパブリッシュ を 操作 列でクリックします。説明 EventBridge コンソールでは、カスタムイベントバスにのみイベントを発行できます。
- [カスタムイベントバスへのイベントの発行] パネルで、カスタムイベントソース ドロップダウンリストからカスタムイベントソースを選択し、イベント本体 コードエディターにイベントコンテンツを入力して、[OK] をクリックします。イベントパラメーターの詳細については、「概要」をご参照ください。
結果の確認
DingTalk チャットボットによってプッシュされたメッセージを DingTalk で表示します。