すべてのプロダクト
Search
ドキュメントセンター

:SSH ノード

最終更新日:Oct 28, 2025

SSH ノードは、DataWorks の特定の SSH データソースに基づいて作成および使用して、データソースに接続されているホストにリモートアクセスし、ホスト上で実行されているスクリプトをトリガーできます。このトピックでは、SSH ノードの作成方法と使用方法について説明します。

ノードの概要

DataWorks では、SSH データソースを追加し、ホストのアクセス情報を構成して、ホストへのリモートアクセスを実装できます。その後、SSH ノードを使用して、データソースに基づいてホストにリモートアクセスできます。たとえば、このメソッドを使用して、DataWorks から Elastic Compute Service (ECS) インスタンスにリモートアクセスし、ECS インスタンス上のスクリプトの定期的なスケジューリングをトリガーできます。

前提条件

  • 使用する RAM ユーザーがワークスペースに追加されていること。

    RAM ユーザーを使用してタスクを開発する場合は、RAM ユーザーをメンバーとしてワークスペースに追加し、RAM ユーザーに [開発] または [ワークスペース管理者] ロールを割り当てる必要があります。ワークスペース管理者ロールには必要以上の権限があります。ワークスペース管理者ロールを割り当てるときは注意してください。メンバーの追加方法とメンバーへのロールの割り当て方法の詳細については、「ワークスペースにメンバーを追加する」をご参照ください。

  • サーバーレスリソースグループがワークスペースに関連付けられていること。詳細については、「サーバーレスリソースグループの使用」ディレクトリのトピックをご参照ください。

  • ノードでタスクを開発する前に SSH ノードが作成されていること。詳細については、「タスクノードの作成」をご参照ください。

  • SSH データソースが追加されていること。

    SSH ノードで SSH タスクを開発して定期的にスケジュールする前に、SSH サーバーにリモートアクセスするために SSH データソースを追加する必要があります。データソースの追加方法については、「SSH データソース」をご参照ください。

    説明

    SSH ノードを使用してタスクを開発できるのは、Java Database Connectivity (JDBC) 接続文字列モードで DataWorks に追加された SSH データソースのみです。さらに、タスクの実行失敗を防ぐために、データソースが目的のリソースグループに接続されていることを確認する必要があります。

制限事項

SSH ノードで実行されるコードのサイズは 128 KB を超えることはできません。

注意事項

  • SSH ノードを使用してリモートホストでプロセスが開始されると、タスクのタイムアウトなどの例外が原因で SSH ノードのタスクが終了した場合でも、基盤となるリモートホストでの操作は影響を受けません。この場合、DataWorks はリモートホストにプロセス終了コマンドを発行しません。

  • SSH ノードは標準のシェル構文をサポートしますが、対話型構文はサポートしません。

  • SSH ノードを使用して ECS インスタンス上のスクリプトの実行をトリガーすると、ECS インスタンス上に一時ファイルが生成されます。ECS インスタンスのストレージ容量と最大ファイル数がビジネス要件を満たしていることを確認してください。

  • SSH ノードの障害を引き起こす可能性があるため、同じファイルで複数のタスクを同時に実行しないでください。

ステップ 1: SSH ノードを使用してタスクを開発する

(オプション) SSH データソースの選択

ワークスペースに複数の SSH データソースが追加されている場合は、ビジネス要件に基づいて、ノードの構成タブの上部にある [データソースの選択] ドロップダウンリストから 1 つを選択する必要があります。ワークスペースに SSH データソースが 1 つしか追加されていない場合は、その SSH データソースがタスクの開発に使用されます。

説明

SSH ノードを使用してタスクを開発できるのは、JDBC 接続文字列モードで DataWorks に追加された SSH データソースのみです。さらに、タスクの実行失敗を防ぐために、データソースが目的のリソースグループに接続されていることを確認する必要があります。

コードの開発: 簡単な例

SSH ノードの構成タブのコードエディタで、タスクコードを記述します。この例では、次のコードを使用します。

# 1. 環境を準備します。
# リモートホストで実行するファイルを見つけます。たとえば、nihao.sh ファイルはリモートホストの tmp ディレクトリに保存されます。
# テストを容易にするために、SSH ノードで次のコマンドを実行して nihao.sh ファイルを作成できます: 
echo "echo nihao,dataworks" >/tmp/nihao.sh
# 2. SSH ノードを使用して、リモートホスト上のファイルの実行をトリガーします。
# DataWorks の SSH ノードを使用して、nihao.sh ファイルの実行をトリガーします。
sh /tmp/nihao.sh

コードの開発: スケジューリングパラメーターの使用

DataWorks は、定期的なスケジューリングシナリオでのスケジューリングパラメーターの構成に基づいて、タスクのコード内で値が動的に置き換えられるスケジューリングパラメーターを提供します。タスクコードで ${Variable} 形式の変数を定義し、[プロパティ] タブの [スケジューリングパラメーター] セクションで変数に値を割り当てることができます。スケジューリングパラメーターの構成方法とサポートされているスケジューリングパラメーターのフォーマットの詳細については、「スケジューリング構成」をご参照ください。

以下に、SSH ノードでスケジューリングパラメーターを使用する方法の例を示します。

# 要件: SSH ノードの実行時間を、/tmp ディレクトリに保存されている sshnode.log ファイルに毎日書き込みます。
# 実装: sshnode.log ファイルで ${myDate} 変数を使用し、myDate 変数に値として $[yyyy-mm-dd hh24:mi:ss] を割り当てます。
echo ${myDate} >/tmp/sshnode.log
cat /tmp/sshnode.log

SSH ノードに基づいてタスクを開発した後、ノードのスケジューリングプロパティを構成して、システムがタスクを定期的にスケジュールできるようにします。詳細については、「スケジューリング構成」をご参照ください。

ステップ 2: SSH ノードのデプロイと O&M 操作の実行

  1. ノードコードとスケジューリングプロパティが構成されたら、ノードを本番環境にデプロイします。詳細については、「ノードのデプロイ」をご参照ください。

  2. デプロイメントが完了したら、[オペレーションセンター][自動トリガーノード] ページに移動して、デプロイされたノードを表示し、ノードで O&M 操作を実行します。システムは、構成したスケジューリングプロパティに基づいてノードを定期的に実行します。詳細については、「オペレーションセンター入門」をご参照ください。