📣
TiDB Cloud Essential はパブリックプレビュー中です。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiDB Cloudとn8nを統合する



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

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

注記:

このドキュメントの手順は、 TiDB Cloud Starterインスタンスに加えて、 TiDB Cloud Essentialインスタンスでも適用できます。

前提条件: 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. ワークスペースにドッカーをインストールします。

    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. ノードを実行するには、 「ノードを実行」をクリックしてください。

    注記:

    新しいTiDB Cloud Starterインスタンスを作成するには、数秒かかります。

    ワークフローを作成する

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

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

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