我在帐户A中有一个DynamoDB表,在帐户B中有一个AWS Lambda函数。当DynamoDB表中有更改时,我需要触发Lambda函数。
我碰到了aws lambda - It is possible to Access AWS DynamoDB streams accross accounts? - Stack Overflow,说不可能。但是我再次发现amazon web services - Cross account role for an AWS Lambda function - Stack Overflow表示可能。我不确定哪一个是正确的。
有人尝试过与我尝试实现的场景相同的场景吗?
答案 0 :(得分:0)
所指向的第一个链接是正确的。从基于流的事件到Lambda的触发器仅限于相同的AWS帐户和相同的区域。
但是,有一种方法可以实现您的目标。
Pre-requisite
:我假设您已经在AWS帐户 A 中创建了一个Dynamo DB(DDB)表(简称为 Table_A )。另外,您在AWS帐户 B 中有一个处理lambda(简称为 Processing_Lambda )。
步骤:
在 Proxy_Lambda 中添加代码,以便将从流中读取的事件发布到SNS主题 AuditEventFromTableA 。
创建一个AWS SQS队列(如果您的用例需要顺序事件,也可以是FIFO队列)。此队列存在于AWS账户 B 中。我们将此队列称为 AuditEventQueue-TableA-AccountA 。
Result
:这样,您将可以基于帐户A的发电机表中的变化来触发帐户B中存在的lambda。
注意:如果您的用例要求严格跟踪顺序事件,则您可能希望将更新事件从 Proxy_Lambda 直接发布到帐户B中存在的AWS Kinesis流中,而不是SNS-SQS路径中。 / p>
答案 1 :(得分:0)
简单! 在帐户A中创建代理Lambda A,并允许A调用目标Lambda Bin帐户B。 DDB流触发lambdaA。LambdaA调用Lambda B。