试图让基本的 Nodejs 示例在 GAE 上工作

Posted

技术标签:

【中文标题】试图让基本的 Nodejs 示例在 GAE 上工作【英文标题】:Trying to get basic Nodejs example working on GAE 【发布时间】:2015-08-02 09:58:51 【问题描述】:

我使用的是 Windows 7x64,gcloud 安装版本

Google Cloud SDK 0.9.71

app 2015.07.24
app-engine-java 1.9.24
app-engine-python 1.9.24
app-engine-python-extras 1.9.21
bq 2.0.18
bq-win 2.0.18
core 2015.07.24
core-win 2015.07.24
gcloud 2015.07.24
gsutil 4.13
gsutil-win 4.13
preview 2015.07.24
windows-ssh-tools 2015.06.02

我正在尝试在预览版上运行并部署来自here 的教程示例。 请注意,此示例中的 app.yaml 将“nodejs”设置为运行时。

运行命令后

gcloud preview app run --host localhost:8080 app.yaml

我明白了

RuntimeError: Unknown runtime 'nodejs'; supported runtimes are 'custom', 'go', 'java', 'java7', 'php', 'php55', 'python, 'python27', 'vm'.

如果我将“vm”用于运行时,它想使用 docker,这对我也不起作用,我想使用选项来执行此操作 without docker 无论如何。

如果我在 yaml 文件中为运行时添加“自定义”,我会得到:

ValueError: The --custom_entrypoint flag must be set for custom runtimes

此开关的帮助输出中给出的示例如下

--custom_entrypoint="gunicorn -b localhost:port mymodule:application"

我试过了,最好的猜测

gcloud preview app run --custom_entrypoint="nodejs -b localhost:8080 mymodule:application" app.yaml

得到了这个

ERROR: Argument [--custom_entrypoint=nodejs -b localhost:8080 mymodule:application] is not a valid deployable file.
ERROR: (gcloud.preview.app.run) Errors occurred while parsing the App Engine app configuration.

感谢您的宝贵时间。

【问题讨论】:

我刚刚为 Node.js 找到了 quickstart guide。它建议使用npmnode 进行本地开发,并且仅使用gcloud 进行部署,这应该与runtime: nodejs 标志一起使用。 嗯,好吧,即使我上次尝试部署这个相同的示例,服务器一直以 503 响应,也许这会起作用。我会试一试。在部署之前,我想让它作为本地测试在预览版上运行。我想,如果它不在本地运行,它也不会在服务器上运行。 更多牦牛剃须。挂在Copying certificates for secure access. You may be prompted to create an SSH keypair. 您是否有机会在与临时目录不同的驱动器上?也就是说,python.exe -c 'import tempfile; print tempfile.mkdtemp()' 是否在与当前目录不同的驱动器上显示临时文件?如果是这样,请尝试将您的项目移动到同一个驱动器,看看您是否仍然得到相同的行为。 你能打开一个 Python 提示符运行import tempfile,然后运行print tempfile.mkdtemp()吗?有一个已知问题会导致交叉驱动器路径在同一点挂起。也就是说,鉴于您一直在使用“C:”,这可能不是问题。我再挖一点。完整、详细的日志可能会有所帮助。 【参考方案1】:

gcloud 命令似乎正在发生一些变化,所以这个问题似乎不再有效,因为我们打算运行 dev_appserver.py 而不是 gcloud 来运行 devserver 进程;您也可以直接运行节点服务器,甚至使用 docker 从 dockerfile 构建映像并将其作为容器运行。

如果从 dev_appserver.py 运行,请确保您有 runtime: custom 和 Dockerfile 源 FROMgcr.io/google_appengine/nodejs,因为 dev_appserver.py 当前引发:

RuntimeError: Unknown runtime 'nodejs'; supported runtimes are 'custom', 'go', 'java', 'java-compat', 'java7', 'php55', 'python', 'python-compat', 'python27'.

【讨论】:

以上是关于试图让基本的 Nodejs 示例在 GAE 上工作的主要内容,如果未能解决你的问题,请参考以下文章

GAE - Nodejs - 一个简单的 pubsub 应用程序的内存泄漏 - 超过了软私有内存限制

GAE JDO 空查询结果

Eclipse 需要哪些 JAR 文件才能使用 JSTL 才能最终在 GAE/J 上运行?

执行 .Then() 承诺 NodeJS

需要基本示例代码编译帮助 - 我无法让任何 SDK 示例工作

尝试实现 NodeJS Gmail API 示例