SSH ノードは、指定された SSH データソースを介してリモートホストに接続し、そのホスト上で定期スケジュールに従ってシェルスクリプトを実行します。これを使用すると、手動でログインすることなく、DataWorks のワークフローから直接、Elastic Compute Service (ECS) インスタンスなどのリモートサーバー上のスクリプトをトリガーできます。
前提条件
開始する前に、以下をご確認ください。
-
ワークスペースに追加された RAM ユーザーで、開発者 または ワークスペース管理者 のロールが割り当てられています。ワークスペース管理者のロールには、必要な権限よりも多くの権限が含まれています。ワークスペース管理者のロールを割り当てる際は注意してください。詳しくは、「ワークスペースメンバーを追加してロールを割り当てる」をご参照ください。
-
ワークスペースに関連付けられたサーバーレスリソースグループがあること。詳細については、「サーバーレスリソースグループの使用」をご参照ください。
-
SSH ノードが作成されていること。詳細については、「定期タスクの作成」をご参照ください。
-
Java Database Connectivity (JDBC) 接続文字列モードを使用して SSH データソースが作成され、正しいリソースグループに接続されていること。詳細については、「SSH データソースの作成」をご参照ください。
制限事項
| 制限事項 | 詳細 |
|---|---|
| コードサイズ | SSH ノード内のスクリプトは 128 KB を超えることはできません。 |
| シェル構文 | 標準のシェル構文のみがサポートされています。対話型のシェル構文はサポートされていません。 |
| データソースモード | JDBC 接続文字列モードを使用して作成された SSH データソースのみがサポートされています。 |
注意事項
孤立したリモートプロセス: SSH ノードタスクがタイムアウトなどで予期せず終了した場合でも、リモートホスト上のプロセスは実行を継続します。DataWorks はリモートホストに終了コマンドを送信しません。
一時ファイル: ECS インスタンスでスクリプトを実行すると、そのインスタンス上に一時ファイルが生成されます。インスタンスに十分なディスク領域があり、ファイル数がインスタンスの制限内に収まっていることを確認してください。
ファイルの競合: 同じファイルを同時に操作する複数のタスクを実行しないでください。同じファイルへの同時書き込みは、SSH ノードの例外を引き起こす可能性があります。
ステップ 1:SSH ノードの開発
SSH データソースの選択
ワークスペースに複数の SSH データソースがある場合は、SSH ノードの設定タブで使用したいデータソースを選択します。SSH データソースが 1 つしか存在しない場合は、自動的に選択されます。
選択したデータソースが正しいリソースグループに接続されていることを確認してください。これにより、タスクの失敗を防ぐことができます。
スクリプトの作成
コードエディタでスクリプトを作成します。タスクがトリガーされると、SSH ノードはリモートホストでこのスクリプトを実行します。
例:基本的なスクリプト
次の例では、リモートホストにファイルを作成して実行します。
# リモートホストの /tmp ディレクトリに hello.sh を作成します。
echo "echo hello,dataworks" >/tmp/hello.sh
# ファイルを実行します。
sh /tmp/hello.sh
例:スケジューリングパラメーターを使用したスクリプト
[スケジューリングパラメーター] を使用すると、ランタイムでスクリプトに動的な値を注入できます。 スクリプトで ${variable_name} を使用して変数を定義し、右側のパネルの [スケジューリング設定] > [スケジューリングパラメーター] で値を割り当てます。
次の例では、SSH ノードの毎日の実行時間をログファイルに書き込みます。${myDate} 変数には、スケジューリング パラメーター値として $[yyyy-mm-dd hh24:mi:ss] が割り当てられます。
# 実行時間を /tmp/sshnode.log に書き込みます。
echo ${myDate} >/tmp/sshnode.log
cat /tmp/sshnode.log
サポートされている変数のフォーマットについては、「スケジューリング設定」をご参照ください。
スケジューリングプロパティの設定
スクリプトを作成した後、スケジューリングプロパティを設定して、SSH タスクを定期スケジュールで実行します。詳細については、「スケジューリング設定」をご参照ください。
ステップ 2:ノードのデプロイと監視
-
SSH ノードを本番環境に送信して公開します。詳細については、「ノードまたはワークフローの公開」をご参照ください。
-
公開後、タスクはスケジューリング設定に基づいて自動的に実行されます。タスクを表示および管理するには、 に移動します。詳細については、「オペレーションセンター入門」をご参照ください。
次のステップ
SSH ノードの負荷分散と高可用性を設定するには、「SSH ノードの負荷分散と高可用性の実装」をご参照ください。