通过CDK中的ARN将eventSource添加到Lambda

时间:2019-04-19 22:04:15

标签: amazon-web-services aws-cdk

我有一个从Dynamodb流读取的lambda函数。我从同一AWS账户中的另一个堆栈导出了Dynamodb流ARN。现在,在Lambda中添加eventSource时,它从Table构造中询问。

keytool -import

参考:https://awslabs.github.io/aws-cdk/refs/_aws-cdk_aws-lambda-event-sources.html#dynamodb-streams

但是我有流ARN。有什么办法可以利用它添加事件源。还是我必须导出表本身?

1 个答案:

答案 0 :(得分:1)

当前无法使用AWS CDK导入DynamoDB表。

仍然可以直接使用EventSourceMapping中的@aws-cdk/aws-lambda类来达到目标​​:

import iam = require('@aws-cdk/aws-iam');
import lambda = require('@aws-cdk/aws-lambda');

const fn = new lambda.Function(...);

new lambda.EventSourceMapping(this, 'DynamoDBEventSource', {
  target: fn,
  batchSize: ...,
  eventSourceArn: <your stream arn>,
  startingPosition: lambda.StartingPosition.TrimHorizon
});

fn.addToRolePolicy(
  new iam.PolicyStatement()
    .addActions('dynamodb:DescribeStream', 'dynamodb:GetRecords', 'dynamodb:GetShardIterator', 'dynamodb:ListStreams')
    .addResource('<your stream arn>/*');
);