2017-10-12 6 views
0

私はいくつかの画像処理ステップを行っています。可能であれば画像処理のパイプラインを作成する

  1. 特定のIDのAWS S3からダウンロードした画像はGIFまたは何
  2. チェック画像をJPGするサイズ
  3. から
  4. 再フォーマット画像(ちょうどそれを考えていた画像のサイズを変更:ここで は手順があります:アップサンプル/ダウンサンプル画像 - わからないが、まだその段階が来ている場合)
  5. 分類画像や更新、データベースの情報を
  6. は次のIDを取得し、繰り返し1.

もし私が考えることなく速く実装しなければならなかったら、各ステップのサブ関数を持つ単純なPythonスクリプトを書くだけです(何かがうまくいかない場合は例外をスローします - いくつかのステップは好きです(5.)が必要です)。

私はルギとパイプラインについて聞いて、それがユースケースかどうか疑問に思っていました。

luigiや多分何かのようなものを使用することで得られるメリットは何ですか?私が対処しようとしている問題のベストプラクティスはありますか?

今私は約20GBのデータと100KB以上のイメージを持っています。毎日、約10k +の画像を処理する必要があります。

ありがとうございます!

答えて

0

EC2インスタンスの使用を計画している場合は、luigiやパイプライニングなどのワークフローオーケストレーションフレームワークを使用することが理にかなっています。

しかし、AWSではラムダとStep Functionsを使用してより良いアプローチを利用できます。ここでは、各ステップでイメージ変換ロジックを使用してイベント駆動型ワークフローを設計できます。ステップ関数は、本質的にスケーラブルな視覚化を使用してステートマシンを管理します。

イベントドリブンフローは、次のように設計できます。

イメージをS3にアップロード - >トリガーステップ関数ワークフロー - > S3に書き戻し

+0

私の主なアプリケーションはデジタルオーシャンで、私は画像ホスティングにS3を使用しています。ラムダのようなものがユースケースであれば、私も考えていました。私はそれに精通していません。ラムダでtensorflowや自分のpythonスクリプトやパッケージのようなものを使うことは可能ですか?コストを気にしなければならないのですか?デジタルオーシャンでは毎月5ドルを払っていますので、各画像には数秒必要です。 – MichaelRazum

+0

画像処理のために独自のPythonパッケージでLambdaを使うことができます。実際には、画像サムネイルを作成するためのテンプレートも用意されています。コストモデルは、ラムダの実行時間を秒単位で支払うデジタル海洋のモデルと比較して異なるため、運用コストが増加する先行コストよりもopexコストが高くなります。スクリプトとステップが最小限であれば、ラムダだけしか使用できません。複雑なワークフローの場合、ステップの移行に追加のコストがかかるラムダでステップ関数を使用することをお勧めします。 – Ashan

+0

ご協力ありがとうございます。ラムダを見ても、まだ100%確実ではありません。 – MichaelRazum