Skip to content

triggers字段

triggers 字段

参数名必填类型参数描述
nameTrueString触发器名称
typeTrueEnum触发器类型
roleFalseString使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限
sourceArnFalseString触发器事件源的 ARN,对于 EB 触发器,该字段为选填项,若主动填写该字段,表示将 EB 侧已存在资源关联到该触发器,注意,两个不同 EB 触发器不要配置同一个 sourceArn,否则触发器的更新/删除操作会相互影响
qualifierFalseString触发器函数的版本或者别名,默认 LATEST
configTrueStruct触发器配置,包括OSS 触发器, Log 触发器, Timer 触发器, Http 触发器, MNS 触发器, CDN 触发器, EventBridge 触发器

type 目前支持:http, timer, oss, log, mns_topic, cdn_events, tablestore, eventbridge

OSS 触发器

参数名必填类型参数描述
bucketNameTrueStringOSS 中目标 bucket 名称
eventsTrueList<String>OSS 端触发函数执行的事件列表, 相关文档:https://help.aliyun.com/document_detail/62922.html#section-mf3-l4l-1nf
filterTrueStruct触发条件

参考案例:

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: ''

权限配置相关

子账号权限
最大权限

AliyunFCFullAccessAliyunOSSFullAccess

操作最小权限
{
"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

参数名必填类型参数描述
KeyTrueStruct键值
Key
参数名必填类型参数描述
PrefixTrueString前缀
SuffixTrueString后缀

Log 触发器

参数名必填类型参数描述
logConfigTrueStruct日志配置
jobConfigTrueStructjob 配置
sourceConfigTrueStructsource 配置
functionParameterTrueStruct该参数将作为函数 Event 的 Parameter 传入函数。默认值为空({})
enableTrueBoolean触发器开关

参考案例:

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

权限配置相关

子账号权限
最大权限

AliyunFCFullAccessAliyunLogFullAccess

最小权限
{
"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

参数名必填类型参数描述
projectTrueString日志项目名称
logstoreTrueString日志仓库名称,日志服务触发函数执行过程的日志会记录到该日志仓库中

jobConfig

参数名必填类型参数描述
maxRetryTimeFalseString表示日志服务触发函数执行时,如果遇到错误,所允许的最大尝试次数,取值范围:[0,100]
triggerIntervalFalseString日志服务触发函数运行的时间间隔,取值范围:[3,600],单位:秒

sourceConfig

参数名必填类型参数描述
logstoreTrueString触发器会定时从该日志仓库中订阅数据到函数服务进行自定义加工

functionParameter

Object 格式,例如:

TempKey: tempValue

Timer 触发器

参数名必填类型参数描述
cronExpressionTrueString时间触发器表达式,支持两种设置:@every、cron 表达式
enableTrueBoolean是否启用该触发器
payloadFalseString代表触发器事件本身的输入内容

参考案例:

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 触发器

参数名必填类型参数描述
authTypeTrueString鉴权类型,可选值:anonymous、function
disableURLInternetFalseBoolean是否禁用公网访问 URL,默认为 false
methodsTrueList<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 触发器

参数名必填类型参数描述
topicNameTrueStringmns topic 的名字
regionFalseListmns topic 所在的 region,如果不填,默认为和函数一样的 region
notifyContentFormatFalseString推送给函数入参 event 的格式,可选值:STREAM, JSON
notifyStrategyFalseString调用函数的重试策略,可选值:BACKOFF_RETRY, EXPONENTIAL_DECAY_RETRY
filterTagFalseString描述了该订阅中消息过滤的标签(标签一致的消息才会被推送),不超过 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

权限配置相关

子账号需要的函数权限
最大权限

AliyunFCFullAccessAliyunMNSFullAccess

最小权限
{
"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 触发器

参数名必填类型参数描述
eventNameTrueString为 CDN 端触发函数执行的事件,一经创建不能更改
eventVersionTrueString为 CDN 端触发函数执行事件的版本,一经创建不能更改
notesTrueString备注信息
filterTrueStruct过滤器(至少需要一个过滤器)

参考案例:

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

权限配置相关

子账号权限
最大权限

AliyunFCFullAccessAliyunCDNFullAccess

最小权限
{
"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

参数名必填类型参数描述
domainTrueList<String>过滤参数值的集合

Tablestore 触发器

参数名必填类型参数描述
instanceNameTrueString表格存储实例的名称
tableNameTrueString实例中的表名称

参考案例:

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

权限配置相关

子账号需要的函数权限
最大权限

AliyunFCFullAccessAliyunOTSFullAccess

最小权限
{
"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 触发器

参数名必填类型参数描述
triggerEnableFalseBoolean触发器禁用开关。对于 event-driven 事件投递模型,等同于 EventBridge 侧对应事件规则的禁用开关;对于 event-streaming 事件投递模型,等同于 EventBridge 侧对应事件流的启动/停止开关,由于事件流启动/停止需要一段时间,因此只有事件流成功启动后,读取到的 triggerEnable 字段才会是 true,其他情况下读取到的 triggerEnable 均为 false
asyncInvocationTypeFalseBoolean触发器调用函数的方式。目前支持同步调用以及异步调用
eventSourceConfigTrueStruct事件源配置
eventRuleFilterPatternTrueString事件模式。JSON 格式,详细规则可以参考 EventBridge 事件模式官方文档
eventSinkConfigFalseStruct事件目标配置
runOptionsFalseStruct触发器运行时参数

参考案例:

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

权限配置相关

子账号权限
最大权限

AliyunFCFullAccessAliyunEventBridgeFullAccess

操作最小权限
{
"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

参数名必填类型参数描述
eventSourceTypeTrueString触发器事件源类型,目前支持如下几种触发源:
1. Default:表示 EventBridge 官方触发源
2. MNS:消息队列 MNS 队列作为触发源
3. RocketMQ:消息队列 RockerMQ 作为触发源
4. RabbitMQ:消息队列 RabbitMQ 作为触发源
5. Kafka: 消息队列 Kafka 作为触发源
6. DTS: 数据传输服务 DTS 作为触发源
注:该字段不可更新,更新时传入该字段将被忽略
eventSourceParametersFalseStruct自定义事件源参数,自定义事件源包括:MNS,RocketMQ,RabbitMQ,Kafka

eventSourceParameters

参数名必填类型参数描述
sourceMNSParametersFalseStruct事件源为消息服务 MNS 时的自定义参数配置
sourceRocketMQParametersFalseStruct事件源为消息服务 RockerMQ 时的自定义参数配置
sourceRabbitMQParametersFalseStruct事件源为消息服务 RabbitMQ 时的自定义参数配置
sourceKafkaParametersFalseStruct事件源为消息队列 Kafka 时的自定义参数配置
sourceDTSParametersFalseStruct事件源为数据传输服务 DTS 时的自定义参数配置

sourceMNSParameters

参数名必填类型参数描述
RegionIdFalseString消息服务 MNS Queue 所属地域
QueueNameTrueString消息服务 MNS 的 Queue 的名称
IsBase64DecodeFalseBoolean是否开启 Base64 编码。默认为 true

sourceRocketMQParameters

参数名必填类型参数描述
RegionIdFalseString消息队列 RocketMQ 版的实例所属地域
InstanceIdTrueString消息队列 RocketMQ 版的实例 ID。更多信息,请参见使用限制
TopicTrueString消息队列 RocketMQ 版实例的 Topic 名称。更多信息,请参见使用限制
TagFalseString消息的过滤标签
OffsetFalseString消息的消费位点。取值说明如下:
1. CONSUME_FROM_LAST_OFFSET:从最新位点开始消费。
2. CONSUME_FROM_FIRST_OFFSET:从最早位点开始消费。
3. CONSUME_FROM_TIMESTAMP:从指定时间点的位点开始消费。

默认值:CONSUME_FROM_LAST_OFFSET
TimestampFalseNumber时间戳。仅当参数 Offset 取值为 CONSUME_FROM_TIMESTAMP 时,该参数有效
GroupIDTrueString消息队列 RocketMQ 版的 Group ID

sourceRabbitMQParameters

参数名必填类型参数描述
RegionIdFalseString消息服务 MNS Queue 所属地域
InstanceIdTrueString消息队列 RabbitMQ 版的实例的 ID。更多信息,请参见使用限制
VirtualHostNameTrueString消息队列 RabbitMQ 版实例的 Vhost 的名称。更多信息,请参见使用限制
QueueNameTrueString消息队列 RabbitMQ 版实例的 Queue 的名称。更多信息,请参见使用限制

sourceKafkaParameters

参数名必填类型参数描述
RegionIdFalseString消息队列 Kafka 版的实例所属地域
InstanceIdTrueString消息队列 Kafka 版的实例 ID
TopicTrueString消息队列 Kafka 版的 Topic 名称
ConsumerGroupTrueString消息队列 Kafka 版的资源组 ID
OffsetResetTrueString消息的消费位点,可选值有 latest 和 earliest,分别表示最新位点以及最早位点
ExtendConfigFalseObject扩展参数
NetworkFalseString所用网络类型,可选值有 PublicNetwork 以及 Default,前者表示使用自建 vpc 网络,后者表示使用默认公网
VpcIdFalseString所用 vpc 网络的 ID,网络类型为 PublicNetwork 时配置
VSwitchIdsFalseString所用 vpc 网络的交换机 ID,网络类型为 PublicNetwork 时配置
SecurityGroupIdFalseString所用 vpc 网络的安全组 ID,网络类型为 PublicNetwork 时配置

sourceDTSParameters

参数名必填类型参数描述
RegionIdTrueString数据传输服务 DTS 任务所属地域
BrokerUrlTrueString数据订阅任务的网络连接地址
TopicTrueString数据订阅任务的 Topic
SidTrueString数据订阅消费组 ID
UsernameTrueString创建消费组时设置的账号
PasswordTrueString创建消费组时设置的密码
InitCheckPointTrueNumber期望消费第一条数据的时间戳,单位是秒。消费位点必须在订阅实例的数据范围之内。
TaskIdTrueStringDTSJobId

eventSinkConfig

参数名必填类型参数描述
deliveryOptionTrueStruct事件投递参数

deliveryOption

参数名必填类型参数描述
modeFalseString事件投递模型,该参数与 runOptions 中的 mode 参数含义相同,但是优先级更低,不推荐使用
eventSchemaFalseString指定函数入口参数 event 中每个数据元素的格式,有如下两种取值模式:
- CloudEvents: 以通用格式描述事件数据的规范,旨在简化不同服务、平台间的事件声明和传输
- RawData: 只投递 CloudEvents 中 $data 引用的数据,不包含 CloudEvents 格式中的其它元数据信息

runOptions

参数名必填类型参数描述
modeTrueString事件投递模型,优先级比 EventSinkConfig.DeliveryOption.mode 更高,可选值有 event-driven 以及 event-streaming,前者是事件驱动模型,底层由 eventbridge 的事件总线进行实现;后者是事件流模型,底层由 eventbridge 的事件流进行实现。runOptions 中参数只有在 mode 为 event-streaming 时才有效
maximumTasksFalseString并发消费者数量,只有在指定 Kafka 事源时该参数有效
errorsToleranceFalseString容错策略,即发生错误时是否选择容错。取值说明如下:
ALL: 允许容错
NONE: 禁止容错
retryStrategyFalseStruct事件推送失败时的重试策略相关参数
deadLetterQueueFalseStruct死信队列配置,若配置了该配置,超过重试策略后的事件将被放入该队列中
batchWindowFalseStruct调用函数时的批处理参数

retryStrategy

参数名必填类型参数描述
PushRetryStrategyTrueString事件推送失败时的重试策略,取值说明如下:
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)。
MaximumEventAgeInSecondsFalseString事件消息的最大存活时间,单位是秒
MaximumRetryAttemptsFalseString事件消息的最大存活时间,单位是秒

deadLetterQueue

参数名必填类型参数描述
ArnTrueString死信队列的 Arn

batchWindow

参数名必填类型参数描述
CountBasedWindowFalseString一次调用函数发送的最大批量消息条数,当积压的消息数量到达设定值时才会发送请求,取值范围为 [1, 10000]。例如 1。
TimeBasedWindowFalseString调用函数的间隔时间,系统每到间隔时间点会将消息聚合后发给函数计算,取值范围为 [0,15],单位秒。0 秒表示无等待时间,直接投递。例如 3。