DataWorks の Shell ノード (一般的な Shell ノードと EMR Shell ノードを含む) には、ossutil がネイティブに統合されており、ファイルのアップロード、ダウンロード、バッチ操作、バケット管理などのタスクを実行できます。このトピックでは、Shell ノードと EMR Shell ノードで ossutil コマンドラインツールを使用して Object Storage Service (OSS) にアクセスする方法について説明します。
概要
DataWorks の Shell ノード (一般的な Shell ノードと EMR Shell ノードを含む) は、Alibaba Cloud の Object Storage Service (OSS) コマンドラインツールである ossutil をネイティブに統合しています。設定ファイルで認証情報を提供するか、コマンドラインパラメーターとして渡すことで、ossutil を設定して OSS にアクセスできます。ossutil の設定方法の詳細については、「ossutilの設定」をご参照ください。
ossutil コマンドラインツールは DataWorks 環境にプリインストールされています。デフォルトパスは /home/admin/usertools/tools/ossutil64 です。ls -l /home/admin/usertools/tools/ コマンドを実行すると、このディレクトリ内のツールリストが表示され、ossutil64 が存在することを確認できます。次の図は出力例です。

以降のセクションでは、Shell ノードを例に、2つの設定方法について説明します。
コマンドラインパラメーターの使用
-
Shell ノードで、ノードの内容を編集します。次のサンプルコードは、
ossutilを使用して指定の OSS エンドポイントに接続し、現在のアカウントがアクセスできるすべてのバケットを一覧表示します。/home/admin/usertools/tools/ossutil64 -e <OSSEndPoint> -i <AccessKeyID> -k <AccessKeySecret> ls -s if [[ $? == 0 ]];then echo "access oss success" else echo "failed" exit 1 fi echo "finished"説明<OSSEndPoint>、<AccessKeyID>、および<AccessKeySecret>プレースホルダーを実際の値に置き換える必要があります。パラメーターの詳細については、「ossutilの設定」をご参照ください。重要コマンドラインパラメーターでアクセスキーを渡すとキーが公開され、セキュリティリスクが生じます。
-
結果を検証します。
アイコンをクリックし、サーバーレスリソースグループを選択してから、一般的な Shell ノードタスクを実行します。
設定ファイルの使用
-
ossutil 設定ファイルを作成し、OSS にアップロードします。
-
設定ファイルを作成します。
ローカルマシンに
myconfig.txtという名前のファイルを作成します。ファイルの内容は次のサンプルコードのとおりです。[Credentials] language = CH endpoint = <Endpoint> # 例:oss-cn-shanghai.aliyuncs.com accessKeyID = <AccessKeyID> accessKeySecret = <AccessKeySecret>説明<Endpoint>、<AccessKeyID>、および<AccessKeySecret>プレースホルダーを、実際の Alibaba Cloud OSS エンドポイントと、必要な権限を持つ RAM ユーザーのアクセスキーに置き換えます。注:パラメーター値を引用符で囲まないでください。パラメーターの詳細については、「ossutilの設定」をご参照ください。 -
設定ファイルをアップロードします。
myconfig.txtファイルを OSS にアップロードします。詳細については、「簡易アップロード」をご参照ください。 -
ダウンロード URL を取得します。
アップロードされたオブジェクトの 操作 列で、Details をクリックします。 表示されたパネルで、[HTTPS を使用] をオフにしてから、[オブジェクト URL のコピー] をクリックします。
-
-
設定ファイルをサーバーレスリソースグループにダウンロードします。
DataWorks コンソールの [イメージ管理] ページで、カスタムイメージを作成して、設定ファイルをサーバーレスリソースグループにダウンロードします。
-
イメージを作成します。
DataWorks コンソールにログインし、ターゲットリージョンに切り替えます。 左側のナビゲーションペインで、[イメージ管理] をクリックします。 [イメージ管理] ページで、Custom Image タブをクリックし、次に [イメージの作成] をクリックします。 表示されるパネルで、次のようにパラメーターを設定します。
パラメーター
値の例
[Image Name]
イメージのカスタム名を入力します。
イメージの説明
イメージのカスタム説明を入力します。
参照タイプ
DataWorks 公式イメージ (デフォルト)。
イメージ名前空間
DataWorks デフォルト (デフォルト)。
イメージリポジトリ
DataWorks デフォルト (デフォルト)。
イメージ名/ID
dataworks_shell_task_pod:xxxを選択します。これは、Shell ノード用の DataWorks 公式イメージです。[Visibility Scope]
必要に応じてスコープを選択します。
-
作成者のみに表示
-
全員に表示
モジュール
データ開発 (デフォルト)。
サポートされるタスクタイプ
Shell (デフォルト)。
インストールパッケージ
[インストールパッケージ] ドロップダウンリストから
スクリプトを選択し、コマンドボックスに次のコマンドを入力します。# ダウンロード wget 'http://<yourConfigURL>' -O /home/admin/usertools/tools/<configName>説明-
http://<yourConfigURL>を、OSS の詳細パネルからコピーしたオブジェクト URL に置き換えます。 -
<configName>に、OSS からダウンロードするファイルの名前 (例:myconfig.txt) を設定します。
OK をクリックしてイメージを作成します。
-
-
イメージをテストして発行します。
作成したイメージの操作 列で Deploy をクリックします。[Test Resource Group]ページで、Test Resource Group を選択し、Test Result の右側にある Test をクリックします。Succeeded. というメッセージが表示されたら、下部にある Deploy ボタンをクリックします。
-
発行されたカスタムイメージの [操作] 列で、
アイコンをクリックして [ワークスペースの変更] を選択します。次に、イメージをターゲットワークスペースにバインドします。
-
-
設定ファイルを使用して ossutil コマンドラインツールを使用します。
-
一般的な Shell ノードを作成します。
-
データ開発ページに移動します。
DataWorks コンソールにログインし、目的のリージョンに切り替えた後、左側のナビゲーションペインでデータ開発と O&M > Data Studio を選択します。ドロップダウンリストから目的のワークスペースを選択し、Go to DataStudio をクリックします。
-
一般的な Shell ノードを作成します。
「データ開発」ページで、対象のビジネスプロセスを右クリックし、Create Node を選択し、General ディレクトリ配下の Shell を選択します。
-
-
Shell ノードで、ノードコンテンツを編集します。次のサンプルコードは、
ossutilを使用してmyconfig.txtで指定された OSS エンドポイントに接続し、myconfig.txtで指定されたアカウントがアクセスできるすべてのバケットを一覧表示します。/home/admin/usertools/tools/ossutil64 -c /home/admin/usertools/tools/myconfig.txt ls -s -
アイコンをクリックし、テストに使用したサーバーレスリソースグループを選択し、作成して発行した [カスタムイメージ] を指定してから、一般的な Shell ノードタスクを実行します。 -
ノードのScheduling タブで、Resource Group セクションでターゲットリソースグループを選択し、作成および公開したカスタムイメージを指定し、スケジューリング設定を保存し、Shell ノードを開発環境にコミットしてから、本番環境に公開します。
-
関連ドキュメント
新しいバージョンのデータ開発では、RAM ロールを Shell ノードにバインドし、STS を使用して一時的なセキュリティ認証情報を動的に取得することで、ossutil を使用して OSS に安全にアクセスできます。詳細については、「ロールの関連付け:他のクラウドリソースへの安全なアクセス」をご参照ください。