我有一个从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。有什么办法可以利用它添加事件源。还是我必须导出表本身?
答案 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>/*');
);