试图让基本的 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。它建议使用npm
和node
进行本地开发,并且仅使用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 源 FROM
gcr.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 应用程序的内存泄漏 - 超过了软私有内存限制
Eclipse 需要哪些 JAR 文件才能使用 JSTL 才能最终在 GAE/J 上运行?