当前位置: 首页 > 知识库问答 >
问题:

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

袁运良
2023-03-14

我有一个lambda函数,它读取Dynamodb流。我已将Dynamodb流ARN从同一AWS帐户中的另一个堆栈导出。现在,在Lambda中添加eventSource时,它从表构造中请求。

const function = new lambda.Function(...);
function.addEventSource(new DynamoEventSource(table, {
  startingPosition: lambda.StartingPosition.TrimHorizon
}));

裁判:https://awslabs.github.io/aws-cdk/refs/_aws-cdk_aws-lambda-event-sources.html#dynamodb-溪流

但是我有一条小溪。是否有任何方法可以利用此添加事件源。或者我必须导出表本身?

共有1个答案

罗智刚
2023-03-14

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

您仍然可以通过直接使用@aws cdk/aws lambda中的EventSourceMapping类来实现您的目标:

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>/*');
);
 类似资料:
  • 问题内容: 我正在尝试使用最新的REST API发布JIRA附件。这是我的代码: 但是,我得到以下回应: 我的本地JIRA实例中确实存在密钥TEST-2的问题,我可以在Jira应用程序本身中“手动”添加附件。我知道我必须添加类型为“ X-Atlassian- Token:nocheck”的标头以防止XSRF,但是从输出来看,我必须做错了什么。令我更加困惑的是,在XSRF检查失败。 我已经在Goog

  • 我正在使用Apache PDFBox(http://PDFBox.Apache.org/)从任意数量的文件(包括图像和其他PDF)中创建PDF。现在我需要将MS Office文档(Word、Excel和Outlook MSGs)添加到PDF中。这些文件几乎可以有每一个Office版本,因此不允许该文件是新的Office文件(例如docx)还是旧的Office文件(例如doc)。 有没有办法只使用免

  • 问题内容: 是否可以通过shell脚本将用户添加到sudoers文件中?我一直在环顾四周,仍然找不到任何东西。 问题答案: 您可以简单地(当然具有提升的特权)直接访问文件: (请注意用户名和第一个之间的制表符) 或者,对于脚本: 然后保存到,然后从终端窗口运行。 要添加多个用户,请将脚本更改为此。 然后,像这样运行脚本(假设您将其另存为): 即,以空格分隔。 要从文件中读取名称: 也应以空格分隔。

  • 尝试Recycerview-StickyHeaders库:http://eowise.github.io/Recycerview-StickyHeaders/ 在使用这个库时,发现它监听基于OnItemTouchListener的整个header。有没有一种方法可以收听个人视图上的点击? 除此之外,我尝试直接在BigramHeaderAdapter(库示例中的头适配器)中添加OnClickList

  • 我正在使用ajax提交一个包含数组、文本字段和文件的多部分表单。 我将每个VAR附加到主数据中,如下所示 然后使用ajax函数将其发送到PHP文件中存储在sql DB中。 但是在PHP端,变量(一个数组)显示为字符串。 当我没有将它作为表单数据与ajax一起发送,而是使用简单的选项时,我会在PHP端将它作为一个数组来获取,但这样我就不能同时发送文件。 有什么解决办法吗?

  • 问题内容: 我正在使用Apache PDFBox(http://pdfbox.apache.org/)从任意数量的文件(包括图像和其他PDF)中创建PDF。现在,我需要将MS Office文档(Word,Excel和Outlook MSG)添加到PDF。这些文件几乎可以具有每个Office版本,因此不能认为该文件是新的Office文件(例如docx)还是旧的办公室文件(例如doc)。 有什么办法只