![](/img/trans.png)
[英]Does Google Cloud App Engine have a special Node.js runtime?
[英]How to keep stats for a node.js app deployed on google cloud app engine and keep my data persistent
我有一个 node.js 应用程序,我在其中提供存储在内存中的文章,如下所示:
let articles = [];
module.exports.addArticle = function(req, res) {
articles.push('New Article');
res.send('Ok');
}
module.exports.home = function(req, res) {
res.json(articles);
}
当我添加文章并通过home
路线列出它们时,这很好用。 但是一天过去了,我看到我所有的文章都不见了。
我使用以下方法在谷歌云上部署了这个应用程序:
git clone myrepo
cd myrepo
yarn build
gcloud app deploy
这是我的app.yaml
:
runtime: nodejs12
env_variables:
BUCKET_NAME: "example-gcs-bucket"
handlers:
- url: /.*
secure: always
script: auto
我想 google 重新启动我的节点应用程序或启动它的不同实例,但我不确定。 谷歌云应用引擎如何以这种方式工作,以及我如何监控我的应用程序发生了什么,保持统计信息,比如它重新启动或启动新实例的次数,传入请求之类的事情。
还有哪些其他简单的存储解决方案可以通过谷歌云应用程序获得,所以我的文章是持久的。
如您的app.yaml
,您正在使用Automatic scalling 。 由于各种原因,例如实例已移动到另一台服务器或运行容器的机器重新启动并基于使用模式,App 引擎预计会关闭使用自动扩展设置的实例。
您可以考虑根据Google 文档使用手动或基本缩放,并避免将数据持久保存在内存中,因为应用引擎是为无状态应用程序设计的。 如果您想存储文章或数组,我建议使用Firestore 。
要监控您的应用程序和日志,请转到 Cloud Logging,然后将您的资源指向 App Engine 版本或按照以下步骤操作:
它会将您引导至 Cloud Logging 以查看您的 App Engine 应用程序版本的日志。 您还可以在App Engine > Dashboard 中查看您创建的实例、流量、内存使用情况等图表。 控制台中有两个下拉按钮,第一个是你的 App Engine version
,第二个显示默认是摘要,你可以更改为实例、内存使用等。它会立即更改下图的数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.