問題タブ [amazon-dynamodb-streams]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
15057 参照

java - DynamoDB ストリームの新しいイメージから純粋な Json 文字列を取得するには?

ストリーミングが有効になっている Dynamodb テーブルがあります。また、AWS Lambda 関数を呼び出すこのテーブルのトリガーも作成しました。このラムダ関数内で、Dynamodb ストリームから新しいイメージ (変更後の Dynamodb アイテム) を読み取ろうとしており、そこから純粋な json 文字列を取得しようとしています。私の質問は、ストリーム経由で送信された DynamoDB アイテムの純粋な json 文字列を取得するにはどうすればよいですか? 以下のコード スニペットを使用して新しい画像を取得していますが、json 文字列を取得する方法がわかりません。あなたの助けに感謝。

}

0 投票する
1 に答える
4501 参照

aws-lambda - AWS Dynamodb ストリームの読み取り

DynamoDB Streams を使用して、S3 で DynamoDB の増分バックアップを実行したいと考えています。dynamodb ストリームを読み取り、ファイルを S3 に書き込むラムダがあります。既に読み込まれたシャードをマークするために、ExclusiveStartShardId を構成ファイルにログインさせました。

私がすることは:

  1. ストリームを記述します (ログに記録された ExclusiveStartShardId を使用)
  2. ストリームのシャードを取得する
  3. CLOSED (EndingSequenceNumber を持つ) のすべてのシャードに対して、次のことを行います。
    • 特定のシャードのシャード イテレーターを取得します (shardIteratorType: 'TRIM_HORIZON')
    • NextShardIterator が null になるまで、シャードを反復処理してレコードをフェッチする

ここでの問題は、閉じられたシャードのみを読み取り、新しいレコードを取得するために、それが閉じられるまで (未定の時間) 待たなければならないことです。

通常、最後のシャードはOPEN状態のようです (EndingSequenceNumber はありません)。上記の疑似コードから EndingSequenceNumber のチェックを削除すると、最後のシャードに到達すると NextShardIterator が常に表示されるため、無限ループが発生します。シャードに「ギャップ」がある可能性があるため、フェッチされたアイテムが 0 であるかどうかも確認できません。

このチュートリアルでは、無限ループを停止するためにnumChangesが使用されますhttp://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.LowLevel.Walkthrough.html#Streams.LowLevel.Walkthrough.Step5

この状況での最善のアプローチは何ですか?

同様の質問も見つけました: Reading data from dynamodb streams。残念ながら、私の質問に対する答えは見つかりませんでした。

0 投票する
0 に答える
118 参照

amazon-web-services - aws cloudsearch と dynamodb を組み合わせて、リアルタイムでスケーラブルで適応性のある検索システムを作成するには?

aws の cloudsearch を使用して、反応性の高い検索システムを作成したいと考えています。すでにラムダ トリガーと dynamodb トリガーの間のテスト プロセスを設定していますが、結果は期待したものではありません。私が欲しいのは、作成したdynamodbテーブルから動的かつリアルタイムでデータを取得するように検索システムを作成することです。つまり、テーブルからデータを取得するためにレコード数を増やすたびにバッチ サイズを設定する必要はありません。だから、私はいくつかのスケーラビリティを求めています。また、検索システムが非常に反応的である必要があります。新しいエントリがある場合、クラウドサーチでインデックスが作成される約 1 分前に発生する可能性があるためです。それは多くの時間です。データを投稿するたびに、検索できるようになるまで 1 分待たなければなりません。もっと反応的なものを期待しています。

どんな助けでも大歓迎です。

ありがとう。

0 投票する
2 に答える
2918 参照

apache-kafka - DynamoDB への Kafka エントリ

Kafka トピックに含まれるすべてのレコードを DynamoDB に挿入したいと考えています。同じことができるオープンソースのプラグインはありますか。または、DynamoDB 内でそれを行うことができる他のより良い方法はありますか?

Pls は提案

ロケシュ・ナラヤン

0 投票する
0 に答える
84 参照

ios - AWS iOS SDK: DynamoDB テーブルに変更が加えられたときにロング ポーリングや通知を受け取ることは可能ですか?

特定のテーブルのほぼリアルタイムの更新を必要とするアプリに取り組んでいます。現在の AWS iOS SDK には、DynamoDB テーブルに変更が加えられたときに通知される機能が組み込まれていますか? 私は少し読んでDynamoDB Streamsについて知っていましたが、iOS API リファレンスを調べたときにそれらについて何も見ませんでした。

この機能が iOS SDK にまだ存在しない場合、Dynamo シャード情報を別のソース (REST API 呼び出しなど) からアプリに取得することはできますか?

0 投票する
2 に答える
2337 参照

amazon-web-services - AWS Lambda を介して Amazon Elasticsearch Services で Dynamodb ストリーム データのインデックスを作成する方法を教えてください。

このチュートリアルを順を追って実行しましたが、「結果のテスト」ステップに到達すると、例に「すべての製品」が表示されているため、インデックス時間にテーブル名が表示されません。

つまり、dynamodb テーブルが Amazon ES ドメインでインデックス化されていないことを意味します。

例と同じように、すべての承認を設定し、ラムダを構成しました。

AWS ES で dynamodb ストリームをトリガーする方法がわかりません。

0 投票する
1 に答える
108 参照

amazon-dynamodb - ペイロードでの DynamoDB のインデックス作成

私の DynamboDB 行項目は次のようになります: (それは私に与えられます)

id + date_time にインデックスを追加しました。どのようにPayload.typeにインデックスを追加できますか?

ありがとう

0 投票する
1 に答える
438 参照

amazon-dynamodb - DynamoDB ミューテーションはどのストリームシャードに配置されますか?

DynamoDB を ElasticSearch (ES) に複製することを検討しています。この目的のためにlogstash 入力プラグインを評価しましたが、次の欠点が見つかりました。

  • プル モードの logstash には、HA/フェイルオーバー機能がありません。レプリケーション用の SPOF になります
  • ES インデックスでアプリケーション レベルの結合を行いたくないため、複数のテーブルを 1 つの ES ドキュメントにマージしたいと考えています。プラグインは、このユース ケースの機能を提供しません。

したがって、次の 2 つのアプローチを評価しています。

  1. ラムダは DynamoDB ストリームを読み取り、SQS を介して ES にプッシュします
  2. AWS ラムダを置き換える独自の DynamoDB ストリーム プロセッサ

ここで、実際の問題に取り掛かります。Dynamo ストリームから ES にデータをレプリケートするには、同じエンティティに対して複数のミューテーションが存在する可能性があるため、順序付けが重要です。Streams/Lambda のドキュメントから、異なるストリーム シャードのコンテンツがラムダによって同時に処理されることが言及されています。

AWS は、DynamoDB ミューテーションがストリーム シャードにどのようにマッピングされるかについての詳細を文書化していません (または、少なくとも私は見つけることができませんでした)。

ミューテーションがどのストリーム シャードにマッピングされるかを制御できないと、ストリーム処理の並列化を制御する開発者の機能が提供されません。上記のアプローチ #1 では、同じ ES ドキュメントが順不同で更新される可能性があります。アプローチ #2 は順次処理することで解決できますが、シャードの配置戦略に関する契約がない場合、(データ パーティション間であっても) レプリケーションの並列化/スケーリングは許可されません。

スケールする方法と、レプリケーションを障害に対して回復力のあるものにする方法について何か考えはありますか? または、突然変異がdynamodbストリームシャードにどのように配置されるかについて、誰かが光を当てることができますか?