标签: amazon-dynamodb-streams

为什么我在amazon-kinesis-client中的JSONObject上获得NoClassDefFoundError?

我已将来自aws-dynamodb-examples的DynamoDB流适配器演示的代码合并到我的Maven项目中,并且我遇到了运行时错误:

Exception in thread "Thread-2" java.lang.NoClassDefFoundError: com/amazonaws/util/json/JSONObject
at com.amazonaws.services.kinesis.leases.impl.Lease.toString(Lease.java:229)
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样,以及我可以做些什么来修复它?

我的pom文件是这样的:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.aligntech</groupId>
  <artifactId>dynamodbstream</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>dynamodbstream</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

      <dependency>
          <groupId>com.amazonaws</groupId>
          <artifactId>aws-java-sdk</artifactId>
          <version>LATEST</version>
      </dependency>

    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>dynamodb-streams-kinesis-adapter</artifactId>
      <version>LATEST</version>
    </dependency>


  </dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)

java amazon-web-services amazon-dynamodb amazon-kinesis amazon-dynamodb-streams

4
推荐指数
1
解决办法
2111
查看次数

单个DynamoDB流上的多个AWS Lambda函数

我有一个Lambda函数,该函数将多个DynamoDB流配置为事件源,这是更大的管道的一部分。在进行检查时,我发现下游组件之一缺少一些数据。我想编写一个更简单的Lambda函数,该函数被配置为前面提到的DynamoDB流之一的事件源。这将导致我的DynamoDB流之一具有从中读取的两个Lambda函数。我想知道是否可以?是否保证两个Lamdba函数都能接收流中放置的所有记录,并且我需要了解任何资源(读/写吞吐量)限制。在AWS网站上找不到与此相关的任何文档,但是我确实找到了有关分片处理的文档

要访问流并处理其中的流记录,必须执行以下操作:

  • 确定您要访问的流的唯一Amazon资源名称(ARN)。
  • 确定流中的哪个分片包含您感兴趣的流记录。
  • 访问分片并检索所需的流记录。

注意:同一时间从同一Streams分片读取的数据最多不超过2个。每个分片有两个以上的读取器可能会导致节流。

不确定上述情况与将Streams配置为Lambdas的事件源的情况有什么关系,而不是使用API​​从Streams手动读取的情况。

amazon-web-services aws-lambda amazon-dynamodb-streams

4
推荐指数
2
解决办法
4117
查看次数

DynamoDb:扫描查询不会返回所有数据

我有一个包含数千个数据的DynamoDb表.我正在使用扫描功能扫描表格,我已经应用了"Between"FilterExpression.但是,查询响应仅提供3条记录,而它应返回约100条记录.

我使用Node js创建了Lambda函数.

amazon-dynamodb aws-sdk aws-lambda amazon-dynamodb-streams

4
推荐指数
2
解决办法
5686
查看次数

设置AWS DynamoDB表的验证规则

实际上,我想对AWS DynamoDB表项目实施验证,如果规则违反项目字段,这将阻止记录插入/更新。

可能吗?

还是我们可以为dynamoDB表创建触发器lambda,该触发器在插入/更新之前触发。这样我们就可以检查验证规则并进行处理。

amazon-dynamodb aws-lambda amazon-dynamodb-streams

4
推荐指数
1
解决办法
1292
查看次数

AWS DynamoDB 流到 Redshift

我们希望将数据从 DynamoDB NoSQL 以流的形式连续移动到 Redshift 数据库中。我很难理解 AWS 中的所有新术语/技术。有

1) DynamoDB 流

2)AWS Lambda

3) AWS Kinesis Firehose

有人可以提供每个的简短摘要。什么是 DynamoDB 流?这与 AmazonKinesis 有何不同?看完所有资源,这是我的假设理解,请在下面验证。

(a) 我假设使用 DynamoDB Streams,创建 NoSQL 的流数据,并开始将其发送出去。它是发件人。

(b) Lambda 只允许人们消耗时间,这是租用处理 DynamoDB Stream 的服务器的时间。

(c) Kinesis FireHose 转换 DynamoDB 流,并放入 Redshift。

(d) AmazonQuickSight 是他们的商业智能工具,

这是对词汇表术语的正确理解吗?查看Stack 链接,想要更全面的信息。

在此处输入图片说明

amazon-web-services amazon-dynamodb amazon-redshift amazon-dynamodb-streams amazon-kinesis-firehose

4
推荐指数
1
解决办法
4984
查看次数

如何订阅 DynamoDB 中的更改

我不知道如何订阅 DynamoDB 数据库中的更改。让我举一个例子:用户 A 向用户 B 发送一条消息(保存在数据库中),并且在用户 B 的应用程序中,该消息自动出现。

我知道最近发布的 AWS AppSync 可以做到这一点,但我无法将它与 Ionic(我正在使用)集成。但是,必须有替代方案,因为 AWS AppSync 仅在 2017 年底/2018 年初发布。

我还在 DynamoDB 中看到了一个叫做 Streams 的东西,但不确定这是否是我需要的。

stream amazon-web-services amazon-dynamodb ionic-framework amazon-dynamodb-streams

4
推荐指数
1
解决办法
2173
查看次数

DynamoDB 流可以看到未提交的事务吗?

我有一个 DynamoDB 表,我在其中使用事务写入(https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transactions.html)。交易由 2 个看跌期权组成。假设第一个 put 成功,第二个 put 失败。在这种情况下,第一个 put 将被事务库回滚。

我还在表上启用了DynamoDB 流 ( https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html ),另一个应用程序从该流中使用。

问题:在回滚场景中,第一次成功放置会导致 DynamoDB 流事件,而回滚会导致另一个吗?如果是,是否有办法防止这种情况,即确保仅针对完全完成的事务触发流事件?

amazon-web-services amazon-dynamodb amazon-dynamodb-streams

4
推荐指数
1
解决办法
554
查看次数

Ceating dynamodb 表显示“无效的一个或多个参数值无效:某些索引键属性未在 AttributeDefinitions 中定义”

我正在尝试用 python 创建 dynamo db 表。下面是我的脚本。我正在尝试创建一个分区键和排序键和一堆列。

我试过的:

import boto3

dynamodb = boto3.resource('dynamodb')

table = dynamodb.create_table(
    TableName='g_view_data',
    KeySchema=[
        {
            'AttributeName': 'customer_id',
            'KeyType': 'HASH'  #Partition key
        },
        {
            'AttributeName': 'key_id',
            'KeyType': 'RANGE'  #Sort key
        }
    ],
    AttributeDefinitions=[
        {
            'AttributeName': 'cusotmer_id',
            'AttributeType': 'N'
        },
        {
            'AttributeName': 'key_id',
            'AttributeType': 'N'
        },
        {
            'AttributeName': 'dashboard_name',
            'AttributeType': 'S'
        },

        {
            'AttributeName': 'tsm',
            'AttributeType': 'S'
        },
        {
            'AttributeName': 'security_block',
            'AttributeType': 'S'
        },
        {
            'AttributeName': 'core_block',
            'AttributeType': 'S'
        },
        {
            'AttributeName': 'type',
            'AttributeType': 'S'
        },
        {
            'AttributeName': 'subscription', …
Run Code Online (Sandbox Code Playgroud)

python sdk amazon-web-services amazon-dynamodb-streams

4
推荐指数
2
解决办法
4250
查看次数

如何使用 amplify 框架/cli 配置 dynamodb-to-lambda 触发器

这里的amplify 坞站表示,我们可以通过运行**amplify add function**并选择“ Lambda Trigger ”选项将 lambda 函数配置为 dynamodb 触发器,但是当我运行"amplify add api"(选择 Python 作为运行时语言)时,我没有获得 lambda 触发器选项,我'我只获得“无服务器函数”和“lambda 层”选项。

请帮助我解决此问题以访问该功能。

文档快照 - 显示 4 个选项 在此输入图像描述

我的 CLI 快照 - 仅显示 2 个选项 在此输入图像描述

我知道它适用于 Nodejs 运行时 lambda,但我也希望 Python Lambda 具有此选项。

amazon-dynamodb-streams aws-amplify aws-amplify-cli

4
推荐指数
1
解决办法
2733
查看次数

dymodb 流中的序列号

我有一个启用流的 dynamodb 表。lambda 函数使用此流。dynamodb 流中的每条记录都分配有一个 SequenceNumber。其意义何在?

假设 record1 在 record2 之前进入流。这是否意味着 SequenceNumber(record1) < SequenceNumber(record2) ?

amazon-web-services amazon-dynamodb aws-lambda amazon-dynamodb-streams

4
推荐指数
1
解决办法
3695
查看次数