TiDB Cloudをn8nと統合する
いいえは拡張可能なワークフロー自動化ツールです。2 配布モデルでは、n8n は常にソース コードを表示でき、セルフホストがフェアコードで、カスタム関数、ロジック、アプリを追加できます。
このドキュメントでは、 TiDB Cloud Serverless クラスターを作成し、Hacker News RSS を収集して TiDB に保存し、ブリーフィング メールを送信するという自動ワークフローの構築方法を紹介します。
前提条件: TiDB Cloud APIキーを取得する
- TiDB Cloudダッシュボードにアクセスします。
- クリック
をクリックし、左下隅にある[組織の設定]をクリックします。 - 「API キー」タブをクリックします。
- 新しい API キーを作成するには、 「API キーの作成」ボタンをクリックします。
- 作成した API キーを n8n で後で使用するために保存します。
詳細についてはTiDB CloudAPI の概要参照してください。
ステップ1: n8nをインストールする
セルフホスティング n8n をインストールするには 2 つの方法があります。自分に合った方法を選択してください。
- npm
- Docker
ワークスペースにノードインストールします。
npx
で n8n をダウンロードして起動します。npx n8n
ワークスペースにドッカーインストールします。
docker
で n8n をダウンロードして起動します。docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n
n8n を起動したら、 ローカルホスト:5678アクセスして n8n を試すことができます。
ステップ2: n8nにTiDB Cloudノードをインストールする
TiDB Cloudノードは、npm リポジトリではn8n-nodes-tidb-cloud
名前です。n8n でTiDB Cloudを制御するには、このノードを手動でインストールする必要があります。
- ローカルホスト:5678ページで、セルフホスティング n8n の所有者アカウントを作成します。
- [設定] > [コミュニティ ノード]に移動します。
- 「コミュニティ ノードのインストール」をクリックします。
- npm パッケージ名フィールドに
n8n-nodes-tidb-cloud
と入力します。 - 「インストール」をクリックします。
次に、ワークフロー> 検索バーでTiDB Cloudノードを検索し、ワークスペースにドラッグしてTiDB Cloudノードを使用できます。
ステップ3: ワークフローを構築する
このステップでは、 「実行」ボタンをクリックしたときに TiDB にデータを挿入する新しいワークフローを作成します。
この使用例のワークフローでは、次のノードを使用します。
最終的なワークフローは次の画像のようになります。
(オプション) TiDB Cloud Serverless クラスターを作成する
TiDB Cloud Serverless クラスターがない場合は、このノードを使用して作成できます。それ以外の場合は、この操作をスキップしてください。
- ワークフローパネルに移動し、ワークフローの追加をクリックします。
- 新しいワークフロー ワークスペースで、右上隅の+をクリックし、 [すべてのフィールド] を選択します。
TiDB Cloud
検索し、ワークスペースにドラッグします。- TiDB Cloudノードの資格情報 ( TiDB Cloud API キー) を入力します。
- プロジェクトリストで、プロジェクトを選択します。
- 操作リストで
Create Serverless Cluster
選択します。 - [クラスタ名]ボックスにクラスター名を入力します。
- 「リージョン」リストで地域を選択します。
- [パスワード]ボックスに、TiDB クラスターにログインするために使用するパスワードを入力します。
- ノードを実行するには、 「ノードの実行」をクリックします。
注記:
新しいTiDB Cloud Serverless クラスターを作成するには数秒かかります。
ワークフローを作成する
ワークフローのスターターとして手動トリガーを使用する
ワークフローがまだない場合は、 「ワークフロー」パネルに移動して、 「最初から開始」をクリックします。それ以外の場合は、この手順をスキップします。
右上の+をクリックして
schedule trigger
を検索します。手動トリガー ノードをワークスペースにドラッグし、ノードをダブルクリックします。 [パラメータ]ダイアログが表示されます。
ルールを次のように設定します。
- トリガー間隔:
Days
- トリガー間の日数:
1
- トリガー時間:
8am
- トリガー時間:
0
分
- トリガー間隔:
このトリガーは、毎朝午前 8 時にワークフローを実行します。
データを挿入するために使用するテーブルを作成する
手動トリガー ノードの右側にある+ をクリックします。
TiDB Cloud
検索してワークスペースに追加します。パラメータダイアログで、 TiDB Cloudノードの資格情報を入力します。資格情報は、 TiDB Cloud API キーです。
プロジェクトリストで、プロジェクトを選択します。
操作リストで
Execute SQL
選択します。クラスターを選択します。リストに新しいクラスターが表示されない場合は、クラスターの作成が完了するまで数分待つ必要があります。
[ユーザー] リストで、ユーザーを選択します。TiDB TiDB Cloud常にデフォルトのユーザーが作成されるため、手動で作成する必要はありません。
データベースボックスに
test
と入力します。データベースのパスワードを入力してください。
SQLボックスに次の SQL を入力します。
CREATE TABLE IF NOT EXISTS hacker_news_briefing (creator VARCHAR (200), title TEXT, link VARCHAR(200), pubdate VARCHAR(200), comments VARCHAR(200), content TEXT, guid VARCHAR (200), isodate VARCHAR(200));実行ノードをクリックしてテーブルを作成します。
ハッカーニュースRSSを入手
- TiDB Cloudノードの右側にある+ をクリックします。
RSS Read
検索してワークスペースに追加します。- URLボックスに
https://hnrss.org/frontpage
と入力します。
TiDBにデータを挿入する
- RSS 読み取りノードの右側にある+ をクリックします。
TiDB Cloud
検索してワークスペースに追加します。- 前のTiDB Cloudノードに入力した資格情報を選択します。
- プロジェクトリストで、プロジェクトを選択します。
- 操作リストで
Insert
選択します。 - クラスタ、ユーザー、データベース、およびパスワードの各ボックスに、対応する値を入力します。
- テーブルボックスにテーブル
hacker_news_briefing
を入力します。 - 「列」ボックスに
creator, title, link, pubdate, comments, content, guid, isodate
と入力します。
ビルドメッセージ
RSS フィード読み取りノードの右側にある+ をクリックします。
code
検索してワークスペースに追加します。Run Once for All Items
モードを選択します。JavaScriptボックスに次のコードをコピーして貼り付けます。
let message = ""; // Loop the input items for (item of items) { message += ` <h3>${item.json.title}</h3> <br> ${item.json.content} <br> ` } let response = ` <!DOCTYPE html> <html> <head> <title>Hacker News Briefing</title> </head> <body> ${message} </body> </html> ` // Return our message return [{json: {response}}];
Gmailでメッセージを送信
コード ノードの右側にある+ をクリックします。
gmail
検索してワークスペースに追加します。Gmail ノードの資格情報を入力します。詳細な手順については、 n8n ドキュメントを参照してください。
リソースリストで
Message
選択します。操作リストで
Send
選択します。[宛先]ボックスにメールアドレスを入力します。
[件名]ボックスに
Hacker News Briefing
と入力します。[電子メールの種類]ボックスで
HTML
を選択します。メッセージボックスで
Expression
クリックし、{{ $json["response"] }}
と入力します。注記:
メッセージボックスの上にマウスを移動し、式パターンを選択する必要があります。
ステップ4: ワークフローを実行する
ワークフローを構築した後、 「ワークフローの実行」をクリックしてテスト実行できます。
ワークフローが期待どおりに実行されると、Hacker News のブリーフィング メールが届きます。これらのニュース コンテンツはTiDB Cloud Serverless クラスターに記録されるため、失われる心配はありません。
これで、ワークフローパネルでこのワークフローをアクティブ化できます。このワークフローは、Hacker News のトップページの記事を毎日取得するのに役立ちます。
TiDB Cloudノードコア
サポートされている操作
TiDB Cloudノードは通常のノードとして機能し、次の 5 つの操作のみをサポートします。
- サーバーレスクラスタの作成: TiDB Cloudサーバーレス クラスターを作成します。
- SQL の実行: TiDB で SQL ステートメントを実行します。
- 削除: TiDB 内の行を削除します。
- 挿入: TiDB に行を挿入します。
- 更新: TiDB 内の行を更新します。
フィールド
異なる操作を使用するには、異なる必須フィールドに入力する必要があります。次に、対応する操作のそれぞれのフィールドの説明を示します。
- Create Serverless Cluster
- Execute SQL
- Delete
- Insert
- Update
- TiDB Cloud API の認証情報: TiDB Cloud API キーのみをサポートします。API キーの作成方法については、 TiDB CloudAPIキーを取得するを参照してください。
- プロジェクト: TiDB Cloudプロジェクト名。
- 操作: このノードの操作。サポートされているすべての操作については、 サポートされている操作を参照してください。
- クラスタ: TiDB Cloudクラスター名。新しいクラスターの名前を入力します。
- リージョン: リージョン名。クラスターをデプロイするリージョンを選択します。通常は、アプリケーションのデプロイに最も近いリージョンを選択します。
- パスワード: ルート パスワード。新しいクラスターのパスワードを設定します。
- TiDB Cloud API の認証情報: TiDB Cloud API キーのみをサポートします。API キーの作成方法については、 TiDB CloudAPIキーを取得するを参照してください。
- プロジェクト: TiDB Cloudプロジェクト名。
- 操作: このノードの操作。サポートされているすべての操作については、 サポートされている操作を参照してください。
- クラスタ: TiDB Cloudクラスター名。既存のクラスターを 1 つ選択する必要があります。
- パスワード: TiDB Cloudクラスターのパスワード。
- ユーザー: TiDB Cloudクラスターのユーザー名。
- データベース: データベース名。
- SQL : 実行される SQL ステートメント。
- TiDB Cloud API の認証情報: TiDB Cloud API キーのみをサポートします。API キーの作成方法については、 TiDB CloudAPIキーを取得するを参照してください。
- プロジェクト: TiDB Cloudプロジェクト名。
- 操作: このノードの操作。サポートされているすべての操作については、 サポートオペレーションを参照してください。
- クラスタ: TiDB Cloudクラスター名。既存のクラスターを 1 つ選択する必要があります。
- パスワード: TiDB Cloudクラスターのパスワード。
- ユーザー: TiDB Cloudクラスターのユーザー名。
- データベース: データベース名。
- テーブル: テーブル名。2 モードを使用して
From list
つを選択するか、Name
モードを使用してテーブル名を手動で入力できます。 - 削除キー: データベース内のどの行を削除するかを決定するアイテムのプロパティの名前。アイテムとは、あるノードから別のノードに送信されるデータです。ノードは、受信データの各アイテムに対してアクションを実行します。n8n のアイテムの詳細については、 n8n ドキュメントを参照してください。
- TiDB Cloud API の認証情報: TiDB Cloud API キーのみをサポートします。API キーの作成方法については、 TiDB CloudAPIキーを取得するを参照してください。
- プロジェクト: TiDB Cloudプロジェクト名。
- 操作: このノードの操作。サポートされているすべての操作については、 サポートオペレーションを参照してください。
- クラスタ: TiDB Cloudクラスター名。既存のクラスターを 1 つ選択する必要があります。
- パスワード: TiDB Cloudクラスターのパスワード。
- ユーザー: TiDB Cloudクラスターのユーザー名。
- データベース: データベース名。
- テーブル: テーブル名。2 モードを使用して
From list
つを選択するか、Name
モードを使用してテーブル名を手動で入力できます。 - 列: 入力項目のプロパティのコンマ区切りリスト。新しい行の列として使用されます。項目は、1 つのノードから別のノードに送信されるデータです。ノードは、受信データの各項目に対してアクションを実行します。n8n の項目の詳細については、 n8n ドキュメントを参照してください。
- TiDB Cloud API の認証情報: TiDB Cloud API キーのみをサポートします。API キーの作成方法については、 TiDB CloudAPIキーを取得するを参照してください。
- プロジェクト: TiDB Cloudプロジェクト名。
- 操作: このノードの操作。サポートされているすべての操作については、 サポートオペレーションを参照してください。
- クラスタ: TiDB Cloudクラスター名。既存のクラスターを 1 つ選択する必要があります。
- パスワード: TiDB Cloudクラスターのパスワード。
- ユーザー: TiDB Cloudクラスターのユーザー名。
- データベース: データベース名。
- テーブル: テーブル名。2 モードを使用して
From list
つを選択するか、Name
モードを使用してテーブル名を手動で入力できます。 - 更新キー: データベース内のどの行を更新するかを決定するアイテムのプロパティの名前。アイテムとは、あるノードから別のノードに送信されるデータです。ノードは、受信データの各アイテムに対してアクションを実行します。n8n のアイテムの詳細については、 n8n ドキュメントを参照してください。
- 列: 更新する行の列として使用される、入力項目のプロパティのカンマ区切りリスト。
制限事項
- 通常、 SQL 実行操作では 1 つの SQL ステートメントのみが許可されます。1 回の操作で複数のステートメントを実行する場合は、
tidb_multi_statement_mode
手動で有効にする必要があります。 - 削除および更新操作では、キーとして 1 つのフィールドを指定する必要があります。たとえば、
Delete Key
はid
に設定され、これはDELETE FROM table WHERE id = ${item.id}
を実行するのと同じです。現在、削除および更新操作では 1 つのキーの指定のみがサポートされています。 - 挿入および更新操作の場合、列フィールドにコンマ区切りのリストを指定する必要があり、フィールド名は入力項目のプロパティと同じである必要があります。