如何保留部署在 google 云应用引擎上的 node.js 应用的统计信息并保持我的数据持久
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
路线列出它们时,这工作正常。但是过了一天,我发现我的文章都没有了。
我使用以下方法在 google 云上部署了此应用程序:
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 重新启动我的节点应用程序或启动它的不同实例,但我不确定。
google 云应用程序引擎如何以这种方式工作,以及我如何监控我的应用程序正在发生的事情,保持统计信息,例如它重新启动或启动新实例的次数以及类似的传入请求。
还有哪些其他简单的存储解决方案可以通过 google 云应用程序获得,因此我的文章是持久的。
如您的 app.yaml
所述,您正在使用 自动缩放。 App Engine 预计会关闭由于 variety of reasons 而使用自动缩放设置的实例,例如实例已移动到另一台服务器或容器所在的机器 运行 重新启动并基于使用情况模式。
您可以考虑根据 Google Document and avoid persisting data on memory as app engine is designed for stateless applications. If you want to store your articles or array, I would recommend to use Firestore 使用手动或基本缩放。
要监控您的应用程序和日志,请转到 Cloud Logging,然后将您的资源指向 App Engine 版本或按照以下步骤::
- App Engine > 版本
- 将鼠标悬停在首选版本 > 查找诊断列
- 单击工具 > 单击日志。
它将引导您到 Cloud Logging 查看您的 App Engine 应用程序版本的日志。您还可以在 App Engine > Dashboard 中查看实例创建、流量、内存使用等图表。控制台中有两个下拉按钮,第一个用于您的 App Engine version
,第二个显示默认为摘要,您可以更改为实例、内存使用情况等。它会立即更改数据下图。
我有一个 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
路线列出它们时,这工作正常。但是过了一天,我发现我的文章都没有了。
我使用以下方法在 google 云上部署了此应用程序:
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 重新启动我的节点应用程序或启动它的不同实例,但我不确定。 google 云应用程序引擎如何以这种方式工作,以及我如何监控我的应用程序正在发生的事情,保持统计信息,例如它重新启动或启动新实例的次数以及类似的传入请求。
还有哪些其他简单的存储解决方案可以通过 google 云应用程序获得,因此我的文章是持久的。
如您的 app.yaml
所述,您正在使用 自动缩放。 App Engine 预计会关闭由于 variety of reasons 而使用自动缩放设置的实例,例如实例已移动到另一台服务器或容器所在的机器 运行 重新启动并基于使用情况模式。
您可以考虑根据 Google Document and avoid persisting data on memory as app engine is designed for stateless applications. If you want to store your articles or array, I would recommend to use Firestore 使用手动或基本缩放。
要监控您的应用程序和日志,请转到 Cloud Logging,然后将您的资源指向 App Engine 版本或按照以下步骤::
- App Engine > 版本
- 将鼠标悬停在首选版本 > 查找诊断列
- 单击工具 > 单击日志。
它将引导您到 Cloud Logging 查看您的 App Engine 应用程序版本的日志。您还可以在 App Engine > Dashboard 中查看实例创建、流量、内存使用等图表。控制台中有两个下拉按钮,第一个用于您的 App Engine version
,第二个显示默认为摘要,您可以更改为实例、内存使用情况等。它会立即更改数据下图。