Skip to content

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

权限配置相关

子账号权限
最大权限

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

参数名 必填 类型 参数描述
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

权限配置相关

子账号权限
最大权限

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

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

jobConfig

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

sourceConfig

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

functionParameter

Object 格式,例如:

TempKey: tempValue

Timer 触发器

参数名 必填 类型 参数描述
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

权限配置相关

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

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

参数名 必填 类型 参数描述
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

权限配置相关

子账号权限
最大权限

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

参数名 必填 类型 参数描述
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

权限配置相关

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

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

参数名 必填 类型 参数描述
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

权限配置相关

子账号权限
最大权限

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

参数名 必填 类型 参数描述
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。