【问题标题】:It is possible to Access AWS DynamoDB streams accross accounts?是否可以跨账户访问 AWS DynamoDB 流?
【发布时间】:2020-06-06 16:51:07
【问题描述】:

我的公司使用多账户系统管理 AWS。我在账户 A 中有一个 lambda 函数,在账户 B 中有一个启用了 Stream 的 DynamoDB 表。我希望流事件触发我的函数。

当我跑步时:

aws lambda 创建事件源映射 --event-source-arn arn:aws:dynamodb:us-east-1:101010101:table/table/stream/2016-08-09T23:00:46.852 --function-name Lambda-qa --启用 --批量大小 10 --starting-position TRIM_HORIZON

我收到以下错误: 调用 CreateEventSourceMapping 操作时出错(InvalidParameterValueException):角色和事件源必须与云函数在同一帐户中

看起来 Lambda 函数和 DynamoDB 流必须在同一个账户中。但是可以通过其他方式从accountB中读取accountA中的DynamoDB流吗?重定向、SNS、SQS、S3 或自定义应用程序。

【问题讨论】:

    标签: amazon-dynamodb aws-lambda


    【解决方案1】:

    很遗憾,没有。

    来自 AWS 文档:

    “重要

    您必须在创建 Lambda 函数的同一区域中创建 DynamoDB 表。本教程假设美国东部(弗吉尼亚北部)地区。 另外,表和 Lambda 函数必须属于同一个 AWS 账户。”

    (强调)

    参考: http://docs.aws.amazon.com/lambda/latest/dg/with-ddb-configure-ddb.html

    【讨论】:

    • 不幸的是,该链接不再有效。是否还有官方参考?
    • 这个答案在 2021 年仍然适用吗?
    • 这是我在 2019 年 9 月找到的关于该主题的最新文档:aws.amazon.com/premiumsupport/knowledge-center/…“Lambda 目前不支持来自 Kinesis 或任何基于流的来源的跨账户触发器。”
    【解决方案2】:

    由于 DynamoDB 在其流中使用 Kinesis,因此您无法在 DynamoDB 表和 lambda 之间创建跨账户事件源映射。

    这在 AWS 的以下博客文章中有记录:

    How do I invoke my Lambda function using a cross-account Kinesis stream?

    Lambda目前不支持来自 Kinesis 或任何基于流的来源的跨账户触发器。

    博文还提供了一种解决方法:

    作为一种解决方法,您可以在与 Kinesis 流(账户 A)相同的账户中使用“轮询”Lambda 函数来调用另一个账户(账户 B)中的“处理器”Lambda 函数。

    【讨论】:

      猜你喜欢
      • 2022-01-06
      • 2019-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 2020-06-18
      • 1970-01-01
      相关资源
      最近更新 更多