/ / ec2でs3に保存された画像のサムネイルを作成し、仕上げ時にレールと通信するエレガントな方法? - python、node.js、amazon-s3、amazon-ec2、aws-lambda

ec2でs3に保存された画像のサムネイルを作成し、仕上げ時にレールと通信するエレガントな方法? - python、node.js、amazon-s3、amazon-ec2、aws-lambda

OK、私のセットアップの簡単な要約と私が達成したいこと:

  1. 私は自分のウェブサイトを走らせるレール2.3.5サーバを持っています。私は自分のサイトにユーザーがs3に直接画像をアップロードできるフラッシュアプ​​リケーションを持っています。

  2. アップロードが完了すると、レールに通知されます。

  3. 画像がs3にアップロードされ、レールが通知された時点で、レールがec2にあるものに何かの投稿を送信して、2つのサムネイル(110x110と600x600)を作成します。

  4. サムネイルが作成されてs3に転送されるとき、私はec2上のどのプロセスでも、サムネイルの作成が完了し、s3上にあることを通知するために投稿をレールに戻すことを望みます。

これを達成する最良の方法は何ですか?私は、次のようなツールを見てきました。 ナイフ 私はec2やそれに類するサービスを使い慣れていません。

ありがとう

回答:

回答№1は6

私が使用するプロセスは次のとおりです。

  1. イメージがS3にアップロードされると、レールに通知が送信され、Amazon SQSキューにメッセージが追加されます( http://aws.amazon.com/sqs/

  2. EC2上で実行されているバックグラウンドプロセスは、キューをチェックしてメッセージを処理し、サムネイルを生成します

  3. サムネイルが生成されると、Amazon SNSを使用して通知が送信されます( http://aws.amazon.com/sns/)とこの通知に応じてあなたのレールアプリ


答え№2の18

これを見てくれた私のような人にとって、AWSは現在 ラムダ

AWS Lambdaは、あなたが簡単に作ることができます 新しい情報に迅速に対応するアプリケーションAWSラムダが走る 画像のアップロード、アプリ内などのイベントに対応したコード アクティビティ、ウェブサイトのクリック、または接続されたデバイスからの出力。あなたはできる AWS Lambdaを使用してカスタムロジックで他のAWSサービスを拡張する、または AWSの規模、パフォーマンス、およびパフォーマンスで動作する独自のバックエンドを作成する セキュリティ。 AWS Lambdaを使用すると、 イベントドリブンアプリケーションは、必要なときにのみ実行され、スケールされます。 1日に数回のリクエストから1秒間に数千回まで自動的に実行されます。

ここでは、この質問に完全に答える素晴らしいウォークスルーがあります。 Amazon S3イベントの処理。アイデアはノードを持つことです。jsパッケージ - Labmda- S3 Bucketイベント(私たちの場合はオブジェクト作成)について通知を受け取り、アップロードされたオブジェクトを取得し、サイズを変更してから最終的にサムネイル用の別のバケットに保存します。 node.jsアプリケーションがあるので、サムネイルを保存した後に、基本的に任意のサービスをリクエストできます。