如何将 Lambda 函数的结果发布到跨账户 Kinesis Stream
how to publish result of a Lambda Function to a cross-account Kinesis Stream
假设我有两个帐户 111111111111
和 222222222222
并且想要执行以下操作。
(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。
假设我有两个帐户 111111111111
和 222222222222
并且想要执行以下操作。
(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。