创建同步Fc
1. 创建函数计算Function
1.1 新建Service
在函数计算控制台中创建Service。去往函数计算控制台。如果您已经创建过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: 函数计算服务地址,需填写内网服务地址,格式为
https://<account_id>.fc.<region>.aliyuncs.com
,例如,上海区域函数计算的地址为:https://12423423992.fc.cn-shanghai-internal.aliyuncs.com
。可参考函数计算服务入口。Service: 目标函数计算的服务名
Function: 目标函数计算的函数名
起始时间: 表示从DataHub的topic中哪个位置的记录开始调用函数计算
5. Event结构定义
发送到函数计算的数据遵循以下数据结构定义:
{
"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. 注意事项
服务域名需为内部服务域名,函数计算服务名、函数名需存在;
DataHub仅支持同步模式Invoke函数,保证数据处理顺序;
当函数发生运行时错误时,DataHub会在1s之后进行重试,失败次数达到512时,任务将被挂起;
可在Web控制台查看任务运行状态以及点位,详细出错信息等;