TiDB Cloudとn8nを統合する

q

n8nは拡張可能なワークフロー自動化ツールです。2 フェアコード配布モデルにより、n8nは常にソースコードを公開し、セルフホストが可能になり、カスタム関数、ロジック、アプリを追加できるようになります。

このドキュメントでは、 TiDB Cloud Serverless クラスターを作成し、Hacker News RSS を収集して TiDB に保存し、ブリーフィング メールを送信するという自動ワークフローの構築方法を紹介します。

前提条件: TiDB Cloud APIキーを取得する

  1. TiDB Cloudダッシュボードにアクセスします。
  2. クリックをクリックし、左下隅にある[組織の設定]クリックします。
  3. 「API キー」タブをクリックします。
  4. 「API キーの作成」ボタンをクリックして、新しい API キーを作成します。
  5. 作成した API キーを n8n で後で使用するために保存します。

詳細についてはTiDB CloudAPI の概要参照してください。

ステップ1:n8nをインストールする

セルフホスティングn8nをインストールするには2つの方法があります。ご都合の良い方をお選びください。

  • npm
  • Docker
  1. ワークスペースにノード.jsインストールします。

  2. npxで n8n をダウンロードして起動します。

    npx n8n
  1. ワークスペースにドッカーインストールします。

  2. 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を制御するには、このノードを手動でインストールする必要があります。

  1. ローカルホスト:5678ページで、セルフホスティング n8n の所有者アカウントを作成します。
  2. [設定] > [コミュニティ ノード]に移動します。
  3. 「コミュニティ ノードのインストール」をクリックします。
  4. npm パッケージ名フィールドにn8n-nodes-tidb-cloud入力します。
  5. [インストール]をクリックします。

次に、ワークフロー> 検索バーでTiDB Cloudノードを検索し、ワークスペースにドラッグしてTiDB Cloudノードを使用できます。

ステップ3: ワークフローを構築する

このステップでは、 「実行」ボタンをクリックしたときに TiDB にデータを挿入する新しいワークフローを作成します。

この使用例のワークフローでは、次のノードが使用されます。

最終的なワークフローは次の画像のようになります。

img

(オプション) TiDB Cloud Serverless クラスターを作成する

TiDB Cloud Serverless クラスターをお持ちでない場合は、このノードを使用して作成できます。そうでない場合は、この操作をスキップしてください。

  1. ワークフローパネルに移動し、ワークフローの追加をクリックします。
  2. 新しいワークフロー ワークスペースで、右上隅の+をクリックし、 [すべてのフィールド] を選択します。
  3. TiDB Cloud検索し、ワークスペースにドラッグします。
  4. TiDB TiDB Cloud TiDB Cloud API キー) を入力します。
  5. プロジェクトリストでプロジェクトを選択します。
  6. 操作リストでCreate Serverless Cluster選択します。
  7. [クラスタ名]ボックスにクラスター名を入力します。
  8. 「リージョン」リストで地域を選択します。
  9. [パスワード]ボックスに、TiDB クラスターにログインするために使用するパスワードを入力します。
  10. ノードを実行するには、 「ノードの実行」をクリックします。

注記:

新しいTiDB Cloud Serverless クラスターを作成するには数秒かかります。

ワークフローを作成する

ワークフローのスターターとして手動トリガーを使用する

  1. ワークフローがまだない場合は、 「ワークフロー」パネルに移動し、 「最初から始める」をクリックします。そうでない場合は、この手順をスキップしてください。

  2. 右上の+をクリックしてschedule trigger検索します。

  3. 手動トリガーノードをワークスペースにドラッグし、ダブルクリックします。パラメータダイアログが表示されます。

  4. ルールを次のように設定します。

    • トリガー間隔: Days
    • トリガー間の日数1
    • トリガー時刻: 8am
    • トリガー時間0

このトリガーは、毎朝午前 8 時にワークフローを実行します。

データを挿入するためのテーブルを作成する

  1. 手動トリガー ノードの右側にある+をクリックします。

  2. TiDB Cloud検索してワークスペースに追加します。

  3. パラメータダイアログで、 TiDB Cloudノードの認証情報を入力します。認証情報はTiDB Cloud APIキーです。

  4. プロジェクトリストでプロジェクトを選択します。

  5. 操作リストでExecute SQL選択します。

  6. クラスターを選択します。リストに新しいクラスターが表示されない場合は、クラスターの作成が完了するまで数分お待ちください。

  7. 「ユーザー」リストでユーザーを選択します。TiDB TiDB Cloud は常にデフォルトのユーザーを作成するため、手動で作成する必要はありません。

  8. データベースボックスにtest入力します。

  9. データベースのパスワードを入力してください。

  10. 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));
  11. 実行ノードをクリックしてテーブルを作成します。

ハッカーニュースRSSを入手

  1. TiDB Cloudノードの右側にある+ をクリックします。
  2. RSS Read検索してワークスペースに追加します。
  3. URLボックスにhttps://hnrss.org/frontpage入力します。

TiDBにデータを挿入する

  1. RSS 読み取りノードの右側にある+ をクリックします。
  2. TiDB Cloud検索してワークスペースに追加します。
  3. 以前のTiDB Cloudノードに入力した資格情報を選択します。
  4. プロジェクトリストでプロジェクトを選択します。
  5. 操作リストでInsert選択します。
  6. クラスタユーザーデータベース、およびパスワードの各ボックスに、対応する値を入力します。
  7. テーブルボックスにテーブルhacker_news_briefing入力します。
  8. 「列」ボックスにcreator, title, link, pubdate, comments, content, guid, isodateと入力します。

ビルドメッセージ

  1. RSS フィード読み取りノードの右側にある+ をクリックします。

  2. code検索してワークスペースに追加します。

  3. Run Once for All Itemsモードを選択します。

  4. 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でメッセージを送信

  1. コード ノードの右側にある+ をクリックします。

  2. gmail検索してワークスペースに追加します。

  3. Gmailノードの認証情報を入力してください。詳細な手順については、 n8n ドキュメントを参照してください。

  4. リソースリストでMessage選択します。

  5. 操作リストでSend選択します。

  6. [宛先] ボックスにメールアドレスを入力します。

  7. [件名]ボックスにHacker News Briefingと入力します。

  8. [**電子メールの種類]**ボックスで、 HTMLを選択します。

  9. メッセージボックスで、 Expressionクリックし、 {{ $json["response"] }}入力します。

    注記:

    メッセージボックスの上にマウスを移動して、パターンを選択する必要があります。

ステップ4: ワークフローを実行する

ワークフローを構築した後、 「ワークフローの実行」をクリックしてテスト実行できます。

ワークフローが期待通りに実行されると、Hacker Newsのブリーフィングメールが届きます。これらのニュースコンテンツはTiDB Cloud Serverlessクラスターに記録されるため、失われる心配はありません。

ワークフローパネルでこのワークフローを有効化できるようになりました。このワークフローを使えば、Hacker Newsのトップページ記事を毎日取得できるようになります。

TiDB Cloudノードコア

サポートされている操作

TiDB Cloudノードは通常ノードとして機能し、次の 5 つの操作のみをサポートします。

  • サーバーレスクラスタの作成: TiDB Cloud Serverless クラスターを作成します。
  • 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モードでテーブル名を手動で入力できます。
  • : 入力アイテムのプロパティをカンマ区切りでリストしたもので、新しい行の列として使用されます。アイテムとは、あるノードから別のノードに送信されるデータです。ノードは、入力データの各アイテムに対してアクションを実行します。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回の操作で複数のSQL文を実行する場合は、 tidb_multi_statement_mode手動で有効にする必要があります。
  • 削除および更新操作では、キーとして1つのフィールドを指定する必要があります。例えば、 Delete Key idに設定され、これはDELETE FROM table WHERE id = ${item.id}実行するのと同じです。現在、削除および更新操作では、1つのキーの指定のみがサポートされています。
  • 挿入および更新操作の場合、フィールドにコンマ区切りのリストを指定する必要があり、フィールド名は入力項目のプロパティと同じである必要があります。

このページは役に立ちましたか?