https://d226lax1qjow5r.cloudfront.net/blog/blogposts/automated-message-migration-from-aws-sqs-to-dynamodb/Blog_Message-Migration_1200x600.png

AWS SQSからDynamoDBへの自動メッセージマイグレーション

最終更新日 June 15, 2020

所要時間:2 分

エンタープライズアプリケーションでは、アプリケーションを大混乱に陥れるような大量の通知が発生します。アプリケーションに過負荷をかけたり、使用量のバーストに基づいて常にスケールアップ/ダウンしたりするのではなく、次のようなメッセージキューを使用します。 AWS SQSのようなメッセージキューを使うことで、負荷を調整することができる。キューにメッセージを追加することで、アプリケーションはよりタイムリーでコストを意識した方法でメッセージを処理することができる。

この例では、PHP のサーバーレスマイクロサービスを AWS Lambda上で PHP サーバーレスマイクロサービスを作成します。 Githubで利用可能なPHPアプリケーションで公開されている ブレフサーバーレス.サーバーレスアプリケーションは AWS SQSから Amazon DynamoDBから削除します。 SQSから削除します。

前提条件

セットアップ方法

をクローンする。 nexmo-community/messaging-aws-sqs-dynamodb-phpリポジトリを GitHub からクローンし、新しく作成したディレクトリに移動して次に進みます。

Composerを使って依存関係をインストールする

この例では、Composerを使って依存関係をインストールし、オートローダーをセットアップする必要がある。

Composer がグローバルにインストールされていると仮定して。 https://getcomposer.org/doc/00-intro.md#globally

composer install

AWSセットアップ

以下を作成する必要があります。 AWS認証情報を作成する必要があります。 Serverless.

また、新しい SQSキューを作成します。後で使用するため、ARNをメモしておいてください。

最後に、新しい DynamoDBテーブルを作成します。テーブル名とARNは後で使えるようにメモしておきます。

注意: DynamoDBテーブルに設定したプライマリキーのフィールド名が、SQSキューアイテムのメッセージIDと一致していることを確認してください。この例では messageId.

更新環境

提供された config.yml.distファイルを config.ymlに変更し、必要に応じて AWSそして DynamoDBに変更し、保存する。

AWS_REGION: us-east-1
AWS_VERSION: latest
AWS_DYNAMODB_TABLE_NAME:
AWS_SQS_ARN:
AWS_DYNAMODB_TABLE_ARN:

ラムダへのデプロイ

以上のアップデートが成功したら、次は Serverlessを使ってアプリを AWS Lambda.

serverless deploy

呼び出す

SQSにすでにメッセージがある場合は、その移行をテストすることができます。 SQSから DynamoDBへの移行をテストできます。 Serverlessローカルで

serverless invoke -f sqstodynamo

注:上記は、デフォルトで作成された関数名 sqstodynamoをデフォルトの serverless.ymlで作成された関数名を使用しています。

テストのために SQSにメッセージを追加できます。 AWS Consoleにメッセージを追加することができます。 このレポを参照してください。 SQS典型的な HTTP POSTリクエストには JSON.

自動化

この関数の使用を自動化するには、新しく作成された Lambdaラムダ・トリガーとして追加できます。 SQSインスタンスに追加します。

トリガーを追加することで、新しいメッセージが SQSメッセージが Lambda関数が呼び出され、メッセージが自動的に DynamoDBに自動的に移動する。 SQS.

貢献

何か質問があったり、問題が発生した場合は、以下までご連絡ください。 までご連絡ください。にご連絡いただくか VonageコミュニティSlackチームにお問い合わせください。頑張ってください。

シェア:

https://a.storyblok.com/f/270183/384x384/b3c7ffaf85/adamculp.png
Adam Culpヴォネージの卒業生

アダムは開発者兼コンサルタントで、ウルトラランニング、ブログ、そして指導と支援への飽くなき欲求を持ちながら、他の人々が素晴らしいことを成し遂げるためにテクノロジーを手なずけるのを助けることを楽しんでいる。