You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过EventBridge Enrichment转换S3对象键扩展名替代Lambda?

问题:能否用EventBridge转换器实现S3对象键的扩展名替换?

当前实现流程

我目前用Lambda作为SQS和Step Functions之间的桥接组件:当S3触发createObject事件时,会向SQS发送消息触发该Lambda。Lambda仅负责转换对象键并调用Step Functions,代码如下:

const body = JSON.parse(event.Records[0].body);
const key = decodeURIComponent(body.Records[0].s3.object.key.replace(/\+/g, ' '));
const Bucket = body.Records[0].s3.bucket.name;
const fileName = key.split(".")[0];

const jsonInput = {
    Bucket,
    Key: `${fileName}.json`
}

return await invokeStepFunction(jsonInput, `exec-${new Date().toISOString()}-${fileName}`);

需求目标

我希望去掉这个Lambda,直接通过EventBridge的Enrichment步骤完成相同的数据转换:提取对象键名并将其扩展名修改为.json,同时处理对象键的URL解码(替换+为空格后解码)。

示例输入

{
  "body": {
    "Records": [{
      "s3": {
        "bucket": {
          "name": "test-1"
        },
        "object": {
          "key": "test.mp4"
        }
      }
    }]
  }
}

期望输出

{
  "Bucket": "test-1",
  "Key": "test.json"
}

现有转换器雏形

我尝试过的转换器结构如下,但还没实现字符串处理逻辑:

{
    "Bucket": <$.body.Records[0].s3.bucket.name>,
    "Key": <$.body.Records[0].s3.object.key>
}

核心疑问

能不能在EventBridge的Transformer步骤中使用replace、substring这类字符串函数,完成上述对象键的解码、扩展名替换操作?


内容的提问来源于stack exchange,提问作者Pedro Elias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 08:57:52