【n8n】2023-09-28リリース!新テンプレート言語「Tournament」導入【最新情報】

n8n icon n8n

n8nが新テンプレート言語「Tournament」を導入!開発体験と運用効率が大幅向上

【n8n】2023-09-28リリース!新テンプレート言語「Tournament」導入【最新情報】 - Data Management
Photo by Bluestonex on Unsplash

2023年9月28日、人気のワークフロー自動化ツールn8nが最新バージョンをリリースしました。今回のアップデートでは、特に新テンプレート言語「Tournament」の導入と、一部環境変数の廃止によるデータ管理の効率化が大きな注目点です。この変更は、n8nを利用する初心者からベテランエンジニアまで、すべてのユーザーの開発体験と運用効率を大きく向上させるでしょう。

主要な変更点と詳細解説

1. 新テンプレート言語「Tournament」の導入

概要・初心者向け説明

n8nでは、自動化フロー内で条件分岐やデータの加工を行う際に「式(Expression)」と呼ばれる機能を使います。これまでは「RiotTmpl」というテンプレート言語が使われていましたが、今回のアップデートでn8n独自の新しいテンプレート言語「Tournament」に置き換わりました。これにより、JavaScriptのアロー関数のような、より直感的でパワフルな書き方ができるようになり、複雑な処理も驚くほど簡潔に記述できるようになります。

技術的詳細

  • RiotTmplとは: n8nが以前採用していたテンプレートエンジンで、HTMLテンプレートやJavaScriptの式を埋め込むのに使用されていました。一般的なテンプレート構文に則っていましたが、特定の高度なデータ操作には限界がありました。
  • Tournamentとは: n8nが独自開発した新しいテンプレート言語です。RiotTmplと比較して、より表現力が高く、特にJavaScriptのアロー関数(例: (item) => item.value * 2)のようなモダンな記法をサポートします。これにより、開発者はより少ないコードで高度なロジックを実装できるようになり、配列の操作やオブジェクトの変換などが格段に容易になります。

具体的な活用例・メリット

活用例:

  • データ変換: 複数の数値データを合計する際、以前は冗長な記述が必要でしたが、Tournamentでは{{ $json.items.map(item => item.price * item.quantity).reduce((a, b) => a + b, 0) }}のように、JavaScriptの配列メソッドを直接利用して簡潔に合計値を計算できます。
  • 条件分岐: 特定のステータスに応じて異なる処理を行う場合、{{ $json.status === 'completed' ? '完了' : '処理中' }}といった三項演算子を直接使用でき、可読性が向上します。

メリット:

  • 開発効率の向上: より簡潔な記述で複雑なロジックを実装できるため、ワークフローの開発時間が短縮されます。
  • コードの可読性向上: アロー関数などのモダンな記法により、式が読みやすくなり、メンテナンスが容易になります。
  • 表現力の強化: 従来のRiotTmplでは難しかった高度なデータ操作や関数型プログラミング的なアプローチが可能になり、より柔軟なワークフロー構築が実現します。

機能フローダイアグラム

graph TD
    A[旧式] --> B[RiotTmpl]
    B --> C[複雑な記述]
    D[新式] --> E[Tournament]
    E --> F[簡潔な記述]

テンプレート言語比較表

項目 旧テンプレート言語 (RiotTmpl) 新テンプレート言語 (Tournament)
記法 従来のテンプレート構文 アロー関数などモダンなJS記法
表現力 限定的 高い(関数型プログラミング)
コード量 やや多め 簡潔
学習コスト 既存のテンプレート知識が必要 JavaScriptの知識が活かせる

2. 環境変数 N8N_BINARY_DATA_TTL と EXECUTIONS_DATA_PRUNE_TIMEOUT の廃止

概要・初心者向け説明

n8nは、ファイルなどのバイナリデータや、自動化フローの実行履歴を一時的に保存しています。以前は、これらのデータが自動的に削除されるまでの期間をそれぞれ「N8N_BINARY_DATA_TTL」と「EXECUTIONS_DATA_PRUNE_TIMEOUT」という環境変数で設定していました。今回のアップデートで、これらの環境変数は不要になりました。代わりに、実行履歴が削除されるタイミングで、関連するバイナリデータも一緒に削除されるように変更されたため、設定がシンプルになり、より効率的にデータが管理されるようになります。

技術的詳細

  • N8N_BINARY_DATA_TTLとは: バイナリデータ(例: ファイルアップロード、画像など)がn8nの内部ストレージに保持される期間(Time To Live)を設定する環境変数でした。この期間を過ぎるとデータが自動的に削除されていました。
  • EXECUTIONS_DATA_PRUNE_TIMEOUTとは: ワークフローの実行履歴(実行ログ)がn8nのデータベースに保持される期間を設定する環境変数でした。
  • 変更点: 従来のTTL(Time To Live)に基づくバイナリデータ削除システムから、実行履歴のプルーニング(整理・削除)と同時にバイナリデータも削除する方式へ変更されました。これにより、バイナリデータと実行履歴のライフサイクルが同期され、設定の簡素化とストレージ管理の効率化が図られます。管理者は個別のTTL設定を気にすることなく、一貫したデータクリーンアップが期待できます。

具体的な活用例・メリット

活用例:

  • 大量の画像処理やファイル転送を行うワークフローにおいて、古い実行履歴と共に不要なバイナリデータが自動的にクリーンアップされるため、ストレージ容量の圧迫を心配する必要が減ります。
  • 環境変数の設定ミスによるデータ保持期間の不整合が解消され、より堅牢な運用が可能になります。

メリット:

  • 運用負荷の軽減: データ削除に関する設定がシンプルになり、管理者の負担が減少します。
  • ストレージ効率の向上: 不要なバイナリデータが実行履歴と同期して削除されるため、ストレージの無駄遣いを抑制し、コスト削減にも繋がります。
  • 一貫性のあるデータ管理: 実行履歴と関連バイナリデータが常に一貫した状態で管理され、データの整合性が保たれます。

データクリーンアップフローダイアグラム

graph TD
    A[旧システム] --> B[TTL設定]
    B --> C[バイナリ削除]
    B --> D[実行履歴削除]
    E[新システム] --> F[実行履歴削除]
    F --> G[バイナリ削除]

影響と展望

今回のn8nのアップデートは、ノーコード/ローコード自動化ツールの進化を示す重要な一歩です。新テンプレート言語「Tournament」の導入は、開発者にとってより表現力豊かで効率的なワークフロー構築を可能にし、モダンな開発手法との親和性を高めます。これにより、n8nはより複雑なビジネスロジックやデータ処理にも対応できるようになり、適用範囲がさらに広がることが期待されます。

また、環境変数の廃止とデータ管理の簡素化は、運用面での負担を軽減し、より安定したサービス提供に貢献します。これは、特に大規模なシステムでn8nを利用している企業にとって大きなメリットとなるでしょう。今後もn8nが、ユーザーのフィードバックを取り入れながら、さらなる機能強化とパフォーマンス最適化を進め、より直感的でパワフルな自動化体験を提供してくれることに期待が高まります。

まとめ

今回のn8nの2023年9月28日リリースにおける主要な変更点は以下の通りです。

  • 新テンプレート言語「Tournament」の導入: 従来のRiotTmplからn8n独自開発のTournamentへ移行し、よりモダンで表現力豊かな記述が可能になりました。
  • アロー関数サポートで開発効率向上: JavaScriptのアロー関数のような記法が利用可能になり、複雑なデータ操作や条件式を簡潔に記述できるようになりました。
  • 環境変数廃止で運用シンプル化: N8N_BINARY_DATA_TTLEXECUTIONS_DATA_PRUNE_TIMEOUTが廃止され、データ管理の設定が簡素化されました。
  • ストレージ管理の効率化: バイナリデータが実行履歴のプルーニングと同期して削除されるようになり、ストレージの無駄を削減し、一貫性のあるデータ管理を実現します。
  • n8nの進化が加速: これらの変更により、n8nはより高度な自動化ニーズに対応し、開発者と運用者の双方にメリットをもたらすツールへと進化を続けています。

詳細については、公式リリースノートをご確認ください: https://docs.n8n.io/release-notes/

タイトルとURLをコピーしました