创建同步Fc

创建同步Fc

1. 创建函数计算Function

1.1 新建Service

在函数计算控制台中创建Service。去往函数计算控制台。如果您已经创建过Function,可以忽略此步。

1.2 新建Function

在刚创建的Service下创建Function,点击“新建函数”。并输入您的代码,详细操作请参照创建函数。触发器页面点击”跳过””即可,最后点击完成。

2. 服务关联角色授权

当选择STS临时账号方式时,将会自动创建DataHub服务关联角色,DataHub服务会使用此角色访问Fc以完成数据同步

3. 创建DataHub Topic

参见Web控制台操作指南

4. 创建DataHub FunctionCompute Connector

4.1 进入Topic详情页

8-1

4.2 选择创建FC Connector

8-2

4.3 填写配置信息

8-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控制台查看任务运行状态以及点位,详细出错信息等;