新しい IBM Developer JP サイトへようこそ!サイトのデザインが一新され、旧 developerWorks のコンテンツも統合されました。 詳細はこちら

Cloud Object Storage を利用した、サーバーレスの画像処理

概要

新しい画像がクラウド・ストレージにアップロードされると、その画像に対して自動的に関数が実行されて、追加処理が行われるとしたら便利だと思いませんか?例えば、画像をサムネールのサイズに変換したり、自動的に色を強調したり、画像を分析してその内容を突き止めたりするなどの処理です。このような処理と分析に適用する手法としては、サーバーレス手法が当然の選択肢となります。サーバーレス手法では、クラウド・オブジェクト・ストレージのイベントに応答して、オンデマンドで、大規模に、クラウド内で関数を実行できるためです。

説明

このアプリケーションでは、画像が Web アプリケーションにアップロードされて IBM Cloud Object Storage に保管されると、サーバーレス関数がトリガーされて実行されるようにします。これらのサーバーレス関数によって、画像のグレースケール処理や画像に対する視覚認識の実行など、画像の処理と分析を行います。分析と処理が完了すると、その結果が別の Cloud Object Storage バケットに保管されて、画像の読み取りが可能になります。

このコード・パターンを完了すると、以下の方法がわかるようになります。

  • IBM Cloud 上に Cloud Object Storage インスタンスをセットアップする
  • manifest.yaml ファイルを使用して IBM Cloud Functions を作成、デプロイする
  • Cloud Functions から Cloud Object Storage インスタンスにアクセスする
  • Cloud Object Storage 内に新しいアイテムが作成された時点で起動されるよう、トリガーをセットアップする
  • Node.js を Express Web アプリケーションとともに IBM Cloud にデプロイする

フロー

サーバーレス Cloud Object Storage 画像処理アーキテクチャーのフロー図

  1. ユーザーが Web アプリケーション UI を使って画像をアップロードします。
  2. Web アプリケーションが、アップロードされた画像を Cloud Object Storage インスタンスに書き込みます。
  3. Cloud Object Storage バケットを listen しているトリガーが起動されます。
  4. トリガーが 2 つのアクションを起動し、アクションが実行されます。

    • グレースケール関数は、画像を処理してグレースケールに変換します。
    • 視覚認識関数は、画像の内容を分析するために Visual Recognition サービスを呼び出し、Visual Recognition サービスから返された結果を解析します。
  5. 各アクションが Cloud Object Storage に結果を書き込みます。

    • グレースケール関数は、処理後の画像を Cloud Object Storage バケットに書き込んで、画像を処理できるようにします。
    • 視覚認識関数は、.txt ドキュメントを Cloud Object Storage バケットに書き込んで、ドキュメントを処理できるようにします。

手順

このコード・パターンに取り組む準備はできましたか?詳しい手順については、README ファイルを参照してください。手順の概要は以下のとおりです。

  1. IBM Cloud 上で必要なサービス・インスタンスを作成します。
  2. IBM Cloud にログインし、IBM Cloud CLI に Cloud Functions プラグインを追加してセットアップします。
  3. 実験用 Cloud Object Storage パッケージ・バインディングを作成します。
  4. 必要な環境変数を作成し、Cloud Functions をデプロイします。
  5. 作成した Cloud Object Storage パッケージにサービス資格情報をバインドします。
  6. Web アプリケーションをデプロイします。
Legend