【发布时间】:2017-11-24 14:14:28
【问题描述】:
有没有办法在本地运行我的 nodejs 应用程序,以便我可以模拟在生产 App Engine 中运行的应用程序而无需部署它?出于某种原因,与我的本地主机相比,我的应用在 Google App Engine 中的行为有所不同。
每次我为了查看是否存在错误而进行更改时,我都厌倦了将我的应用程序部署到 Google App Engine。
【问题讨论】:
-
能否详细说明您注意到的差异?
有没有办法在本地运行我的 nodejs 应用程序,以便我可以模拟在生产 App Engine 中运行的应用程序而无需部署它?出于某种原因,与我的本地主机相比,我的应用在 Google App Engine 中的行为有所不同。
每次我为了查看是否存在错误而进行更改时,我都厌倦了将我的应用程序部署到 Google App Engine。
【问题讨论】:
在本地系统和真正的 GAE 基础架构上,您永远不会完全获得相同的行为。仅仅因为您运行的基础架构不同:操作系统、硬件和网络性能/功能、实际与 SDK 模拟的 Google API 和您的应用可能使用的服务的性能/功能、时间等。
几个例子(它们来自标准的 env GAE,这是真的,但本质上是相同的想法):
您应该调查其中的差异 - 非常欢迎您在 SO 上就每一个问题提出问题。
一般而言,您会发现差异分为 2 类:
预期的明显性能差异,但它们可能会发现代码中的实际问题:竞争条件、错误的时间假设等
功能差异 - 查找您希望在 GAE 而非本地执行测试的一般区域。
例如,我了解到(通过艰难的方式)SDK 数据存储模拟器不会模拟真实数据存储中的争用逻辑 - 虽然我的应用在本地运行良好,但在 GAE 上由于争用而爬行非常糟糕,我不得不重写大部分逻辑来解决它。见Contention problems in Google App Engine
【讨论】: