2

は、我々は
は、次のような状況に気づいた、 いくつかのワトソンクラウドのデモは、私たちのアカウント内のアプリをNode.jsの
を実行して、IBM Bluemixクラウドとワトソンクラウドをテストしてみましたそれは問題なく動く。私はBluemix DevOpsツールでこのアプリを開いていないので。IBM Bluemix Cloud:Node.js用IBM SDK - Bluemixの私たちのアプリケーションは、自動更新なしで既存のバージョンを維持できますか? 、私たちは、アカウント内のデモ・アプリケーションをインストールした後</p> <p>:

"" Installing IBM SDK for Node.js (4.5.0)from cache"""" 

上記アプリのフロントエンドjsのコードは、このSDKおよびNode.jsのバージョンで動作するように書かれている:ときに、このアプリは 実行するたびにそう、このアプリはstaging_task.logファイルに基づいて、以下を行います。

#後で私は、上記のデモアプリケーションの別のコピーをアカウントに作成しました。それは問題なく動く。 次に、上記のApp CodeをBluemix DevOpsツールで開き、コードに触れずに ファイルを保存しました。その後、このバージョンのアプリは実行されません です。

私たちの調査では、次のことを示しています。

  • このstaging_task.logファイルは、この事実を示しています。上記のステップは、今これを実行した後、このバージョンのアプリを:
    「」」ノードのためのIBM SDKをインストールします。 js(4.6.2)from cache "" "

    つまり、Bluemix Cloudは上記の手順の後で新しいバージョンのNode.jsとSDKを自動的に使用します。我々は我々の実験中に発見

別の状況はまた、この問題に関連している可能性があり:

*私たちは、8月/ 2016の周りに、次のワトソンのデモアプリケーションを展開し、そして私たちは、このアプリで任意のファイルを再保存していません、したがって、このデモ アプリは、Bluemixのアカウントのキャッシュされた実行環境(Node.jsのIBM SDK Verson 4 ??)でまだ実行されていると推測します。だから、このデモアプリは速く と私たちのアカウントで正しく実行されます。 https://github.com/watson-developer-cloud/conversation-simple

*上記の展開後、Bluemix CloudとWatson Cloudにいくつかのアップグレードがあります。実行環境には、Node.js Verson 6のIBM SDK が含まれています。

*先月、私たちは上記のデモアプリケーションをアカウントに導入しました。この同じアプリは、上記の8月または2016年の導入よりもはるかに低速で動作することがわかりました。私たちの推測は、このデモアプリケーションコードはNode.jsのVersonのためにIBM SDKに基づいて設計されていることです4.

は、次のQは、我々のポイントをサポートしています:5月

BluemixクラウドまたはワトソンクラウドでのNode.jsの自動アップグレードIBM SDK

がこの問題を引き起こしました.Bluemix CloudのNode.js用IBM SDKはバージョン6になる可能性があります。このアプリケーションはNode.js Verson 4のIBM SDKに基づいて設計されています(このバージョンはNode.jsパッケージ内のバージョン。JSON、しかし IBM SDKバージョン) IBM Bluemix node.js native promise support

当社のQ:

- なぜ上記のSDKとNode.jsの自動アップグレードしているのですか?
- Bluemix Cloudでアップグレードする前に、このデモアプリケーションで同じバージョンのIBM SDKとNode.jsを使用するにはどうすればよいですか?したがって、既存のアプリが正常に動作するようにする。

ご意見やご提案をいただければ幸いです。

答えて

3

あなたは

{ 
    "name":"iot-html5-phone", 
    "version":"0.0.1", 
    "scripts":{ 
     "start":"node app.js" 
    }, 
    "dependencies":{ 

    }, 
    "engines":{ 
     "node":"0.10.26" 
    } 
} 
+0

*は、この情報をありがとうございました。私はpackage.json( "node": "^ 4.5.0")でこれを指定しました – eGlobeBiz

+0

Node.js 4.5.0。がインストールされています。しかし、上記のアプリはまだ動作しません。このステップの後のstaging_task.logファイルは、これを ""示しています。 "" Node.js(4.6.2)用IBM SDKのキャッシュからのインストール ""このIBM SDKはNode.js(4.5.0)用ではありません。次のようなpackage.jsonでは、これをどこで定義するのですか(Node.js 4.5.0用のIBM SDK)? https://github.com/watson-developer-cloud/conversational-agent/blob/master/package.json。私は、この新しいバージョンのIBM SDKが問題を引き起こしたと思います。ありがとう – eGlobeBiz

+0

Bluemix Doc(SDK for Nodejs)は、次のように述べています。「アプリケーションにpackage.jsonファイルがルートディレクトリに含まれている場合、sdk-for-nodejs buildpackが使用されます。 – eGlobeBiz

0

あなたのpackage.jsonにノードとNPMのバージョンを定義することができます使用:

"engines":{ 
    "node":"4.5.0" 
} 

(無キャレットまたはチルダ)

+0

このアドバイスをいただきありがとうございます。私たちはこれを試して、このアプリはまだ実行されません。 – eGlobeBiz

+0

それでも、キャッシュから「(4.6.2)」を使用しましたか?ローカルで動作する場合、これは私が時々ブルーミックスのビルドの問題を複製するために行ったことです。 1.新しいバージョンのアプリをチェックアウトします(または、古いモジュールからnode_moduleを削除します)。 2. "npm install"を実行します。そうすれば、最新の依存関係を得ることができます。これは、bluemixで起こるようです。 – jarkko

+0

ありがとうございます。 [しかし、それでもキャッシュから "(4.6.2)を使用しましたか?]上記のアプリケーションでキャッシュされたNode.jsのバージョンはNode.jsバージョン4.5.0です。 – eGlobeBiz

関連する問題