DataWorks Shell類型節點(包括通用Shell節點和EMR Shell節點)原生整合ossutil,支援檔案上傳、下載、大量操作及Bucket管理等任務。本文將詳細介紹如何在Shell和EMR Shell節點中使用ossutil命令列工具訪問OSS。
功能概述
DataWorks Shell類型節點(包括通用Shell節點和EMR Shell節點)原生整合阿里雲OSS命令列工具ossutil,支援檔案上傳、下載、大量操作及Bucket管理等任務。您可通過設定檔方式或命令列參數方式配置訪問憑證使用ossutil訪問OSS。瞭解更多關於ossutil配置資訊,請參見配置ossutil。
ossutil 已預裝在DataWorks環境中,無需手動安裝。預設路徑為 /home/admin/usertools/tools/ossutil64。您可通過執行命令 ls -l /home/admin/usertools/tools/ 查看該目錄下的工具列表,確認 ossutil64 是否存在(樣本輸出見下圖)。

以下以Shell節點為例說明兩種配置方法。
命令列參數方式訪問OSS
在Shell節點中,編輯節點內容,以下範例程式碼旨在通過
ossutil嘗試串連指定OSS Endpoint,並列出當前帳號有許可權訪問的所有Bucket。/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。重要通過命令列參數傳入存取金鑰,存在密鑰泄露的風險,請謹慎使用。
結果驗證。
點擊
,選擇Serverless資源群組,執行通用Shell節點任務。結果如下:
設定檔方式訪問OSS
建立ossutil設定檔,並上傳至OSS。
建立設定檔。
在本地建立
myconfig.txt檔案,檔案內容樣本如下:[Credentials] language = CH endpoint = <Endpoint> #如oss-cn-shanghai.aliyuncs.com accessKeyID = <AccessKeyID> accessKeySecret = <AccessKeySecret>說明您需將代碼中的
Endpoint、AccessKeyID和AccessKeySecret替換為實際的阿里雲OSS Endpoint和具備相應許可權的RAM使用者密鑰。注意:參數值無需加引號;參數詳情請參見配置ossutil。上傳設定檔。
將
myconfig.txt檔案上傳到OSS。詳情請參見簡單上傳。查看下載連結。
單擊上傳到OSS的文檔對應的操作項的詳情,關閉使用HTTPS後單擊複製檔案URL。


下載Config檔案至Serverless資源群組。
在DataWorks的鏡像管理頁面,建立自訂鏡像,下載Config檔案至Serverless資源群組。
建立鏡像。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的鏡像管理,在鏡像管理頁面找到自訂鏡像頁簽,單擊下方建立鏡像按鈕進行建立。您可在建立鏡像頁面參考以下參數進行建立鏡像:
參數
樣本值
鏡像名稱
自訂命令名稱。
鏡像描述
自訂命令描述。
參考型別
DataWorks官方鏡像(預設)。
鏡像命名空間
DataWorks Default(預設)。
鏡像倉庫
DataWorks Default(預設)。
鏡像名稱/ID
選擇
dataworks_shell_task_pod:xxx:DataWorks Shell節點官方鏡像。可見範圍
您可根據業務情況進行選擇:
僅建立者可見。
全域可見。
使用子產品
資料開發(預設)。
支援任務類型
Shell(預設)。
安裝包
安裝包下拉框選擇
Script方式。並在命令框輸入以下命令:# 下載 wget 'http://<yourConfigURL>' -O /home/admin/usertools/tools/<configName>說明http://<yourConfigURL>參數您需替換成從OSS的文檔詳情中複製的檔案URL。<configName>參數可設定為需從OSS中下載的檔案名稱myconfig.txt。
單擊下方確認按鈕完成鏡像建立。
測試發布。
單擊您所建立的鏡像右側操作列中的發布,進入發布鏡像頁面,選擇測試資源群組,單擊測試結果右側的測試。等待測試成功,單擊下方發布按鈕進行發布。
針對所發布的自訂鏡像,在操作列單擊
> 修改歸屬工作空間。將該鏡像綁定至目標工作空間。

按照命令設定檔的方式使用ossutil命令列工具。
建立通用Shell節點。
進入資料開發頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的,在下拉框中選擇目標工作空間後單擊進入資料開發。
建立通用Shell節點。
在資料開發頁面按右鍵目標商務程序,選擇建立節點,在通用目錄下選擇Shell節點進行建立。
在Shell節點中,編輯節點內容,以下範例程式碼旨在通過
ossutil嘗試串連myconfig.txt中所指定的 OSS Endpoint,並列出myconfig.txt中所指定帳號有許可權訪問的所有 Bucket。/home/admin/usertools/tools/ossutil64 -c /home/admin/usertools/tools/myconfig.txt ls -s單擊
,選擇您在測試發布鏡像過程中測試成功的Serverless資源群組,並指定您已建立並發布的自訂鏡像,執行通用Shell節點任務。運行成功後,樣本結果如下:
在節點的調度配置中,於資源屬性地區選取項目目標資源群組,並指定您已建立並發布的自訂鏡像,儲存調度配置後,將該Shell節點提交至開發環境,並發布至生產環境。
相關文檔
在新版資料開發中,針對Shell節點,支援通過綁定RAM角色,利用STS動態擷取臨時安全憑證,安全調用ossutil訪問OSS。詳情請參見相關文檔:配置節點關聯角色。