当我看到并尝试使用Auth0的Webtask(现已停用)时,云功能/无服务器功能第一次让我感到兴奋。这是一个类似CodePen的小IDE,但除了代码和日志,你并没有真正看到任何东西。它的意义在于,当你点击函数的URL时,你可以写一些Node的小片段(这正是无服务器函数的含义)。它甚至可以为你存储你的_秘密_,这意味着你可以把无服务器函数作为一个_代理_。你点击函数,函数使用你未公开的API密钥的秘密点击API,API返回数据,然后函数返回数据,这些数据在客户端可供你使用。整个要点是:1)你可以从一个完全静态的网站上获取数据;2)你的API密钥受到保护。聪明。
我仍然怀念Webtask,但我确信现在有更好、更先进的东西。我对整个景观没有一个坚实的把握。甚至AWS也有一个用于lambdas的在线编辑器("lambda "是AWS对无服务器函数的标准制定),但直接使用AWS控制台做任何事情通常都不是很好。在AWS Amplify中的函数可能是一个更好的选择。
我的猜测是,构建这些东西的正确的现代方式是这样的......
- 使用Serverless.com的框架来构建/测试/部署你的无服务器函数
- 使用Netlify Functions+Netlify Dev
- 使用Vercel的无服务器功能,或使用Next.js
/pages/api的任何Node主机,如Heroku。
但还有其他各种看起来很现代的工具,只是我不能说得那么好,但看起来很不错:
- Begin.com
- SLAppForge
- 新潮的下一代服务器端JavaScript语言Deno正在进入部署即服务的阶段。
但让我想到这些的,也是属于我没有任何个人经验的东西,是Pipedream。我是通过雷蒙德听说的,他的故事与我类似。
无服务器最初让我感兴趣的事情之一,说实话并没有那么新颖,就是能够建立到其他API的代理。因此,举例来说,想象一下一个很酷的API,它需要某种认证才能使用,比如一个API密钥。如果你在客户端的JavaScript中使用这个,任何人都可以查看你的代码并获得你的密钥。更好的服务可以让你把密钥锁定在一个域上,但如果你没有这个选项,那么无服务器的一个简单用法就是简单地给你一个端点,用你的密钥对API进行调用。
Raymond Camden,"使用Pipedream来代理其他API"
Pipedream看起来很花哨。
它不仅是一个基于网络的集成开发环境,用于制作函数,而且我可以通过多种方式触发它--当然是URL,也可以通过CRON,或者通过电子邮件或RSS等方式。很好。看看所有其他的选项。Slack?GitHub?Twitter?这有点像Zapier的样子,只是Zapier是完全没有代码的(我想)。Pipedream让代码成为一流的公民。
而且它通过账户级环境变量的方式来实现秘密。
因此,它非常适合作为无服务器代理。阅读Raymond的文章,了解实际的实现和代码示例。