2016-11-25 7 views
0

カスタム分類子をローカルに作成した後、私が作成した分類子に基づいてイメージを分類するアプリケーションをbluemixに配備しようとします。Watsonの配備ビジュアル認識アプリケーションが失敗する

私はそれを展開しようとすると、起動に失敗します。

import os 
import json 
from os.path import join, dirname 
from os import environ 
from watson_developer_cloud import VisualRecognitionV3 
import time 
start_time = time.time() 

visual_recognition = VisualRecognitionV3(VisualRecognitionV3.latest_version, api_key='*************') 

with open(join(dirname(__file__), './test170.jpg'), 'rb') as image_file: 
print(json.dumps(visual_recognition.classify(images_file=image_file,threshold=0, classifier_ids=['Angle_971786581']), indent=2)) 

print("--- %s seconds ---" % (time.time() - start_time)) 

は、私はシンプルなプリントを展開しようとしても、それが展開するfailesが、私はbluemixから入手スターターアプリ、または私はオンラインで見つけるフラスコチュートリアル(https://www.ibm.com/blogs/bluemix/2015/03/simple-hello-world-python-app-using-flask/は)うまく展開します。

私は非常にWebプログラミングとクラウドサービスを使用しているので、私は完全に失われています。

ありがとうございます。

+0

あなたはあなたのコードを排除する必要があります。コードをローカルで実行し、そのコードが最初に動作するかどうか確認してください。それ以外の場合はBluemixアプリの問題です。その場合、エラーに関するログを投稿する必要があります。 –

+0

@ SimonO'Doherty私のコードはローカルで正常に動作します。私がデプロイしようとすると、ポストログから有用なものは得られません。アプリがクラッシュしただけです。ところで、プラットフォーム内のオプションからログを取得すると、cf logs appname -recentがエラーを出します。 –

答えて

3

Bluemixは、あなたのpythonアプリケーションがポートで提供されることを期待しています。アプリケーションがポート上で何らかの応答を提供していない場合は、アプリケーションの開始に失敗したとみなされます。

# On Bluemix, get the port number from the environment variable PORT 
# When running this app on the local machine, default the port to 8080 
port = int(os.getenv('PORT', 8080)) 


@app.route('/') 
def hello_world(): 
    return 'Hello World! I am running on port ' + str(port) 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', port=port) 

一度実行して停止するようにコードを作成しているようです。代わりに、上記のhello_world()関数に示されているように、誰かがあなたのURLにヒットしたときに、それを仕事にするようにしてください。

あなたは、その後、あなたのアプリケーションがWebアプリケーションになりたいが、代わりに一度だけ(バックグラウンドワーカーアプリケーション)を実行していない場合は、誰かがYOUR_APP_NAME.mybluemix.net

になったときに起こるしたいかを考えてみてcf pushコマンドの最後に--no-routeオプションを使用してください。次に、アプリケーションの出力

https://console.ng.bluemix.net/docs/manageapps/depapps.html#deployingapps

+0

私は既に--no-routeでうまく走ってみましたが、成功しませんでしたが、私はリンクからの指示に従ってやり直します。ありがとうございました。 –

+0

'VCAP_APP_PORT'環境変数の使用は廃止され、Cloud Foundryの将来のバージョンでは機能しないことに注意してください。代わりに' PORT'を使うべきです。 –

+0

ありがとう、私は私の例を編集して、それを反映させます –

0

を見るためにcf logs appname --recentを使用して、ログを見て主な問題は、私にそれが見つからなかったというエラーを与え、ワトソン - 開発者 - クラウドモジュールでした。

私はすべてのユーザー向けにpythonバージョン2.7.12にダウングレードしました。 変更されたruntime.exeとrequirments.txt(requirments.txtは可能ではありません) ディーゴでステージングされ、ルートなしおよびset-health-check APP_NAME noneコマンドを使用しています。

者は問題を修正しましたが、私はまだあなたがbluemixでアプリを展開するとき、あなたはあなたのアプリケーションで使用されるサービスを含むrequirements.txtを持っている必要があり、終了ステータス0

0

を取得します。 ので、あなたがあなたのrequirements.txtをチェックアウトする必要があり、多分あなたは

watson_developer_cloud 

を失い、その後、requirements.txtはこれを好き:

Flask==0.10.1 
watson_developer_cloud 
関連する問題