triggers字段
triggers 字段
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| name | True | String | 触发器名称 |
| type | True | Enum | 触发器类型 |
| role | False | String | 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限 |
| sourceArn | False | String | 触发器事件源的 ARN,对于 EB 触发器,该字段为选填项,若主动填写该字段,表示将 EB 侧已存在资源关联到该触发器,注意,两个不同 EB 触发器不要配置同一个 sourceArn,否则触发器的更新/删除操作会相互影响 |
| qualifier | False | String | 触发器函数的版本或者别名,默认 LATEST |
| config | True | Struct | 触发器配置,包括OSS 触发器, Log 触发器, Timer 触发器, Http 触发器, MNS 触发器, CDN 触发器, EventBridge 触发器 |
type 目前支持:http, timer, oss, log, mns_topic, cdn_events, tablestore, eventbridge
OSS 触发器
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| bucketName | True | String | OSS 中目标 bucket 名称 |
| events | True | List<String> | OSS 端触发函数执行的事件列表, 相关文档:https://help.aliyun.com/document_detail/62922.html#section-mf3-l4l-1nf |
| filter | True | Struct | 触发条件 |
参考案例:
triggers: - name: oss sourceArn: acs:oss:<region>:<account-id>:<buckctName> type: oss role: acs:ram::<account-id>:role/aliyunosseventnotificationrole # qualifier: LATEST config: events: - oss:ObjectCreated:* filter: Key: Prefix: pppppppp Suffix: ''权限配置相关
子账号权限
最大权限
AliyunFCFullAccess、AliyunOSSFullAccess
操作最小权限
{ "Version": "1", "Statement": [ { "Action": ["fc:GetTrigger", "fc:CreateTrigger", "fc:UpdateTrigger", "fc:DeleteTrigger"], "Effect": "Allow", "Resource": "acs:fc:<region>:<account-id>:services/*/functions/*/triggers/*" }, { "Action": "ram:PassRole", "Effect": "Allow", "Resource": "*" }, { "Action": [ "oss:ListBucket", "oss:GetBucketEventNotification", "oss:PutBucketEventNotification", "oss:DeleteBucketEventNotification" ], "Effect": "Allow", "Resource": "*" } ]}触发器角色权限
{ "Version": "1", "Statement": [ { "Action": ["fc:InvokeFunction"], "Resource": "*", "Effect": "Allow" } ]}filter
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| Key | True | Struct | 键值 |
Key
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| Prefix | True | String | 前缀 |
| Suffix | True | String | 后缀 |
Log 触发器
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| logConfig | True | Struct | 日志配置 |
| jobConfig | True | Struct | job 配置 |
| sourceConfig | True | Struct | source 配置 |
| functionParameter | True | Struct | 该参数将作为函数 Event 的 Parameter 传入函数。默认值为空({}) |
| enable | True | Boolean | 触发器开关 |
参考案例:
triggers: - name: log sourceArn: acs:log:<region>:<account-id>:project/<projectName> type: log role: acs:ram::<account-id>:role/aliyunlogetlrole # qualifier: LATEST config: sourceConfig: logstore: log jobConfig: maxRetryTime: 3 triggerInterval: 60 functionParameter: {} logConfig: project: test-data-abc-ss logstore: log2 enable: false权限配置相关
子账号权限
最大权限
AliyunFCFullAccess、AliyunLogFullAccess
最小权限
{ "Version": "1", "Statement": [ { "Action": ["fc:GetTrigger", "fc:CreateTrigger", "fc:UpdateTrigger", "fc:DeleteTrigger"], "Effect": "Allow", "Resource": "acs:fc:<region>:<account-id>:services/*/functions/*/triggers/*" }, { "Action": "ram:PassRole", "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": ["log:GetEtlJob", "log:UpdateEtlJob", "log:CreateEtlJob", "log:DeleteEtlJob"], "Resource": "*" } ]}触发器角色权限
{ "Version": "1", "Statement": [ { "Action": ["fc:InvokeFunction"], "Resource": "*", "Effect": "Allow" }, { "Action": [ "log:Get*", "log:List*", "log:PostProjectQuery", "log:PutProjectQuery", "log:DeleteProjectQuery", "log:GetProjectQuery", "log:PostLogStoreLogs", "log:BatchPostLogStoreLogs", "log:CreateConsumerGroup", "log:UpdateConsumerGroup", "log:DeleteConsumerGroup", "log:ListConsumerGroup", "log:ConsumerGroupUpdateCheckPoint", "log:ConsumerGroupHeartBeat", "log:GetConsumerGroupCheckPoint" ], "Resource": "*", "Effect": "Allow" } ]}logConfig
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| project | True | String | 日志项目名称 |
| logstore | True | String | 日志仓库名称,日志服务触发函数执行过程的日志会记录到该日志仓库中 |
jobConfig
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| maxRetryTime | False | String | 表示日志服务触发函数执行时,如果遇到错误,所允许的最大尝试次数,取值范围:[0,100] |
| triggerInterval | False | String | 日志服务触发函数运行的时间间隔,取值范围:[3,600],单位:秒 |
sourceConfig
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| logstore | True | String | 触发器会定时从该日志仓库中订阅数据到函数服务进行自定义加工 |
functionParameter
Object 格式,例如:
TempKey: tempValueTimer 触发器
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| cronExpression | True | String | 时间触发器表达式,支持两种设置:@every、cron 表达式 |
| enable | True | Boolean | 是否启用该触发器 |
| payload | False | String | 代表触发器事件本身的输入内容 |
参考案例:
triggers: - name: timer type: timer # qualifier: LATEST config: payload: '{"s": "ss"}' cronExpression: '@every 100m' enable: false权限配置相关
子账号需要的函数权限
最大权限
AliyunFCFullAccess
最小权限
{ "Version": "1", "Statement": [ { "Action": ["fc:GetTrigger", "fc:CreateTrigger", "fc:DeleteTrigger", "fc:UpdateTrigger"], "Effect": "Allow", "Resource": "acs:fc:<region>:<account-id>:services/<serviceName>/functions/<functionName>/triggers/<triggerName>" } ]}Http 触发器
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| authType | True | String | 鉴权类型,可选值:anonymous、function |
| disableURLInternet | False | Boolean | 是否禁用公网访问 URL,默认为 false |
| methods | True | List<String> | HTTP 触发器支持的访问方法,可选值:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS |
参考案例:
triggers: - name: httpTrigger type: http # qualifier: LATEST config: authType: anonymous methods: - GET权限配置相关
子账号需要的函数权限
最大权限
AliyunFCFullAccess
最小权限
{ "Version": "1", "Statement": [ { "Action": ["fc:GetTrigger", "fc:CreateTrigger", "fc:DeleteTrigger", "fc:UpdateTrigger"], "Effect": "Allow", "Resource": "acs:fc:<region>:<account-id>:services/<serviceName>/functions/<functionName>/triggers/<triggerName>" } ]}MNS 触发器
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| topicName | True | String | mns topic 的名字 |
| region | False | List | mns topic 所在的 region,如果不填,默认为和函数一样的 region |
| notifyContentFormat | False | String | 推送给函数入参 event 的格式,可选值:STREAM, JSON |
| notifyStrategy | False | String | 调用函数的重试策略,可选值:BACKOFF_RETRY, EXPONENTIAL_DECAY_RETRY |
| filterTag | False | String | 描述了该订阅中消息过滤的标签(标签一致的消息才会被推送),不超过 16 个字符的字符串,默认不进行消息过滤,即默认不填写该字段 |
参考案例:
triggers: - name: mns sourceArn: acs:mns:<region>:<account-id>:/topics/test type: mns_topic role: acs:ram::<account-id>:role/aliyunmnsnotificationrole # qualifier: LATEST config: filterTag: ss notifyContentFormat: STREAM notifyStrategy: BACKOFF_RETRY权限配置相关
子账号需要的函数权限
最大权限
AliyunFCFullAccess、AliyunMNSFullAccess
最小权限
{ "Version": "1", "Statement": [ { "Action": ["fc:GetTrigger", "fc:CreateTrigger", "fc:UpdateTrigger", "fc:DeleteTrigger"], "Effect": "Allow", "Resource": "acs:fc:<region>:<account-id>:services/*/functions/*/triggers/*" }, { "Action": "ram:PassRole", "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": ["mns:Subscribe", "mns:Unsubscribe"], "Resource": "*" } ]}触发器角色权限
{ "Version": "1", "Statement": [ { "Action": ["fc:InvokeFunction"], "Resource": "*", "Effect": "Allow" } ]}CDN 触发器
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| eventName | True | String | 为 CDN 端触发函数执行的事件,一经创建不能更改 |
| eventVersion | True | String | 为 CDN 端触发函数执行事件的版本,一经创建不能更改 |
| notes | True | String | 备注信息 |
| filter | True | Struct | 过滤器(至少需要一个过滤器) |
参考案例:
triggers: - name: cdn sourceArn: acs:cdn:*:<account-id> type: cdn_events role: <roleArn> # qualifier: LATEST config: eventName: CachedObjectsBlocked eventVersion: 1.0.0 notes: shshhs filter: domain: - sss权限配置相关
子账号权限
最大权限
AliyunFCFullAccess、AliyunCDNFullAccess
最小权限
{ "Version": "1", "Statement": [ { "Action": ["fc:GetTrigger", "fc:CreateTrigger", "fc:UpdateTrigger", "fc:DeleteTrigger"], "Effect": "Allow", "Resource": "acs:fc:<region>:<account-id>:services/*/functions/*/triggers/*" }, { "Action": "ram:PassRole", "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": [ "cdn:UpdateFCTrigger", "cdn:DeleteFCTrigger", "cdn:DescribeFCTrigger", "cdn:AddFCTrigger" ], "Resource": "*" } ]}触发器角色权限
{ "Version": "1", "Statement": [ { "Action": ["fc:InvokeFunction"], "Resource": "*", "Effect": "Allow" } ]}filter
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| domain | True | List<String> | 过滤参数值的集合 |
Tablestore 触发器
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| instanceName | True | String | 表格存储实例的名称 |
| tableName | True | String | 实例中的表名称 |
参考案例:
triggers: - name: ots sourceArn: acs:ots:<region>:<account-id>:instance/<instance>/table/<table> type: tablestore role: acs:ram::<account-id>:role/AliyunTableStoreStreamNotificationRole # qualifier: 1 # LATEST config: instanceName: xxx tableName: xxx权限配置相关
子账号需要的函数权限
最大权限
AliyunFCFullAccess、AliyunOTSFullAccess
最小权限
{ "Version": "1", "Statement": [ { "Action": ["fc:GetTrigger", "fc:CreateTrigger", "fc:UpdateTrigger", "fc:DeleteTrigger"], "Effect": "Allow", "Resource": "acs:fc:<region>:<account-id>:services/*/functions/*/triggers/*" }, { "Action": "ram:PassRole", "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": ["ots:GetTrigger", "ots:UpdateTrigger", "ots:CreateTrigger", "ots:DeleteTrigger"], "Resource": "*" } ]}触发器角色权限
{ "Version": "1", "Statement": [ { "Action": ["ots:BatchGet*", "ots:Describe*", "ots:Get*", "ots:List*"], "Resource": "*", "Effect": "Allow" }, { "Action": ["fc:InvokeFunction"], "Resource": "*", "Effect": "Allow" } ]}EventBridge 触发器
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| triggerEnable | False | Boolean | 触发器禁用开关。对于 event-driven 事件投递模型,等同于 EventBridge 侧对应事件规则的禁用开关;对于 event-streaming 事件投递模型,等同于 EventBridge 侧对应事件流的启动/停止开关,由于事件流启动/停止需要一段时间,因此只有事件流成功启动后,读取到的 triggerEnable 字段才会是 true,其他情况下读取到的 triggerEnable 均为 false |
| asyncInvocationType | False | Boolean | 触发器调用函数的方式。目前支持同步调用以及异步调用 |
| eventSourceConfig | True | Struct | 事件源配置 |
| eventRuleFilterPattern | True | String | 事件模式。JSON 格式,详细规则可以参考 EventBridge 事件模式官方文档 |
| eventSinkConfig | False | Struct | 事件目标配置 |
| runOptions | False | Struct | 触发器运行时参数 |
参考案例:
triggers: - name: eventbridgeTriggerWithDefaultSource # sourceArn: acs:eventbridge:<region>:<accountID>:eventbus/<eventBusName>/rule/<eventRuleName> type: eventbridge # qualifier: LATEST config: triggerEnable: true asyncInvocationType: false eventRuleFilterPattern: '{"source":["acs.oss"],"type":["oss:BucketCreated:PutBucket"]}' eventSourceConfig: eventSourceType: Default - name: eventbridgeTriggerWithMNSSource # sourceArn: acs:eventbridge:<region>:<accountID>:eventbus/<eventBusName>/rule/<eventRuleName> type: eventbridge # qualifier: LATEST config: triggerEnable: true asyncInvocationType: false eventRuleFilterPattern: '{"source":["MNS-${functionName}-eventbridgeTriggerWithMNSSource"]}' eventSourceConfig: eventSourceType: MNS eventSourceParameters: sourceMNSParameters: QueueName: gjl-test IsBase64Decode: false - name: eventbridgeTriggerWithRocketMQSource # sourceArn: acs:eventbridge:<region>:<accountID>:eventbus/<eventBusName>/rule/<eventRuleName> type: eventbridge # qualifier: LATEST config: triggerEnable: true asyncInvocationType: false eventRuleFilterPattern: '{"source":["RocketMQ-${functionName}-eventbridgeTriggerWithRocketMQSource"]}' eventSourceConfig: eventSourceType: RocketMQ eventSourceParameters: sourceRocketMQParameters: RegionId: cn-hangzhou InstanceId: MQ_INST_164901546557****_BAAN**** GroupID: GID_group1 Topic: mytopic Timestamp: 1636597951984 - name: eventbridgeTriggerWithRabbitMQSource # sourceArn: acs:eventbridge:<region>:<accountID>:eventbus/<eventBusName>/rule/<eventRuleName> type: eventbridge # qualifier: LATEST config: triggerEnable: true asyncInvocationType: false eventRuleFilterPattern: '{"source":["RabbitMQ-${functionName}-eventbridgeTriggerWithRabbitMQSource"]}' eventSourceConfig: eventSourceType: RabbitMQ eventSourceParameters: sourceRabbitMQParameters: RegionId: cn-hangzhou InstanceId: amqp-cn-****** QueueName: test-queue VirtualHostName: test-virtual - name: eventbridgeTriggerWithKafkaSource # sourceArn: acs:eventbridge:<region>:<accountID>:eventstreaming/<eventStreamingName> type: eventbridge # qualifier: LATEST config: triggerEnable: true asyncInvocationType: false eventRuleFilterPattern: '{}' eventSinkConfig: deliveryOption: mode: event-streaming # event source 为 Kafka 时,只支持 event-streaming 模式 runOptions: mode: event-streaming # event source 为 Kafka 时,只支持 event-streaming 模式 maximumTasks: 3 errorsTolerance: 'ALL' retryStrategy: PushRetryStrategy: 'BACKOFF_RETRY' MaximumEventAgeInSeconds: 0 MaximumRetryAttempts: 0 deadLetterQueue: Arn: acs:mns:cn-qingdao:123:/queues/queueName batchWindow: CountBasedWindow: 2 TimeBasedWindow: 10 eventSourceConfig: eventSourceType: Kafka eventSourceParameters: sourceKafkaParameters: RegionId: cn-hangzhou InstanceId: myInstanceID Topic: myTopic ConsumerGroup: myConsumerGroup OffsetReset: latest Network: PublicNetwork VpcId: myVpcID VSwitchIds: myVSwitchID SecurityGroupId: mySecurityGroupID - name: eventbridgeTriggerWithDTSSource # sourceArn: acs:eventbridge:<region>:<accountID>:eventstreaming/<eventStreamingName> type: eventbridge # qualifier: LATEST config: triggerEnable: true asyncInvocationType: false eventRuleFilterPattern: '{}' eventSinkConfig: deliveryOption: eventSchema: CloudEvents # 支持 CloudEvents 以及 RawData 两种取值 runOptions: mode: event-streaming maximumTasks: 3 errorsTolerance: 'ALL' retryStrategy: PushRetryStrategy: 'BACKOFF_RETRY' MaximumEventAgeInSeconds: 0 MaximumRetryAttempts: 0 deadLetterQueue: Arn: acs:mns:cn-qingdao:123:/queues/queueName batchWindow: CountBasedWindow: 2 TimeBasedWindow: 10 eventSourceConfig: eventSourceType: DTS eventSourceParameters: sourceDTSParameters: RegionId: cn-hangzhou BrokerUrl: dts-cn-shanghai-vpc.aliyuncs.com:18003 # 数据订阅任务的网络连接地址 Topic: cn_shanghai_vpc_rm_uf6398ykj0218rk6t_dts_trigger_upgrade_from_old_version2 # 数据订阅任务的 Topic Sid: dtse34j22j025aq26p # 数据订阅消费组 ID Username: dts_trigger # 创建消费组时设置的账号 Password: dtsTest123 # 创建消费组时设置的密码 InitCheckPoint: 1677340805 # 期望消费第一条数据的时间戳。消费位点必须在订阅实例的数据范围之内 TaskId: e34z2gm325qp37m # DTSJobId权限配置相关
子账号权限
最大权限
AliyunFCFullAccess、AliyunEventBridgeFullAccess
操作最小权限
{ "Version": "1", "Statement": [ { "Action": ["fc:GetTrigger", "fc:CreateTrigger", "fc:UpdateTrigger", "fc:DeleteTrigger"], "Effect": "Allow", "Resource": "acs:fc:<region>:<account-id>:services/*/functions/*/triggers/*" }, { "Action": "ram:PassRole", "Effect": "Allow", "Resource": "*" }, { "Action": [ "eventbridge:CreateEventBus", "eventbridge:GetEventBus", "eventbridge:DeleteEventBus", "eventbridge:CreateRule", "eventbridge:GetRule", "eventbridge:UpdateRule", "eventbridge:EnableRule", "eventbridge:DisableRule", "eventbridge:DeleteRule", "eventbridge:ListRules", "eventbridge:UpdateTargets", "eventbridge:DeleteTargets", "eventbridge:ListTargets" ], "Effect": "Allow", "Resource": "*" } ]}触发器角色权限
EventBridge 触发器创建时无需指定 role,但是需要在开通 EventBridge 产品后,进行 SLR 授权,授权方式有如下两种:
- 在控制台点击授权
- 通过 terraform 进行授权,terraform 授权代码如下所示:
provider "alicloud" { access_key = "${alicloud_access_key}" secret_key = "${aliclou_secret_key}" region = "cn-hangzhou"}
resource "alicloud_event_bridge_service_linked_role" "service_linked_role" { product_name = "AliyunServiceRoleForEventBridgeSendToFC"}eventSourceConfig
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| eventSourceType | True | String | 触发器事件源类型,目前支持如下几种触发源: 1. Default:表示 EventBridge 官方触发源 2. MNS:消息队列 MNS 队列作为触发源 3. RocketMQ:消息队列 RockerMQ 作为触发源 4. RabbitMQ:消息队列 RabbitMQ 作为触发源 5. Kafka: 消息队列 Kafka 作为触发源 6. DTS: 数据传输服务 DTS 作为触发源 注:该字段不可更新,更新时传入该字段将被忽略 |
| eventSourceParameters | False | Struct | 自定义事件源参数,自定义事件源包括:MNS,RocketMQ,RabbitMQ,Kafka |
eventSourceParameters
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| sourceMNSParameters | False | Struct | 事件源为消息服务 MNS 时的自定义参数配置 |
| sourceRocketMQParameters | False | Struct | 事件源为消息服务 RockerMQ 时的自定义参数配置 |
| sourceRabbitMQParameters | False | Struct | 事件源为消息服务 RabbitMQ 时的自定义参数配置 |
| sourceKafkaParameters | False | Struct | 事件源为消息队列 Kafka 时的自定义参数配置 |
| sourceDTSParameters | False | Struct | 事件源为数据传输服务 DTS 时的自定义参数配置 |
sourceMNSParameters
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| RegionId | False | String | 消息服务 MNS Queue 所属地域 |
| QueueName | True | String | 消息服务 MNS 的 Queue 的名称 |
| IsBase64Decode | False | Boolean | 是否开启 Base64 编码。默认为 true |
sourceRocketMQParameters
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| RegionId | False | String | 消息队列 RocketMQ 版的实例所属地域 |
| InstanceId | True | String | 消息队列 RocketMQ 版的实例 ID。更多信息,请参见使用限制 |
| Topic | True | String | 消息队列 RocketMQ 版实例的 Topic 名称。更多信息,请参见使用限制 |
| Tag | False | String | 消息的过滤标签 |
| Offset | False | String | 消息的消费位点。取值说明如下: 1. CONSUME_FROM_LAST_OFFSET:从最新位点开始消费。 2. CONSUME_FROM_FIRST_OFFSET:从最早位点开始消费。 3. CONSUME_FROM_TIMESTAMP:从指定时间点的位点开始消费。 默认值:CONSUME_FROM_LAST_OFFSET |
| Timestamp | False | Number | 时间戳。仅当参数 Offset 取值为 CONSUME_FROM_TIMESTAMP 时,该参数有效 |
| GroupID | True | String | 消息队列 RocketMQ 版的 Group ID |
sourceRabbitMQParameters
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| RegionId | False | String | 消息服务 MNS Queue 所属地域 |
| InstanceId | True | String | 消息队列 RabbitMQ 版的实例的 ID。更多信息,请参见使用限制 |
| VirtualHostName | True | String | 消息队列 RabbitMQ 版实例的 Vhost 的名称。更多信息,请参见使用限制 |
| QueueName | True | String | 消息队列 RabbitMQ 版实例的 Queue 的名称。更多信息,请参见使用限制 |
sourceKafkaParameters
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| RegionId | False | String | 消息队列 Kafka 版的实例所属地域 |
| InstanceId | True | String | 消息队列 Kafka 版的实例 ID |
| Topic | True | String | 消息队列 Kafka 版的 Topic 名称 |
| ConsumerGroup | True | String | 消息队列 Kafka 版的资源组 ID |
| OffsetReset | True | String | 消息的消费位点,可选值有 latest 和 earliest,分别表示最新位点以及最早位点 |
| ExtendConfig | False | Object | 扩展参数 |
| Network | False | String | 所用网络类型,可选值有 PublicNetwork 以及 Default,前者表示使用自建 vpc 网络,后者表示使用默认公网 |
| VpcId | False | String | 所用 vpc 网络的 ID,网络类型为 PublicNetwork 时配置 |
| VSwitchIds | False | String | 所用 vpc 网络的交换机 ID,网络类型为 PublicNetwork 时配置 |
| SecurityGroupId | False | String | 所用 vpc 网络的安全组 ID,网络类型为 PublicNetwork 时配置 |
sourceDTSParameters
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| RegionId | True | String | 数据传输服务 DTS 任务所属地域 |
| BrokerUrl | True | String | 数据订阅任务的网络连接地址 |
| Topic | True | String | 数据订阅任务的 Topic |
| Sid | True | String | 数据订阅消费组 ID |
| Username | True | String | 创建消费组时设置的账号 |
| Password | True | String | 创建消费组时设置的密码 |
| InitCheckPoint | True | Number | 期望消费第一条数据的时间戳,单位是秒。消费位点必须在订阅实例的数据范围之内。 |
| TaskId | True | String | DTSJobId |
eventSinkConfig
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| deliveryOption | True | Struct | 事件投递参数 |
deliveryOption
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| mode | False | String | 事件投递模型,该参数与 runOptions 中的 mode 参数含义相同,但是优先级更低,不推荐使用 |
| eventSchema | False | String | 指定函数入口参数 event 中每个数据元素的格式,有如下两种取值模式: - CloudEvents: 以通用格式描述事件数据的规范,旨在简化不同服务、平台间的事件声明和传输 - RawData: 只投递 CloudEvents 中 $data 引用的数据,不包含 CloudEvents 格式中的其它元数据信息 |
runOptions
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| mode | True | String | 事件投递模型,优先级比 EventSinkConfig.DeliveryOption.mode 更高,可选值有 event-driven 以及 event-streaming,前者是事件驱动模型,底层由 eventbridge 的事件总线进行实现;后者是事件流模型,底层由 eventbridge 的事件流进行实现。runOptions 中参数只有在 mode 为 event-streaming 时才有效 |
| maximumTasks | False | String | 并发消费者数量,只有在指定 Kafka 事源时该参数有效 |
| errorsTolerance | False | String | 容错策略,即发生错误时是否选择容错。取值说明如下: ALL: 允许容错 NONE: 禁止容错 |
| retryStrategy | False | Struct | 事件推送失败时的重试策略相关参数 |
| deadLetterQueue | False | Struct | 死信队列配置,若配置了该配置,超过重试策略后的事件将被放入该队列中 |
| batchWindow | False | Struct | 调用函数时的批处理参数 |
retryStrategy
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| PushRetryStrategy | True | String | 事件推送失败时的重试策略,取值说明如下: BACKOFF_RETRY: 退避重试策略。重试 3 次,每次重试的间隔时间是 10 秒到 20 秒之间的随机值。 EXPONENTIAL_DECAY_RETRY: 指数衰减重试。重试 176 次,每次重试的间隔时间指数递增至 512 秒,总计重试时间为 1 天;每次重试的具体间隔为:1,2,4,8,16,32,64,128,256,512,512…512 秒(共 167 个 512)。 |
| MaximumEventAgeInSeconds | False | String | 事件消息的最大存活时间,单位是秒 |
| MaximumRetryAttempts | False | String | 事件消息的最大存活时间,单位是秒 |
deadLetterQueue
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| Arn | True | String | 死信队列的 Arn |
batchWindow
| 参数名 | 必填 | 类型 | 参数描述 |
|---|---|---|---|
| CountBasedWindow | False | String | 一次调用函数发送的最大批量消息条数,当积压的消息数量到达设定值时才会发送请求,取值范围为 [1, 10000]。例如 1。 |
| TimeBasedWindow | False | String | 调用函数的间隔时间,系统每到间隔时间点会将消息聚合后发给函数计算,取值范围为 [0,15],单位秒。0 秒表示无等待时间,直接投递。例如 3。 |