版本说明X的无服务器游戏API

没有时间使用服务器! 开发人员操作,准备和配置服务器,并处理扩展,端口转发,正常运行时间,安全措施,发布流程和数据库配置!

这样做的时间很短,主要是因为我想专注于创建产品,创建新事物,新体验,新游戏,新应用程序,而不是配置系统。

为游戏或任何应用程序设置服务层的明智方法之一就是拥有一个简单的API。

然后,您必须开始考虑您的体系结构而不是您实际想要做的事情。 使用所有技术,使用什么框架,端点结构,正常运行时间来配置Web服务器。 我认为所有事情都很有趣! 但是我不想为此花费宝贵的开发时间!

对于我们即将推出的游戏 我们从一开始就知道imprint-X ,我们想让游戏与我们交流,例如,我们希望随着时间的推移获取一些统计数据,向玩家发布分析信息,例如,检测游戏中玩得最少的级别或检测游戏中最难的级别。

如果我们至少能检测到完成哪个级别,那么我们可以仔细查看该级别并了解原因。

或设置类似以下的设计政策: 我们所有的关卡都应该是块状的,并且在10分钟内可以被击败

这里的主要问题是发现确实是这样。如果您不遵循设计决策,那么这些决策只是消散在锡空气中的想法。

为了跟进游戏状态和玩家会话,我们需要大量可用信息,因此让我们跟进一些数据,带有路由的HTTP服务器,数据库,带有发布级别数据的POST函数的简单API到数据库层,然后按需评估数据库中的数据并从中提取统计信息。

接缝像很多工作,只是为了确认我们的设计决策!

不久前,Amazon Web Services推出了一项新服务,该服务可以触发简单的代码功能以响应事件,例如,可以将其设置为响应请求并提供一些数据或计算内容并返回该计算,而无需任何服务器基础架构由开发人员到位。

AWS Lambda可以执行Node.js函数,以响应诸如对端点的POST请求之类的事件!

基本的Lambda函数如下所示:

  exports.handle =(e,ctx)=> { 
ctx.succeed({hello:e})
}

它只是一个带有两个参数(事件和上下文)的常规Javascript箭头函数。 该事件是您发送的,上下文可用于将成功或失败传递回请求它的服务。

您可以在此处阅读有关可用功能结构的更多信息。

如果您构建了任何基于Node.js的服务,例如Express.js或Koa.js应用程序,则通常可以归结为微服务,分离的逻辑,做一件事的小功能,例如向数据库添加记录。 使用lambda,您可以得到一个功能,没有花哨的东西,膨胀,开发人员锁定或整体式框架。

没有胡扯只是一个功能。

因此,与其建立EC2实例或Digital Ocean Droplet之类的服务器,然后为Linux服务器配置Nginx,暴发户脚本,git,扩展以及担心数据库处理,我们不如专注于编写业务逻辑,做我们想要的东西,别无其他!

现在,我们可以专注于我们的核心目标,而不是我们的宝贵工具!

我认为撰写此博文花费的时间要多于设置AWS Lambda的时间。 今天,我们有一个机器人可以通过短命令将Unity游戏中的最新统计信息发布到我们的Slack服务器中,而所有这些都不需要服务器。