FeiShuBot
このページでは、FeiShuBot データソースを作成する方法について説明します。このデータソースには FeiShu ボットの Webhook とメッセージテンプレートが保存され、通常はタスク失敗通知に使用されます。
ユースケース
- タスク実行が失敗したときに、FeiShu グループへ通知を送信する
- 複数のタスク間で同じボット設定とメッセージテンプレートを再利用する
- 通知エンドポイントとメッセージ形式を一元管理する
FeiShuBot を作成する
Data > Data Sources に移動し、Create Data Source をクリックします。
サービスタイプとして FeiShuBot を選択し、次のフィールドを入力します。
Test Connectivity をクリックして設定を検証します。テストが成功したら、OK をクリックしてデータソースを保存します。
使用方法
FeiShuBot は、SQL Task の ERROR_INTEGRATION プロパティとともに使用するか、コンソールのタスクフロー UI の Error Notification から参照できます。
SQL Task プロパティを設定する
Task の ERROR_INTEGRATION プロパティを設定します。次の例では、データソース名は test_1 です。
CREATE TASK my_daily_task
WAREHOUSE = 'compute_wh'
SCHEDULE = USING CRON '0 0 9 * * *' 'America/Los_Angeles'
COMMENT = 'Daily summary task'
ERROR_INTEGRATION = 'test_1'
AS
INSERT INTO summary_table SELECT * FROM source_table;
タスクフロー UI で設定する
作成ページまたは編集ページで、Error Notification を対応する FeiShuBot データソースに設定します。
Task Error テンプレートをカスタマイズする
デフォルトテンプレート:
**[ALERT] {{ .MessageType }} - {{ .TaskName }}**
---
taskId: {{ .TaskId }}
taskName: {{ .TaskName }}
tenantId: {{ .TenantId }}
Messages: {{ range .Messages }}
- runId: {{ .RunId }}
queryId: {{ .QueryId }}
error: {{ .ErrorKind }} ({{ .ErrorCode }})
message: {{ .ErrorMessage }} {{ end }}
---
{{ .Timestamp }}
受信されるメッセージは、次のようになります。
カスタムテンプレートでサポートされる内容:
- Markdown コンテンツ
- Golang テンプレート構文
使用可能な変数は次のとおりです。
type ErrorIntegrationPayload struct {
Version string `json:"version"`
MessageId string `json:"messageId"`
MessageType string `json:"messageType"`
Timestamp time.Time `json:"timestamp"`
TenantId string `json:"tenantId"`
TaskName string `json:"taskName"`
TaskId string `json:"taskId"`
RootTaskName string `json:"rootTaskName"`
RootTaskId string `json:"rootTaskId"`
Messages []*ErrorMessage `json:"messages"`
}
type ErrorMessage struct {
RunId string `json:"runId"`
ScheduledTime time.Time `json:"scheduledTime"`
QueryStartTime *time.Time `json:"queryStartTime"`
CompletedTime *time.Time `json:"completedTime"`
QueryId string `json:"queryId"`
ErrorKind string `json:"errorKind"`
ErrorCode string `json:"errorCode"`
ErrorMessage string `json:"errorMessage"`
}
注意事項
FeiShuBot は通知用途のデータソースです。これは、ビジネスデータを TiDB Cloud Lake にロードするためには使用されません。
