📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiDB Cloudとn8nを統合する



n8nは拡張可能なワークフロー自動化ツールです。FairCode配布モデルを採用しているため、n8nは常にソースコードが公開されており、セルフホストが可能で、独自の関数、ロジック、アプリケーションを追加できます。

このドキュメントでは、自動ワークフローの構築方法を紹介します。具体的には、 TiDB Cloud Starterインスタンスを作成し、Hacker NewsのRSSフィードを収集してTiDBに保存し、概要メールを送信します。

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

  1. TiDB Cloudコンソールでは、左上隅のコンボボックスを使用して、対象の組織に切り替えてください。
  2. 左側のナビゲーションペインで、 [組織設定] > [APIキー]をクリックします。
  3. APIキーのページで、 「APIキーを作成」をクリックします。
  4. APIキーの説明を入力し、 「次へ」をクリックしてください。
  5. 作成したAPIキーをコピーしてn8nで後で使用するようにし、 「完了」をクリックしてください。

詳細については、 TiDB Cloud APIの概要を参照してください。

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

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

    1. 作業スペースにNode.jsをインストールしてください。

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

      npx n8n
    1. ワークスペースにDockerをインストールします。

    2. dockerから n8n をダウンロードして起動します。

      docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n

    n8nを起動したら、 localhost:5678にアクセスしてn8nを試してみてください。

    ステップ2:n8nにTiDB Cloudノードをインストールする

    TiDB Cloudノードは、npmリポジトリではn8n-nodes-tidb-cloudという名前です。n8nでTiDB Cloudを制御するには、このノードを手動でインストールする必要があります。

    1. localhost:5678ページで、n8nをセルフホスティングするためのオーナーアカウントを作成します。
    2. 設定>コミュニティノードに移動してください。
    3. 「コミュニティノードをインストール」をクリックしてください。
    4. npmパッケージ名フィールドにn8n-nodes-tidb-cloudと入力します。
    5. 「インストール」をクリックしてください。

    その後、ワークフローの検索バーでTiDB Cloudノードを検索し、ワークスペースにドラッグすることでTiDB Cloudノードを使用できます。

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

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

    この使用例のワークフローでは、以下のノードを使用します。

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

    img

    (オプション) TiDB Cloud Starterインスタンスを作成する

    TiDB Cloud Starterインスタンスをお持ちでない場合は、このノードを使用してインスタンスを作成できます。そうでない場合は、この操作をスキップしても構いません。

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

    ワークフローを作成する

    ワークフローの開始点として手動トリガーを使用する

    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. TiDB Cloud Starterインスタンスを選択してください。リストに新しいインスタンスが表示されない場合は、インスタンスの作成が完了するまで数分お待ちください。

    7. ユーザー一覧からユーザーを選択してください。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. テーブルを作成するには、 「実行ノード」をクリックしてください。

    Hacker NewsのRSSフィードを入手する

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

    TiDBにデータを挿入する

    1. RSS Readノードの右側にある「+」をクリックしてください。
    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 Starterインスタンスにログとして記録されるため、紛失の心配はありません。

    これで、ワークフローパネルからこのワークフローを有効化できます。このワークフローを使用すると、Hacker Newsのトップページ記事を毎日取得できます。

    TiDB Cloudノードコア

    サポート対象のオペレーション

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

    • サーバーレスクラスタの作成: TiDB Cloud Starterインスタンスを作成します。
    • SQLの実行:TiDBでSQL文を実行します。
    • 削除:TiDB内の行を削除します。
    • Insert :TiDBに行を挿入します。
    • 更新: TiDB の行を更新します。

    フィールズ

    各種操作を実行するには、それぞれの必須項目を入力する必要があります。以下に、各操作に対応する項目の説明を示します。

      • TiDB Cloud API の認証情報: TiDB Cloud API キーのみをサポートします。 APIキーの作成方法については、 TiDB Cloud APIキーを取得するを参照してください。
      • プロジェクト: TiDB Cloudプロジェクト名。
      • 操作: このノードの操作。サポートされているすべての操作については、サポート対象のオペレーションを参照してください。
      • クラスタ: TiDB Cloud Starterインスタンスの名前を入力してください。
      • リージョン:リージョン名。TiDB Cloud Starterインスタンスをデプロイするリージョンを選択してください。通常は、アプリケーションのデプロイ先に最も近いリージョンを選択してください。
      • パスワード:rootパスワード。新しいTiDB Cloud Starterインスタンスのパスワードを設定してください。
      • TiDB Cloud API の認証情報: TiDB Cloud API キーのみをサポートします。 APIキーの作成方法については、 TiDB Cloud APIキーを取得するを参照してください。
      • プロジェクト: TiDB Cloudプロジェクト名。
      • 操作: このノードの操作。サポートされているすべての操作については、サポート対象のオペレーションを参照してください。
      • クラスタ: TiDB Cloud Starterインスタンスの名前。既存のインスタンスを1つ選択してください。
      • パスワード: TiDB Cloud Starterインスタンスのパスワード。
      • ユーザー: TiDB Cloud Starterインスタンスのユーザー名。
      • データベース:データベース名。
      • SQL :実行するSQL文。
      • TiDB Cloud API の認証情報: TiDB Cloud API キーのみをサポートします。 APIキーの作成方法については、 TiDB Cloud APIキーを取得するを参照してください。
      • プロジェクト: TiDB Cloudプロジェクト名。
      • 操作: このノードの操作。サポートされているすべての操作については、支援活動を参照してください。
      • クラスタ: TiDB Cloud Starterインスタンスの名前。既存のインスタンスを1つ選択してください。
      • パスワード: TiDB Cloud Starterインスタンスのパスワード。
      • ユーザー: TiDB Cloud Starterインスタンスのユーザー名。
      • データベース:データベース名。
      • テーブル:テーブル名。 From listモードを使用してテーブル名を選択するか、 Nameモードを使用してテーブル名を手動で入力できます。
      • 削除キー:データベース内のどの行を削除するかを決定するアイテムのプロパティ名。アイテムとは、あるノードから別のノードに送信されるデータのことです。ノードは、受信データの各アイテムに対してアクションを実行します。n8n のアイテムの詳細については、 n8nドキュメントを参照してください。
      • TiDB Cloud API の認証情報: TiDB Cloud API キーのみをサポートします。 APIキーの作成方法については、 TiDB Cloud APIキーを取得するを参照してください。
      • プロジェクト: TiDB Cloudプロジェクト名。
      • 操作: このノードの操作。サポートされているすべての操作については、支援活動を参照してください。
      • クラスタ: TiDB Cloud Starterインスタンスの名前。既存のインスタンスを1つ選択してください。
      • パスワード: TiDB Cloud Starterインスタンスのパスワード。
      • ユーザー: TiDB Cloud Starterインスタンスのユーザー名。
      • データベース:データベース名。
      • テーブル:テーブル名。 From listモードを使用してテーブル名を選択するか、 Nameモードを使用してテーブル名を手動で入力できます。
      • :入力項目のプロパティをカンマで区切ったリストで、新しい行の列として使用されます。項目とは、あるノードから別のノードに送信されるデータのことです。ノードは、受信データの各項目に対してアクションを実行します。n8n の項目に関する詳細は、 n8nドキュメントを参照してください。
      • TiDB Cloud API の認証情報: TiDB Cloud API キーのみをサポートします。 APIキーの作成方法については、 TiDB Cloud APIキーを取得するを参照してください。
      • プロジェクト: TiDB Cloudプロジェクト名。
      • 操作: このノードの操作。サポートされているすべての操作については、支援活動を参照してください。
      • クラスタ: TiDB Cloud Starterインスタンスの名前。既存のインスタンスを1つ選択してください。
      • パスワード: TiDB Cloud Starterインスタンスのパスワード。
      • ユーザー: TiDB Cloud Starterインスタンスのユーザー名。
      • データベース:データベース名。
      • テーブル:テーブル名。 From listモードを使用してテーブル名を選択するか、 Nameモードを使用してテーブル名を手動で入力できます。
      • 更新キー:データベース内のどの行を更新するかを決定するアイテムのプロパティ名。アイテムとは、あるノードから別のノードに送信されるデータのことです。ノードは、受信データの各アイテムに対してアクションを実行します。n8n のアイテムの詳細については、 n8nドキュメントを参照してください。
      • :入力項目のプロパティをカンマで区切ったリスト。更新対象の行の列として使用されます。

      制限事項

      • 通常、 SQL実行操作では1つのSQLステートメントしか実行できません。1つの操作で複数のステートメントを実行する場合は、 tidb_multi_statement_mode手動で有効にする必要があります。
      • 削除および更新操作では、キーとして1つのフィールドを指定する必要があります。たとえば、 Delete Keyidに設定すると、 DELETE FROM table WHERE id = ${item.id}を実行するのと同等になります。現在、削除および更新操作では、キーを1つだけ指定できます。
      • 挿入および更新操作の場合、フィールドにカンマ区切りのリストを指定する必要があり、フィールド名は入力項目のプロパティ名と同じでなければなりません。

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