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

DataWorks:SSH ノード

最終更新日:Oct 29, 2025

DataWorks の Secure Shell (SSH) ノードを使用すると、SSH データソースを指定して、関連付けられたホストにリモートアクセスし、スクリプトを実行できます。たとえば、DataWorks から Elastic Compute Service (ECS) インスタンスにリモートアクセスし、定期的なスケジュールでスクリプトを実行できます。このトピックでは、SSH ノードを使用してタスクを開発する方法について説明します。

使用上の注意

  • SSH ノードを使用してリモートホストでプロセスを開始した場合、タイムアウトなどが原因で SSH ノードタスクが予期せず終了しても、リモートホスト上のプロセスは影響を受けません。DataWorks は、プロセスを停止するためのコマンドをリモートホストに送信しません。

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

  • SSH ノードを使用して ECS インスタンス上でスクリプトをリモート実行すると、インスタンス上に一時ファイルが作成されます。ECS インスタンスに十分なディスク容量があり、最大ファイル数の制限が要件を満たしていることを確認してください。

  • 複数のタスクが同時に同じファイルを操作しないようにしてください。これにより、SSH ノードでエラーが発生する可能性があります。

前提条件

  • ワークフローが作成されていること。

    さまざまなタイプのコンピュートエンジンでの開発操作は、DataStudio のワークフローに基づいて実行されます。したがって、ノードを作成する前に、ワークフローを作成する必要があります。詳細については、「ワークフローの作成」をご参照ください。

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

    SSH サーバーにリモートアクセスするには、SSH データソースを作成する必要があります。これにより、SSH ノードで定期的な SSH タスクを開発およびスケジュールできます。詳細については、「SSH データソース」をご参照ください。

    説明

    SSH ノードは、Java Database Connectivity (JDBC) 接続文字列を使用して作成された SSH データソースのみをサポートします。タスクの失敗を防ぐために、データソースがネットワーク経由でリソースグループに接続できることを確認してください。

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

制限事項

  • Serverless リソースグループで SSH タスクを実行できます。詳細については、「Serverless リソースグループの使用」をご参照ください。

  • サポートされているリージョン: 中国 (杭州)、中国 (上海)、中国 (北京)、中国 (深圳)、中国 (香港)、日本 (東京)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、ドイツ (フランクフルト)、英国 (ロンドン)、米国 (シリコンバレー)、および米国 (バージニア)。

  • SSH ノードで実行できるコードの最大長は 128 KB です。

ステップ 1: SSH ノードの作成

  1. DataStudio ページに移動します。

    DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、[データ開発と O&M] > [データ開発] を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発へ] をクリックします。

  2. 対象のビジネスフローを右クリックし、[ノードの作成] > [SSH] を選択します。

  3. [ノードの作成] ダイアログボックスで、ノードの [名前] を入力し、[OK] をクリックします。ノードが作成されます。これで、ノードでタスクを開発および構成できます。

ステップ 2: SSH タスクの開発

(任意) SSH データソースの選択

ワークスペースに複数の SSH データソースを作成した場合は、SSH ノードの編集ページでデータソースを選択する必要があります。SSH データソースを 1 つだけ作成した場合は、それがデフォルトで使用されます。

説明

SSH ノードは、Java Database Connectivity (JDBC) 接続文字列を使用して作成された SSH データソースのみをサポートします。タスクの失敗を防ぐために、データソースがネットワーク経由でリソースグループに接続できることを確認してください。

コードの開発: 簡単な例

SSH ノードのコードエディタでタスクコードを記述します。次のコードは一例です。

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

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

DataWorks は、定期的なスケジューリングシナリオで動的リクエストパラメーターを使用できる [スケジューリングパラメーター] を提供します。ノードタスクコードで ${variable_name} 形式を使用して変数を定義し、ノード編集ページの右側のナビゲーションウィンドウの [スケジュール] > [パラメーター] セクションで変数に値を割り当てることができます。スケジューリングパラメーターでサポートされているフォーマットと構成の詳細については、「サポートされているスケジューリングパラメーターのフォーマット」および「スケジューリングパラメーターの構成と使用」をご参照ください。

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

# 要件: SSH ノードの実行時間を毎日 /tmp/sshnode.log ファイルに書き込みます。
# 実装: sshnode.log ファイルに ${myDate} 変数を使用し、myDate 変数に値 $[yyyy-mm-dd hh24:mi:ss] を割り当てます。これにより、SSH ノードの実行時間がファイルに書き込まれます。
echo ${myDate} >/tmp/sshnode.log
cat /tmp/sshnode.log

ステップ 3: タスクのスケジューリングプロパティの構成

システムにノード上のタスクを定期的に実行させたい場合は、ノードの構成タブの右側のナビゲーションウィンドウで [プロパティ] をクリックして、ビジネス要件に基づいてタスクのスケジューリングプロパティを構成できます。詳細については、「概要」をご参照ください。

説明

タスクをコミットする前に、[プロパティ] タブで [再実行] および [親ノード] パラメーターを構成する必要があります。

ステップ 4: タスクコードのデバッグ

次の操作を実行して、ビジネス要件に基づいてタスクが期待どおりに構成されているかどうかを確認できます。

  1. 任意。リソースグループを選択し、変数にカスタムパラメーターを割り当てます。

    • ノードの構成タブの上部ツールバーにある 高级运行 アイコンをクリックします。[パラメーター] ダイアログボックスで、タスクコードのデバッグと実行に使用するスケジューリング用のリソースグループを選択します。

    • タスクコードでスケジューリングパラメーターを使用する場合は、デバッグのためにタスクコードの値としてスケジューリングパラメーターを変数に割り当てます。スケジューリングパラメーターの値の割り当てロジックの詳細については、「デバッグ手順」をご参照ください。

  2. タスクコードを保存して実行します。

    上部のツールバーで 保存 アイコンをクリックしてタスクコードを保存します。次に、运行 アイコンをクリックしてタスクコードを実行します。

  3. 任意。スモークテストを実行します。

    ノードをコミットするとき、またはノードをコミットした後に、開発環境でノードのスモークテストを実行して、ノードが期待どおりに実行されるかどうかを確認できます。詳細については、「スモークテストの実行」をご参照ください。

ステップ 5: タスクのコミットとデプロイ

ノード上のタスクが構成されたら、タスクをコミットしてデプロイする必要があります。タスクをコミットしてデプロイすると、システムはスケジューリング構成に基づいてタスクを定期的に実行します。

  1. 上部のツールバーにある 保存 アイコンをクリックしてタスクを保存します。

  2. 上部のツールバーにある 提交 アイコンをクリックして、ノード上のタスクをコミットします。

    [送信] ダイアログボックスで、[変更の説明] パラメーターを構成します。次に、ビジネス要件に基づいて、タスクをコミットした後にタスクコードをレビューするかどうかを決定します。

    説明
    • タスクをコミットする前に、[プロパティ] タブで [再実行] および [親ノード] パラメーターを構成する必要があります。

    • コードレビュー機能を使用して、タスクのコード品質を確保し、無効なタスクコードによるタスク実行エラーを防ぐことができます。コードレビュー機能を有効にすると、コミットされたノードコードは、コードレビューに合格した後にのみデプロイできます。詳細については、「コードレビュー」をご参照ください。

標準モードのワークスペースを使用している場合は、タスクをコミットした後に本番環境にタスクをデプロイする必要があります。ノードにタスクをデプロイするには、ノードの構成タブの右上隅にある [デプロイ] をクリックします。詳細については、「タスクのデプロイ」をご参照ください。

その他の操作

タスクの O&M: タスクをコミットしてデプロイすると、スケジューリング構成に基づいてタスクが定期的に実行されます。対応するノードの構成タブの右上隅にある [オペレーションセンター] をクリックしてオペレーションセンターに移動し、タスクのスケジューリングステータスを表示できます。詳細については、「定期タスクの表示と管理」をご参照ください。

リファレンス

SSH ノードの負荷分散と高可用性を実装する方法の詳細については、「SSH ノードの負荷分散と高可用性の実装」をご参照ください。