由kinesis引发的跨帐户lambda触发器

Dan*_*ats 7 amazon-web-services amazon-kinesis aws-lambda

我试图通过帐户'A'中的Kinesis流在帐号'B'中触发lambda.这类似于此处描述的内容,除了示例使用S3而不是Kinesis.

为此,我正在尝试设置正确的权限,但遇到了困难.

首先我添加此权限:

  aws lambda add-permission \
--function-name "$function_name" \
--statement-id 'Id-123' \
--action "lambda:InvokeFunction" \
--principal $source_account \
--source-arn "$stream_arn" \
--source-account $source_account \
--region us-east-1 \
--profile "$profile"
Run Code Online (Sandbox Code Playgroud)

$source_account"A"的帐户ID 在哪里.

然后我尝试创建源映射:

 aws lambda create-event-source-mapping \
    --event-source-arn "$stream_arn" \
    --function-name "$function_name" \
    --starting-position TRIM_HORIZON \
    --region us-east-1 \
    --profile "$profile"
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

调用CreateEventSourceMapping操作时发生客户端错误(InvalidParameterValueException):角色和事件源必须与云功能位于同一帐户中

我不明白这个错误.它说我想做的事是不可能的吗?但是,在这里如何通过S3 完成,这基本上是相同的机制?

Sea*_*lin 1

不支持在 AWS Kinesis 和 Lambda 之间创建跨账户事件源映射。Kinesis 事件源映射使用轮询,而不是 S3 的推送模型。