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

以下のセクションでは、Shell ノードを例に、2 つの設定方法について説明します。
コマンドラインパラメーターを使用した OSS へのアクセス
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 の設定」をご参照ください。重要コマンドラインパラメーターで AccessKey ペアを渡すと、キーが漏洩するセキュリティリスクがあります。このメソッドの使用には注意を払うことを推奨します。
結果の検証
アイコンをクリックし、サーバーレスリソースグループを選択して Shell ノードタスクを実行します。次の図は、結果の例です。
設定ファイルを使用した OSS へのアクセス
ossutil 設定ファイルを作成し、OSS にアップロードします。
設定ファイルの作成
ローカルマシンで、
myconfig.txtという名前のファイルを作成します。次のコードは、ファイル内容の例です。[Credentials] language = EN endpoint = <Endpoint> #例: oss-cn-shanghai.aliyuncs.com accessKeyID = <AccessKeyID> accessKeySecret = <AccessKeySecret>説明Endpoint、AccessKeyID、AccessKeySecretを、ご利用の Alibaba Cloud OSS エンドポイントと、必要な権限を持つ RAM ユーザーの AccessKey ペアに置き換えてください。パラメーター値は引用符で囲まないでください。パラメーターの詳細については、「ossutil の設定」をご参照ください。設定ファイルのアップロード
myconfig.txtファイルを OSS にアップロードします。詳細については、「簡易アップロード」をご参照ください。ダウンロードリンクの表示
OSS にアップロードされたファイルの [操作] 列で、[詳細] をクリックします。[HTTPS を使用] を無効にし、[ファイル URL をコピー] をクリックします。


サーバーレスリソースグループへの設定ファイルのダウンロード
DataWorks の[イメージ管理]ページで、カスタムイメージを作成し、構成ファイルを Serverless リソースグループにダウンロードします。
イメージの作成
DataWorks コンソールにログインし、ターゲットリージョンに切り替えます。 左側のナビゲーションウィンドウで、[イメージ管理] をクリックします。 [イメージ管理] ページで、[カスタムイメージ] タブに移動し、[イメージの作成] をクリックします。 「イメージの作成」パネルで、次のパラメーターを設定してイメージを作成します。
パラメーター
値の例
イメージ名
コマンド名はカスタマイズできます。
イメージの説明
カスタムコマンドの説明。
参照タイプ
DataWorks 公式イメージ (デフォルト)。
イメージの名前空間
DataWorks デフォルト (デフォルト)。
イメージリポジトリ
DataWorks デフォルト (デフォルト)。
イメージ名/ ID
dataworks_shell_task_pod:xxxを選択します。これは Shell ノード用の DataWorks 公式イメージです。表示範囲
必要に応じて範囲を選択します。
作成者のみに表示。
すべてに表示。
サブプロダクトの使用
Data Studio (デフォルト)。
サポートされているタスクタイプ
Shell (デフォルト)。
インストールパッケージ
[インストールパッケージ] のドロップダウンリストから
スクリプトを選択します。 コマンドボックスに、次のコマンドを入力します。# ダウンロード wget 'http://<yourConfigURL>' -O /home/admin/usertools/tools/<configName>説明http://<yourConfigURL>を OSS コンソールからコピーしたファイル URL に置き換えてください。<configName>パラメーターは、OSS からダウンロードするファイル名であるmyconfig.txtに設定できます。
[確認]をクリックしてイメージを作成します。
テスト公開
作成したイメージの [アクション] 列で、[公開] をクリックします。[イメージの公開] ページで、[テストリソースグループ] を選択し、[テスト結果] の横にある [テスト] をクリックします。[テストに成功しました] メッセージが表示されたら、[公開] をクリックします。
公開したカスタムイメージの [操作] 列で、
アイコンをクリックして [ワークスペースの変更] を選択し、イメージを対象のワークスペースに関連付けます。

設定ファイルを使用して ossutil コマンドラインツールを使用します。
通常の Shell ノードを作成します。
Data Studio ページに移動します。
DataWorks コンソールにログオンし、ターゲットリージョンに切り替えます。 左側のナビゲーションウィンドウで、 を選択します。 ドロップダウンリストからターゲットワークスペースを選択し、[Data Studio に移動] をクリックします。
通常の Shell ノードを作成します。
Data Studio で、対象のビジネスフローを右クリックし、[ノードの作成] を選択し、[一般] フォルダの [Shell] を選択します。
Shell ノードで、ノードのコンテンツを編集します。次のサンプルコードでは、
ossutilを使用してmyconfig.txtで指定された OSS エンドポイントに接続し、myconfig.txtで指定されたアカウントがアクセス権を持つすべてのバケットをリストアップします。/home/admin/usertools/tools/ossutil64 -c /home/admin/usertools/tools/myconfig.txt ls -s
アイコンをクリックします。イメージを公開する際にテストで使用したサーバーレスリソースグループを選択し、作成して公開したカスタムイメージを指定します。その後、Shell ノードタスクを実行します。正常に実行されると、次の図のような結果が表示されます。
ノードの [スケジューリング構成] タブの [リソースプロパティ] セクションで、ターゲットリソースグループを選択し、作成して公開した カスタムイメージ を指定します。スケジューリング構成を保存します。次に、シェルノードを開発環境にコミットし、本番環境に公開します。
関連ドキュメント
最新バージョンの Data Studio では、Shell ノードに RAM ロールをアタッチできます。これにより、ノードは Security Token Service (STS) を使用して一時的なセキュリティ認証情報を動的に取得し、ossutil を安全に呼び出して OSS にアクセスできます。詳細については、「特定の RAM ロールを使用するようにノードを設定する」をご参照ください。