作为代理的无服务器函数介绍

128 阅读3分钟

当我看到并尝试使用Auth0的Webtask(现已停用)时,云功能/无服务器功能第一次让我感到兴奋这是一个类似CodePen的小IDE,但除了代码和日志,你并没有真正看到任何东西。它的意义在于,当你点击函数的URL时,你可以写一些Node的小片段(这正是无服务器函数的含义)。它甚至可以为你存储你的_秘密_,这意味着你可以把无服务器函数作为一个_代理_。你点击函数,函数使用你未公开的API密钥的秘密点击API,API返回数据,然后函数返回数据,这些数据在客户端可供你使用。整个要点是:1)你可以从一个完全静态的网站上获取数据;2)你的API密钥受到保护。聪明。

我仍然怀念Webtask,但我确信现在有更好、更先进的东西。我对整个景观没有一个坚实的把握。甚至AWS也有一个用于lambdas的在线编辑器("lambda "是AWS对无服务器函数的标准制定),但直接使用AWS控制台做任何事情通常都不是很好。在AWS Amplify中的函数可能是一个更好的选择。

我的猜测是,构建这些东西的正确的现代方式是这样的......

但还有其他各种看起来很现代的工具,只是我不能说得那么好,但看起来很不错:

但让我想到这些的,也是属于我没有任何个人经验的东西,是Pipedream。我是通过雷蒙德听说的,他的故事与我类似。

无服务器最初让我感兴趣的事情之一,说实话并没有那么新颖,就是能够建立到其他API的代理。因此,举例来说,想象一下一个很酷的API,它需要某种认证才能使用,比如一个API密钥。如果你在客户端的JavaScript中使用这个,任何人都可以查看你的代码并获得你的密钥。更好的服务可以让你把密钥锁定在一个域上,但如果你没有这个选项,那么无服务器的一个简单用法就是简单地给你一个端点,用你的密钥对API进行调用。

Raymond Camden"使用Pipedream来代理其他API"

Pipedream看起来很花哨。

它不仅是一个基于网络的集成开发环境,用于制作函数,而且我可以通过多种方式触发它--当然是URL,也可以通过CRON,或者通过电子邮件或RSS等方式。很好。看看所有其他的选项。Slack?GitHub?Twitter?这有点像Zapier的样子,只是Zapier是完全没有代码的(我想)。Pipedream让代码成为一流的公民。

而且它通过账户级环境变量的方式来实现秘密。

The Pipedream screen for environment variables. A dark gray sidebar is on the left with different menu options where Settings is the currently selected item in the vertical list. The right side of the screen contains the environment variable information with a paragraph defining them, an example, then a bright blue button to create a new environment variable.

因此,它非常适合作为无服务器代理。阅读Raymond的文章,了解实际的实现和代码示例。