流星对Gcloud做出反应

时间:2016-12-14 06:49:41

标签: node.js mongodb google-app-engine meteor gcloud

我正在尝试在Google的云上部署我的Meteor React应用程序但是当我尝试部署它时,我收到错误消息,说明需要指定MONGO_URL。我构建我的meteor应用程序并cd到我的<div id="result"></div> <select required name="client_id" id="client_id" class="form-control selectpicker show-tick form-control" data-live-search="true" data-show-subtext="true" > <option value="">-- NONE --</option> <option data-info="jUST tESTING" data-x="y" value="2" data-subtext="Santa Maria #1234">Antonio Perez </option> <option value="5" data-subtext="AV. Los Cerrillos 602, Chile - Santiago">Tatiana Gutierrez </option> <option data-info="aNOTHER tEST" data-x="y" value="6" data-subtext="xxxxxxxxxxxxxxxx">Ventas </option> </select> <script> $(function () { $('select').change(function () { if ($(this).children('option:selected').data('x') == 'y') { $("#result").html($(this).children('option:selected').attr('data-info')); } else $("#result").html(""); }); }); </script> 我的包文件夹。这是我的package.json

gcloud app deploy

如何找到我的meteor mongo用户名和密码。运行常规流星并没有问我的用户名和密码。这是我的app.yaml

{
    "private": true,
    "scripts": {
        "start": "node main.js",
        "install": "(cd programs/server && npm install)"
    },
    "engines": {
        "node": "6.6.0"
    }
}

如果我在gcloud上部署,我不知道要为MONGO_URL和ROOT_URL添加什么。我还有我的项目的设置文件。它应该在app.yaml中的METER_SETTINGS下吗?我为提出太多问题而道歉,但这是我第一次处理gcloud:)

1 个答案:

答案 0 :(得分:2)

这个问题有点陈旧,但它仍然可以从Google获得一些观点,所以让我们逐一回答,首先你需要了解Meteor如何在开发和生产中与MongoDB进行交互。当您编写应用程序代码时,只需执行# Use this template for the command mongo "mongodb://root:PASSWORD@IP_ADDRESS/" --authenticationDatabase admin # For example, with sample values mongo "mongodb://root:8sdjkfh8876@127.0.0.1/" --authenticationDatabase admin 即可完成所有工作,因为Meteor会部署内部MongoDB。这不建议用于实际生产用途,并且在任何基于容器的体系结构(例如Docker,Google App Engine,Heroku等)下都不能正常工作。

鉴于此,您需要在基于MongoDB的Google Compute Engine中部署单独的实例。 Google已准备好在Google Cloud Launcher中启动,只需搜索“MongoDB”。

Google Cloud Launcher Overview

我推荐Bitnami的一个,如果你刚开始的话,它更容易配置。

Bitnami MongoDB - No replication

MongoDB instance details

Google会自动创建一个实例,您将获得一个root用户名和密码,以及一个连接到该实例的公共IP地址。

运行以下命令从终端访问Mongo:

root

现在,为Meteor创建一个新用户,以便在新创建的数据库上进行连接。永远不要给它myapp凭据,它不会起作用,也不安全。例如,将数据库命名为use myapp; db.createUser({ user: "meteor_app", pwd: "A_SECURE_PASSWORD", roles: [ "readWrite", "dbAdmin" ] })

mongo "mongodb://meteor_app:A_SECURE_PASSWORD@IP_ADDRESS/myapp"

现在,您退出此连接并测试新用户。

# Put this in the app.yaml file, env variables sections
MONGO_URL: "mongodb://meteor_app:A_SECURE_PASSWORD@IP_ADDRESS/myapp"

如果一切正常,您现在拥有MONGO_URL。

{{1}}