如何将 Lambda 函数的结果发布到跨账户 Kinesis Stream

how to publish result of a Lambda Function to a cross-account Kinesis Stream

假设我有两个帐户 111111111111222222222222 并且想要执行以下操作。

  (Lambda)   ->  (Kinesis)
111111111111     222222222222

其中 Lambda 函数是数据源的触发器(可能是 111111111111 中的另一个 Kinesis 流)。

exports.handler = async (event, context) => {

  // data transformed here
  const result = event.records.map(record => {});

  return {data: result};
}

我正在尝试格式化 111111111111 的 Lambda 函数中的数据,然后将其发送到 22222222222 的 Kinesis 流,但我在这方面找不到很多资源。

我遇到了这个 SO post。除了 IAM 角色,似乎每次调用 Lambda 函数都需要使用 22222222222 帐户创建一个会话并创建一个 Kinesis 实例以便调用 PutRecord。这对我来说像是一个危险信号,因为我认为 Lambda 函数可以使用 resourceArn 设置一个跨账户目标,以将其结果数据发送到。我错过了什么,还有更好的替代方法吗?

This looks like a red flag to me as I was thinking Lambda function could just set up a cross-account destination with resourceArn to send its result data to.

这不是危险信号。 跨账户 IAM 角色 是针对运动的完成方式,因为运动流没有基于资源的策略。因此,您必须在您的 lambda 中从帐户 2 承担 IAM 角色。

我不确定你指的是哪个 resourceArn。我唯一能想到的是 resourceArn 用于 Kinesis Data Analytics。这不适用于 Kinesis Data Streams。