DataWorks為您提供Function Compute節點,允許您通過自訂代碼實現不同業務需求。Function Compute節點支援周期性調度,便於執行定時任務。同時,該節點能夠與DataWorks其他類型節點配合使用,協助您構建完整的資料處理流程。本文將為您介紹如何建立並使用Function Compute節點。
前提條件
已開通Function Compute。
您需要先開通Function Compute服務後,才可在DataWorks使用Function Compute節點。開通Function Compute後,為保障開發過程順利,建議您先瞭解Function Compute產品的相關介紹及功能特性。詳情請參見開通Function Compute、Function Compute介紹。
已建立調用函數所需的服務。
服務是Function Compute的基本資源單位,您可以在服務等級上進行授權、日誌配置和建立函數等操作。因此,進行函數開發前您需要先建立服務。建立服務,詳情請參見建立服務。
已建立函數。
函數是調度與啟動並執行基本單位,是一段代碼的處理邏輯。您需根據Function Compute提供的函數介面形式編寫代碼,並將代碼以函數的形式部署到Function Compute進行應用。建立函數,詳情請參見建立函數。
背景資訊
Function Compute是一款事件驅動的全託管計算服務,無需您單獨採購與管理伺服器等基礎設施,通過編寫並上傳代碼或鏡像,即可進行服務、函數等的管理操作。Function Compute支援運行如下兩種類型的函數:
事件函數:適用於事件驅動模型中通過事件發生來調用關聯函數。
HTTP函數:適用於快速構建Web應用等情境。
您可在Function Compute節點配置需要啟動並執行服務與函數,並將該節點發布至生產調度,實現相應服務與函數的周期性執行。
使用限制
功能限制
DataWorks目前僅支援調用事件函數,不支援調用HTTP函數。因此,若要在DataWorks周期性調度處理事件函數,則在建立函數時,需要建立用於處理事件請求的事件函數。更多函數類型介紹,詳情請參見函數類型。
地區限制
DataWorks目前僅支援華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)、中國香港、新加坡、英國(倫敦)、美國(矽谷)、美國(維吉尼亞)、德國(法蘭克福)的工作空間使用Function Compute功能。
注意事項
使用Function Compute節點時,需基於已建立的服務調用待執行事件函數。選擇服務時,若無法擷取已建立的服務列表,則可能原因如下:
當前帳號欠費:請儲值後重新整理節點配置頁面重新嘗試。
當前登入使用者沒有擷取服務列表的許可權:請聯絡阿里雲主帳號為您添加fc:ListServices許可權,或直接賦予您 AliyunFCFullAccess許可權,授權後請重新整理節點配置頁面重新嘗試。授權操作,請參見為RAM使用者授權。
使用DataWorks的Function Compute節點運行函數時,若運行時間長度超過1小時,請將DataWorksFunction Compute節點的調用方式配置為非同步呼叫。Function Compute非同步呼叫的介紹,請參考非同步呼叫。
若使用RAM使用者(即子帳號)進行Function Compute節點開發,則需為該使用者添加如下系統策略或自訂策略許可權。
策略類型
策略描述
相關參考
系統策略
使用系統策略時,需授權使用者
AliyunFCFullAccess
,或AliyunFCReadOnlyAccess
及AliyunFCInvocationAccess
權限原則。自訂策略
使用自訂策略時,需授權使用者如下所有權限原則。
fc:GetService
fc:ListServices
fc:GetFunction
fc:InvokeFunction
fc:ListFunctions
fc:GetFunctionAsyncInvokeConfig
fc:ListServiceVersions
fc:ListAliases
fc:GetAlias
fc:ListFunctionAsyncInvokeConfigs
fc:GetStatefulAsyncInvocation
fc:StopStatefulAsyncInvocation
步驟一:進入節點建立入口
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的 ,在下拉框中選擇對應工作空間後單擊進入資料開發。
進入節點建立入口。
在資料開發(DataStudio)介面,您可通過如下方式建立Function Compute節點。
步驟二:建立並配置Function Compute節點
建立Function Compute節點。
進入節點建立入口後,根據介面提示,配置建立節點的路徑、名稱等基本資料,建立節點。
配置Function Compute節點參數。
在節點編輯頁面,根據業務需求,選擇執行本次任務需調用的函數並配置其運行方式及變數詳情。
參數
描述
選擇服務
用於為函數提供相關運行資源。同一服務下的所有函數共用一些相同的設定,例如,服務授權和日誌配置等。如果沒有可用服務,則需建立,詳情請參見建立服務。
選擇版本或別名
選擇後續調用函數時所使用的服務版本或別名。預設版本為 LATEST。
服務版本
Function Compute提供服務等級的版本控制功能,支援您為自己的服務發布一個或多個版本。當發布版本時,Function Compute會為服務產生快照,包括服務的配置、服務內的函數代碼及函數配置,但不包括觸發器,並自動分配一個版本號碼與其關聯,以供後續使用。發布版本,詳情請參見發布版本。
版本別名
Function Compute支援為服務的版本建立別名。別名用於指向特定版本,您可利用別名輕鬆實現發布、復原以及灰階發布等功能。別名無法脫離服務或版本單獨存在。使用別名訪問服務或函數時,Function Compute會將別名解析為其指向的版本,調用方無需瞭解別名指向的具體版本。建立別名,詳情請參見建立別名。
選擇函數
選擇此次任務執行所需調用的函數。如果沒有可用函數,則需建立,詳情請參見建立函數。
說明DataWorks目前僅支援調用事件函數,不支援調用HTTP函數。因此,若要在DataWorks周期性調度處理事件函數,則在建立函數時,需要建立用於處理事件請求的事件函數。更多函數類型介紹,詳情請參見函數類型。
樣本選擇
para_service_01_by_time_triggers
函數。建立該函數時,選擇平台提供的定時觸發函數的範例程式碼。代碼邏輯如下。import json import logging logger = logging.getLogger() def handler(event, context): logger.info('event: %s', event) # Parse the json evt = json.loads(event) triggerName = evt["triggerName"] triggerTime = evt["triggerTime"] payload = evt["payload"] logger.info('triggerName: %s', triggerName) logger.info("triggerTime: %s", triggerTime) logger.info("payload: %s", payload) return 'Timer Payload: ' + payload
更多函數的範例程式碼,請參見範例程式碼。
調用方式
支援使用如下方式調用函數:
變數
基於實際應用,對函數中的變數進行賦值。該變數與Function Compute產品中,目標函數詳情頁的
內容對應。樣本對
para_service_01_by_time_triggers
函數的相關變數傳入如下參數。參數中,使用${}
格式定義了名為bizdate
的變數,該變數需在步驟4中賦值。{ "payload": "payload1", "triggerTime": "${bizdate}", "triggerName": "triggerName1" }
可選:調試運行Function Compute節點。
Function Compute節點配置完成後,您可單擊表徵圖,指定任務啟動並執行資源群組並為代碼變數賦值常量進行調試運行,測試節點代碼邏輯是否正確。運行時,參數配置格式為
key=value
,輸入多個參數時,需使用逗號(,)分隔。說明更多任務調試運行詳情,請參見調試運行任務。
配置節點的周期調度屬性。
DataWorks提供的調度參數,可實現調度情境下代碼動態傳參。在節點編輯頁面定義函數變數後,需進入調度配置中為變數賦值。本文樣本為變數
bizdate
賦值為前一天,即在Function Compute節點定時已耗用時間的前一天,DataWorks會調度運行該節點。更多調度參數的配置,詳情請參見配置調度參數。節點的更多調度屬性,詳情請參見任務調度屬性配置概述。
步驟三:提交並發布節點
Function Compute節點需要提交發布至生產環境後,才會自動調度運行。
儲存並提交節點。
單擊工具列中的、表徵圖,儲存並提交節點。提交節點時,請根據提示輸入變更描述,並根據需要選擇是否進行程式碼檢閱及煙霧測試 (Smoke Test)。
說明您需在調度配置中設定節點的重跑屬性和依賴的上遊節點,才可以提交節點。
開啟程式碼檢閱後,開發人員提交的節點代碼必須通過評審人員的審核才可發布,詳情請參見程式碼檢閱。
為保障調度節點任務執行符合預期,建議您在發布前對任務進行煙霧測試 (Smoke Test),詳情請參見煙霧測試 (Smoke Test)。
可選:發布節點。
後續步驟
任務提交發布至生產營運中心調度後,您可通過DataWorks的營運中心進行相關營運操作,詳情請參見營運中心。
在掌握如何建立和使用Function Compute節點的基本步驟之後,您可通過最佳實務進一步深入瞭解該節點,詳情請參見在DataWorks中通過Function Compute節點實現動態為PDF添加浮水印。