webhook服务器
注意:本文已过时几个月; 毕竟,如今,谁愿意从Google Cloud仪表板部署无服务器Webhook,而您只需单击几下即可在世界上最好的无服务器IDE上进行同样的操作 ?!
通常,您需要设置一个HTTP / S端点(webhook)来接受从另一个应用程序或服务发布的数据。 例如GitHub webhooks 。 这是设置单个服务器的快速方法,而无需运行,购买或维护您自己的服务器。 (因此,术语“无服务器网络挂钩”。)
我们将坚持使用Google Cloud Platform ; 如果您已经拥有Google帐户(我想您是;),则可以快速注册,并且完全免费。 您必须提供信用卡/借记卡(所有云平台都提供); 但除非您的端点接收到大量流量,否则免费套餐将完全覆盖您。 此外,您还可以获得$ 300的免费赠送金额,可以试用其他任何酷炫的Google Cloud Platform服务 。
假设您想要一个Webhook来接受路径/webhook
上的POST请求 。
我们需要两件事:
- 接受数据的HTTP端点,以及
- 计算实体 ( Google Cloud Function )以使用和处理数据
创建一个新的Cloud Plaform项目
如果您尚未这样做,
- 单击标题上的项目名称下拉列表,然后单击新建项目 。

- 为您的项目提供一个名称(或让Google为您自动生成一个名称)。

- 点击创建 。 Google将开始创建您的项目; 可能要花几秒钟。 您可以通过页面标题上的通知下拉菜单(响铃图标)检查状态。

- 项目准备就绪后,将带您到项目仪表板。

注册Google Cloud功能
- 打开“ 云功能”仪表板 。 您也可以从侧面菜单中选择Cloud Functions 。

- 由于您可能不熟悉Cloud Functions,因此仪表板将首先要求您启用Cloud Functions API 。 (如果没有,则可以跳过接下来的几个步骤。)

- 点击启用API 。 这将带您到“ 结算”页面 。
如果您已经配置了一个计费帐户,则只需选择它并继续。 否则,请在此处添加您的银行卡详细信息,然后继续。 ( 重复:这主要是一种形式,您的项目将完全免费。)

- 确认卡后,您将返回到Cloud Functions仪表板。
创建一个新功能
- 单击创建函数 。 将打开“ 创建功能”页面。

- 为您的功能提供一个名称; 这也是webhook URL的路径名 ,因此我将选择
webhook
。 您还需要选择一个运行时 。 我选择了NodeJS 6 。 - 选择HTTP作为触发类型 。

编写代码
- 单击下一步 。 您将被带到可以编辑功能代码的页面。

- 现在,您可以编写用于处理webhook请求的自定义逻辑。 该请求将通过
req
参数作为Express.jsRequest
对象提供 。
处理后,您可以通过res
参数来响应,该参数是Express.js Response
对象 :
res.send( "success!" );
如果要使用外部(NPM)依赖关系,请照常切换到package.json
选项卡并在dependencies
条目下定义它们。
部署它
- 完成后,点击创建 。 您将被带回仪表板。

您会在以前为空的列表中看到您的函数,前面有一个微调器。 等到它变成绿色的复选标记–表示该功能已启用。
该功能启用后,您的网络挂钩就可以使用了!
测试一下
要测试您刚刚构建的内容,
要测试您刚刚构建的内容,
- 打开一个HTTP客户端(例如Postman ),然后将URL设置为
https://<region>.<project-name>.cloudfunctions.net/<function-name>
(例如https://us-east-1.myscellanius.cloudfunctions.net/webhook
)。 您还可以通过“ 触发器”选项卡找到URL:

您还可以使用Cloud Functions仪表板的内置测试功能直接以合适的有效负载调用函数:

查看日志
如果收到错误,或者想查看该函数生成的任何日志,则可以使用仪表板条目省略号下拉菜单上的“ 查看日志”命令来访问功能齐全的StackDriver日志记录仪表板。
对于测试调用,日志显示在“ 输出”窗格的正下方:

下一步是什么?
这是快速简便的。 但是每当处理程序逻辑发生变化时,在仪表板之间切换和手动上传代码包可能会变得很头疼。
使用正确的部署工具可以节省您的时间,还可以将云资源分组在一起。 例如,您可能需要将Cloud Storage存储桶或Pub / Sub主题合并到您的逻辑中。 在这种情况下,将它们作为一个单元自动部署非常容易,而不是通过不同的仪表板手动进行部署。
如果您不知道, 该工具已经在这里 :创建函数,编写代码,添加依赖项; 一键保存,构建和部署!
翻译自: https://www.javacodegeeks.com/2020/04/set-up-your-free-serverless-webhook-in-minutes.html
webhook服务器