Skip to main content

はじめに

トリガーは Workflow アプリケーションでのみ利用可能です。
プラグイントリガーは、外部システムで特定のイベントが発生したときに自動的にワークフローを開始します。必要なのは、トリガープラグインを通じてこれらのイベントをサブスクライブし、対応するプラグイントリガーをワークフローに追加することだけです。 例えば、GitHub トリガープラグインをインストールしたとします。これは、Pull RequestPushIssue を含む、サブスクライブできる GitHub イベントのリストを提供します。Pull Request イベントをサブスクライブし、Pull Request プラグイントリガーをワークフローに追加すると、指定されたリポジトリで誰かがプルリクエストを開くたびに自動的に実行されます。

プラグイントリガーの追加と設定

  1. ワークフローキャンバスで右クリックし、ブロックを追加 > 始める を選択します。次に、ワークフローを開始するプラグイントリガーイベントを選択します。その他のトリガープラグインは Marketplace で検索できます。
    • 対象の外部システムに対応するトリガープラグインがない場合は、コミュニティにリクエストするか、自分で開発するか、代わりに Webhook トリガー を使用してください。
    • 1 つのワークフローに複数のプラグイントリガーを含めることができます。トリガーブランチが下流ノードを共有する場合、変数集約器 を追加して集約してください。
  2. 既存のサブスクリプションを選択するか、新しいサブスクリプションを作成します。トリガーがイベントを受信するにはサブスクリプションが必要です。
    プラグイン 配下のプラグイン詳細パネルから、特定のサブスクリプションを使用しているワークフローの数を確認できます。
  3. その他の必要な設定を行います。
プラグイントリガーの出力変数は、そのトリガープラグインによって定義されており、変更できません。

サブスクリプションの作成

サブスクリプションは、外部システムからのイベントをリッスンする Webhook です。各トリガープラグインはワークスペースごとに最大 10 個のサブスクリプションをサポートします。
Webhook を使用すると、あるシステムが別のシステムにリアルタイムでデータを送信できます。イベントが発生すると、ソースシステムはイベントの詳細を HTTP リクエストにパッケージ化し、宛先システムが提供する URL に送信します。
前提条件:コールバック URL のベースを設定するDify は TRIGGER_URL 環境変数とトリガープラグイン固有のパスを組み合わせて、各サブスクリプションのコールバック URL を生成します。デフォルトの http://localhost:5001 は外部システムから到達できないため、TRIGGER_URL を公開ドメインまたは IP アドレスに設定し、Dify を再起動してからサブスクリプションを作成してください。
Dify はサブスクリプションの作成方法を 2 つサポートしています。利用可能な方法はトリガープラグインの設計によって異なります。
  • 自動作成:サブスクライブするイベントを選択すると、Dify が外部システムで Webhook を自動的に作成します。Dify が代行するため、OAuth または API キーによる事前の認証が必要です。
  • 手動作成:Dify が提供するコールバック URL を使用して、外部システムで Webhook を自分で作成します。認証は不要です。
  1. OAuth 経由 > カスタム を選択します。
  2. 外部システムで、Dify が提供するコールバック URL を使用して OAuth アプリケーションを作成します。
  3. Dify に戻り、アプリケーションのクライアント ID とクライアントシークレットを入力してから、保存と承認 をクリックします。
    保存後、同じ認証情報を今後のサブスクリプションで再利用できます。
  4. サブスクリプション名を指定し、サブスクライブするイベントを選択し、その他の必要な設定を行います。
    利用可能なすべてのイベントをサブスクライブすることをお勧めします。トリガーはサブスクリプションでカバーされたイベントに対してのみ発火するため、幅広くサブスクライブしておけば、後から追加するトリガーで同じサブスクリプションを再利用できます。
  5. 作成 をクリックします。

プラグイントリガーをテストする

未公開のプラグイントリガーをテストするには、まず このステップ実行 をクリックするか、ワークフロー全体をテスト実行する必要があります。これによりトリガーがリスニング状態になり、外部イベントを監視できるようになります。そうしないと、イベントが発生してもトリガーはサブスクライブしたイベントをキャプチャしません。