建立同步Fc
1. 建立Function ComputeFunction
1.1 建立Service
在Function Compute控制台中建立Service。去往Function Compute控制台。如果您已經建立過Function,可以忽略此步。
1.2 建立Function
在剛建立的Service下建立Function,點擊“建立函數”。並輸入您的代碼,詳細操作請參照建立函數。觸發器頁面點擊”跳過””即可,最後點擊完成。
2. 服務關聯角色授權
當選擇STS臨時帳號方式時,將會自動建立DataHub服務關聯角色,DataHub服務會使用此角色訪問Fc以完成資料同步
3. 建立DataHub Topic
4. 建立DataHub FunctionCompute Connector
4.1 進入Topic詳情頁
4.2 選擇建立FC Connector
4.3 填寫配置資訊
Endpoint: Function Compute服務地址,需填寫內網服務地址,格式為
https://<account_id>.fc.<region>.aliyuncs.com
,例如,上海地區Function Compute的地址為:https://12423423992.fc.cn-shanghai-internal.aliyuncs.com
。可參考Function Compute服務入口。Service: 目標Function Compute的服務名
Function: 目標Function Compute的函數名
起始時間: 表示從DataHub的topic中哪個位置的記錄開始調用Function Compute
5. Event結構定義
發送到Function Compute的資料遵循以下資料結構定義:
{
"eventSource": "acs:datahub",
"eventName": "acs:datahub:putRecord",
"eventSourceARN": "/projects/test_project_name/topics/test_topic_name",
"region": "cn-hangzhou",
"records": [
{
"eventId": "0:12345",
"systemTime": 1463000123000,
"data": "[\"col1's value\",\"col2's value\"]"
},
{
"eventId": "0:12346",
"systemTime": 1463000156000,
"data": "[\"col1's value\",\"col2's value\"]"
}
]
}
其中:
eventSource: 事件來源,此處為常字串
acs:datahub
;eventName: 事件名稱,來自datahub的資料名稱為
acs:datahub:putRecord
;eventSourceARN: 事件來源標識,包含datahub的project和topic名稱,如
/projects/test_project_name/topics/test_topic_name
;region: 事件來源DataHub所屬的地區,
cn-hangzhou
;records: 事件包含的記錄列表
eventId: 記錄的ID,組成方式為,
shardId:SequenceNumber
;systemTime: 該event存入DataHub的毫秒時間戳記;
data: 事件的資料內容,Tuple類型Topic該欄位為列表,其中每個元素均為string類型的資料對應每個topic中每個欄位的值; Blob類型Topic該欄位為string;
6. 注意事項
服務網域名稱需為內部服務網域名稱,Function Compute服務名、函數名需存在;
DataHub僅支援同步模式Invoke函數,保證資料處理順序;
當函數發生執行階段錯誤時,DataHub會在1s之後進行重試,失敗次數達到512時,任務將被掛起;
可在Web控制台查看任務運行狀態以及點位,詳細出錯資訊等;