GAEにデモアプリケーションをデプロイして、mLabでうまく動作しますが、GCE(MongoDB(Google Click to Deploy))にmongodbをデプロイしようとすると、デプロイは成功しますがGAEで実行しているアプリケーションでte URIを設定する方法を知らないGAEでmongodbにアクセスする方法
私は内部および外部IPを試していますが、動作していないようです!
ありがとうございました
GAEにデモアプリケーションをデプロイして、mLabでうまく動作しますが、GCE(MongoDB(Google Click to Deploy))にmongodbをデプロイしようとすると、デプロイは成功しますがGAEで実行しているアプリケーションでte URIを設定する方法を知らないGAEでmongodbにアクセスする方法
私は内部および外部IPを試していますが、動作していないようです!
ありがとうございました
GAE標準配備はサンドボックスです。したがって、GCEインスタンスの内部IPに接続することはできません。 2つの異なるプライベートネットワーク上で、内部IPを使用して互いに通信することができない2つの異なるデバイスとして想像することができます。ただし、デバイスの1つ(この場合はGCEインスタンス)にパブリックIPがあり、そのデバイスが必要とするポートを介したプライベートネットワーク(ファイアウォール)トラフィックが許可されていれば、常に通信できます。
一方、GAEデプロイメントがフレックス環境にある場合、内部IPを介してAPIを使用してdbに接続できるはずです。
フレックス環境example私はこのフレックス環境で、内部と外部の両方のIPアドレスを試して成功しました。あなたのように、私はCloud Launcherを使ってMongodbを展開しました。これは公開IPとネットワークタグmongodbとmongodb-dbでGCEインスタンスを作成しました。 SSH経由でプライマリdbインスタンスに接続して、db、username、およびパスワードcreatedを取得します。
次のように、たとえばあたりの内部IP、I先ほど作成/修正keys.jsonファイルを使用するには:
{
"mongoHost": "internal IP address",
"mongoPort": "27017",
"mongoDatabase": "db",
"mongoUser": "username",
"mongoPass": "password"
}
をだから私は、サーバーのコードとしてURIを心配する必要はありませんでした。
mongodb://${user}:${pass}@${host}:${port}
しかし、あなたのデモアプリケーションのために、あなたは、標準の接続文字列の書式URIのためのMongoDBの公式マニュアルを確認する必要があります:jsがこの文字列を渡して、それの世話をしました。
パブリックIPの使用に関しては、MongoDBインスタンスへのアクセスだけを制限するために、ターゲットタグをネットワークタグと同じにしてポート27017でtcp入力を許可するネットワークファイアウォールルールを作成する必要がありました。次に、上記のように内部IPをパブリックに置き換えてkeys.jsonファイルを変更しました。
公式のMongoDB標準URIスキームには、[link](https://docs.mongodb.com/manual/reference/connection-string/#standard-connection-string-format)があります。 – Fady
mongodbトラフィック(ポート27017)を許可するには、GCEファイアウォールでファイアウォールルールを作成していますか。 – Faizan