当前位置: 首页 > 知识库问答 >
问题:

从Kinesis Firehose转换Lambda进行网络/API调用

池俊茂
2023-03-14

我有一个用例,在将有效负载存储到S3之前,我需要对发送到我的Kinesis Firehose流的有效负载进行API调用。

流程为:运动数据流-

基本上,对于由我的Kinesis Firehose流使用的记录,我需要调用另一个后端服务来获取与该记录相关的其他数据,然后再存储到S3中,以便我们的EMR作业使用和编写查询。

我的问题是,有没有可能从Kinesis Firehose转换Lambda进行网络呼叫。我认为应该是这样,因为这只是另一个Lambda函数。我还想了解在Kinesis Firehose转换Lambda中进行API调用是否违反最佳实践。

敬请见识!

共有1个答案

左华灿
2023-03-14

我认为在转换lambda函数时进行网络调用没有任何问题。您需要确保的唯一一件事是,在转换为firehose接受的格式(如aws文档所示)后,将所有RecordID返回给firehose

 类似资料:
  • 我设法对接了我们的旧应用程序和更新的应用程序,但现在我需要通过API调用使它们彼此。 项目: project1=使用(桥驱动程序) project2=使用(桥驱动程序) project3=使用(桥驱动程序) null 我一直在查看,但显然不推荐使用它,或者不推荐使用它 尝试了从project1容器到project2容器的操作:

  • 我的(非常简单的)代码看起来是这样的: 我将构建好的jar上传到Lambda,并通过创建一个测试事件在AWS控制台中进行测试。它返回正确的响应,正如预期的那样。 但是,我希望API网关调用这个Lambda。我既使用了Lambda代理集成,也定义了自己的主体映射模板。我似乎无法使它工作,我一直得到: 我确定这是一件很简单的事情,我只是错过了一些东西...

  • 我正在进行转换,在我将输入定义为数组之前,它工作正常。我当前的(工作!)示例是:INPUT 使用此JOLT规范: 输出是: 这很完美,但是:我真正期望的输入是这样的: 我需要这样的输出: 我将在每个数组对象中接收“trainerName”,但我只需要使用一个。 你能帮我找出解决办法吗?我正在寻找几种解决方案,但找不到适合此示例的解决方案。 非常感谢提前!贝斯!

  • 我创建了一个lambda,它迭代给定S3 bucket中的所有文件,并删除S3 bucket中的文件。S3存储桶有大约100K个文件,我正在选择并删除大约60K个文件。我已将lambda的超时设置为最大(15分钟)超时值。lambda在几分钟后始终返回“网络错误”,尽管它似乎在后台运行了一段时间,甚至在返回错误后也是如此。你怎么能绕过这个?

  • 因特网程序使用inet_aton、inet_addr(已废弃)和inet_ntoa函数实现IP地址和点分十进制串之间的转换。 函数原型 #include <arpa/inet.h> /*将一个点分十进制串转换位网络字节顺序的IP地址,字符串有效返回1,否则为0*/ int inet_aton(const char *cp,struct in_addr *inp); /*若字符串有效则返回32位二进