タスクフローのElastic Compute Service (ECS) リモートコマンドノードを使用すると、Cloud Assistantに基づいてリモートECSインスタンスでシェル、PowerShell、またはバッチスクリプトを実行できます。 このトピックでは、ECSリモートコマンドノードを設定する方法について説明します。
シナリオ
Python用のNumPyおよびscikit-learnライブラリ、Apache SparkのMLlibライブラリなどの高度なツールを使用してデータを処理します。 データ処理後に生成されたモデルは、検索システムの細かいソートおよび推奨機能に適用することができる。
データを消費します。 たとえば、データを読み取るときにExcelスクリプトを生成したり、読み取ったデータを含む電子メールを自動的に送信するために使用されるスクリプトを生成したりできます。
自己構築Hadoop MapReduceまたはApache Sparkプログラムを呼び出します。
前提条件
ECSインスタンスが購入されました。 詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。
ECSインスタンスにタグが追加されます。 タグのキーは
dms
で、タグの値はscript-for-dms
です。 詳細については、「インスタンスのタグの変更」をご参照ください。ECSインスタンスにCloud Assistantクライアントがインストールされています。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。
説明デフォルトでは、12月1日2017以降にパブリックイメージから作成されたECSインスタンスには、Cloud Assistantクライアントがプリインストールされます。
ECSインスタンスに対するInvokeCommand権限は、RAMユーザーに付与されます。 権限を付与するには、次の操作を実行します。
ポリシーを作成します。 ビジュアルエディターまたはJSONスクリプトを使用してポリシーを作成できます。 詳細については、「カスタムポリシーの作成」をご参照ください。 InvokeCommand権限を付与するには、次のスクリプトを使用します。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:InvokeCommand" ], "Resource": [ "*" ], "Condition": {} } ] }
ポリシーをRAMユーザーにアタッチします。 詳細については、「RAMユーザーへの権限の付与」をご参照ください。
手順
DMSコンソールV5.0 にログインします。
上部のナビゲーションバーで、DTS > データ開発 > タスクオーケストレーションを選択します。
説明コンソールインターフェイスがシンプルモードの場合は、左上隅のをクリックし、[すべての機能] を選択します。 表示されるナビゲーションペインで、[DTS] > [データ開発] > [タスクオーケストレーション] を選択します。
管理したいタスクフローの名前をクリックして、タスクフローの詳細ページに移動します。
説明タスクフローの作成方法の詳細については、「概要」をご参照ください。
タスクタイプキャンバスの左側にあるリストをドラッグし、ECSリモートコマンドノードは、キャンバスの空白領域に入力します。
をダブルクリックし、ECSリモートコマンドキャンバス上のノード。
ECSリモートコマンドノードの設定ページで、ノードのパラメーターを設定します。
カテゴリ
パラメーター
必須
説明
基本設定
リージョン
必須
ECSインスタンスが存在するリージョン。
ECSインスタンスID
必須
ECSインスタンスのID。 [ECSインスタンスID] ドロップダウンリストで、コマンドを実行するECSインスタンスを選択します。
説明[ECSインスタンスID] ドロップダウンリストには、タグキーが
dms
、タグ値がscript-for-dms
のECSインスタンスのみが表示されます。同じオペレーティングシステムを実行する複数のECSインスタンスを選択できます。
コマンドタイプ
必須
実行するコマンドのタイプ。 ECSインスタンスがLinuxを実行している場合は、Shell (Linux) を選択します。
ECSインスタンスがWindowsを実行している場合は、Bat (Windows) またはPowerShell (Windows) を選択します。
タイムアウト
必須
指定されたコマンドを実行するためのタイムアウト時間。 単位は秒です。
作業ディレクトリ
必須
ECSインスタンス上のコマンドの作業ディレクトリ。
このパラメーターを設定しないと、デフォルトの作業ディレクトリが自動的に選択されます。 デフォルトの作業ディレクトリは、Linuxを実行するECSインスタンスの場合は
/root
、Windowsを実行するECSインスタンスの場合はC:\Windows\System32
です。拡張設定
ユーザー
必須
ECSインスタンスでコマンドを実行するユーザーの名前。
説明ルートユーザーまたはシステムユーザーではなく通常のユーザーを指定する場合は、指定したユーザーに必要な権限を付与する必要があります。 詳細については、「Cloud Assistantコマンドを通常ユーザーとして実行する」をご参照ください。
Windowsのパスワード名
必須
Windowsを実行するECSインスタンスでコマンドを実行するユーザーのパスワード。
説明詳細については、「Cloud Assistantコマンドを通常ユーザーとして実行する」をご参照ください。
コマンド設定
コマンド設定
必須
ECSインスタンスで実行されるコマンド。
たとえば、
python /home/admin/hello.py
です。出力変数を設定します。 このステップはオプションです。 下流ノードでは、出力変数を表示および参照できます。
右側のナビゲーションウィンドウの変数設定タブをクリックします。
出力変数タブをクリックします。
変数の増加 をクリックします。
[変数名] フィールドに、変数の名前を入力します。 詳細については、「変数」をご参照ください。
説明選択したECSインスタンスごとに、最後の行の戻り値がJSON形式の場合、値の変数を出力変数として使用できます。 たとえば、インスタンスaに対して {"A":"hello"} が返され、インスタンスbに対して {"B":"world"} が返された場合、a変数とb変数の両方を出力変数として使用できます。
設定ページの上部ツールバーで、実行しよう をクリックします。
ログの最後の行にstatus SUCCEEDEDが表示された場合、タスクフローは正常に実行されます。
ログの最後の行にstatus FAILEDが表示された場合、タスクフローの実行に失敗します。 上部のツールバーの [ログ] をクリックして障害の原因を表示し、それに応じて設定を変更し、タスクフローを再度実行します。