docomo MEC™ docomo MEC™ docomo MEC™
お問い合わせ ドキュメント ログインページ
検索
お問い合わせ ドキュメント ログインページ
  • Compute V
  • Compute O
  • Compute D
  • MECダイレクト
  • MECダイレクト(SA)
  • ドコモ画像認識PF
  • ネットワークセキュリティサービス
  • docomo MECポータルへのログイン方法
  • 用語集
  • 改訂履歴
Compute V
Compute O
Compute D
MECダイレクト
MECダイレクト(SA)
ドコモ画像認識PF
ネットワークセキュリティサービス
docomo MECポータルへのログイン方法
用語集
改訂履歴

›チュートリアル

  • Compute Vとは
  • Compute Vの機能
  • 基本的な概念
  • 仮想マシンのアーキテクチャ
  • ネットワーク構成
  • アクセス方法
  • ユーザー管理
  • 関連サービス
  • ご利用開始までの流れ

  • ファーストステップガイド
  • 仮想マシンの作成
  • 仮想マシンへの接続
  • クリーンアップ
  • 使用上の注意

  • はじめに
  • vApp
  • Apache ウェブサーバの構築

    • Webサーバーの構築(vApp使用)
    • Webサーバーの構築(vApp不使用)
  • ネットワークの作成
  • NICの追加
  • ファイアウォールの設定
  • リモート接続
  • インターネットへの公開
  • バックアップ
  • ロードバランサーの設定
  • 名前付きディスク
  • ディスクの追加方法
  • ユーザー管理
  • 高可用性構成
  • GPU
  • 顔認識アプリの作成

    • 環境構築(GPU)
    • 顔認識処理(GPU)
    • APIの公開(GPU)
    • 環境構築(CPU)
    • クライアントの公開(CPU)
    • テスト

    コンピュート

    • vApp
    • 仮想マシン
    • アフィニティルール

    ネットワーク

    • ネットワーク
    • エッジ

    ストレージ

    • 名前付きディスク
    • ストレージポリシー
  • アプリケーション
  • コンテンツ ライブラリ

    • vApp テンプレート
    • メディアとその他
    • カタログ
  • 監視
  • ユーザー環境設定
  • ユーザー管理

    • ホーム
    • マイパスワード変更
    • アカウント一覧
    • アカウント登録
    • ログアウト
  • 稼働状況統計
  • ロードバランサー
  • VMware Tools

  • よくあるご質問

クライアントの公開(CPU)

クライアント

本稿では、先ほどGPUインスタンスに設定したAPIに対して画像をアップロードし、処理結果を受け取って画面に表示するためのクライアントについて説明します。

クライアントのソースコードの内容

ダウンロードしたソースコードの Client フォルダーにある app.py がクライアントとして機能する部分になります。

 @app.route('/', methods=['GET', 'POST']) のアノテーションが付けられた show_page() はクライアントの {ベースURL:5000/} にGETメソッドもしくはPOSTメソッドでアクセスした際に行われる処理を書いています。
GETメソッド、つまりブラウザーで直接通常のアクセスをした際には、 templates フォルダーの index.html を表示する処理を行っています。
POSTメソッド、つまり先ほど表示した index.html で upload ボタンを押したときは、設定された画像を指定のサイズまで縮小し、APIを通してサーバーにアップロード、返ってきた長方形を示すJSONに従って画像に長方形を書き込み、縮小していた場合には元のサイズまで戻す、その後編集された画像を result.html で表示する、という処理を行っています。
 convert_img(im) は画像ファイルをリクエストの中に含めるためにバイナリデータに変換する処理を行っています。

settings.pyの設定

 Client フォルダーの settings.py は、環境などによって変えられる設定を書いています。
  1.  BASE_URI の部分は、 {GPUインスタンスのグローバルIP:5000/} と書いてください。
    インスタンスのグローバルIPの確認方法については、チュートリアルのWebサーバの構築をご確認ください。
  2.  ENDPOINT の部分は、変更しないでください。
  3.  MAX_SIZE の部分は、ピクセル数の制限を書いてください。これを超えたサイズの画像はそのサイズまで縮小されます。なお、お使いのGPUインスタンスの処理能力により変更可能ですが、 512 より大きい数字であることが推奨されます。
  4.  get_url() の部分は、変更しないでください。

クライアントの公開

ここでは、実際にクライアントをCPUインスタンス上で機能させる方法について説明します。
なお、このプロセスを行う際には、必ずファイアウォールの設定を確認し、アクセスが予定されたIPアドレスに制限されていることをご確認ください。

ファイアウォールの設定

ファイアウォールの設定を行います。
基本的な IP の制限等についてはファイアウォールの設定をご確認ください。
その後、ポートの設定を行います。
Flaskはデフォルトで5000番のポートを使用するため、ファイアウォールでその通信を許可します。
  1. エッジ (赤で囲われた部分)から MEC-XXX-XXX という名前のエッジ(青で囲われた部分)を選択します。
  2. ファイアウォールの作成を参考に、新しいルールを作成します。
  3. アプリケーション から Flask を選択し、許可します。
これにより、5000番ポートが解放され、Flaskによる通信ができる状態になります。

クライアントの起動

最初に、Apacheなどの他のウェブサーバーが起動していないかを確認し、起動していた場合は以下のコマンドを実行し、停止してください。
$ sudo systemctl stop httpd
順番に以下のコマンドを実行してください。
  1. Clientフォルダーに移動する。
    $ cd Client
  2. python で app.py を実行する。
    $ python app.py
以下のようなログが表示されたなら、起動に成功しています。
* Serving Flask app 'app' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: xxx-xxx-xxx
* Running on all addresses.
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://xxx.xx.x.xx:5000/ (Press CTRL+C to quit)

← 環境構築(CPU) テスト →
  • クライアント
    • クライアントのソースコードの内容
    • settings.pyの設定
  • クライアントの公開
    • ファイアウォールの設定
    • クライアントの起動
  • ※「docomo MEC」は株式会社NTT ドコモの商標です。
  • ※「MECダイレクト」は株式会社NTT ドコモの商標です。
docomo
© NTT DOCOMO, INC. All Rights Reserved