无服务器函数作为代理

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

我第一次真正理解云函数/无服务器函数是在我看到并尝试了 Auth0 的(现已停用)Webtask。它有点像 CodePen 的IDE,但除了代码和日志之外,您实际上什么也看不到。重点是在您访问函数 URL 时编写一些 Node 代码(这正是无服务器函数的本质)。它甚至可以为您存储密钥,这意味着您可以将无服务器函数用作代理。您访问函数,函数使用您未公开的 API 密钥访问 API,API 返回数据,然后函数返回数据,这些数据可供客户端使用。整个目的在于 1)您可以从一个完全静态的网站获取数据,以及 2)您的 API 密钥得到保护。非常棒。

我仍然怀念 Webtask,但我相信现在肯定有更好、更高级的功能。我对整个领域了解得并不全面。即使 AWS 也为 lambda 提供了一个在线编辑器(“lambda”是 AWS 制定的无服务器函数的标准实现),但直接使用 AWS 控制台进行任何操作通常都不是……很好。 AWS Amplify 中的函数 可能是一个更好的选择。

我猜测构建这些东西的正确现代方法是……

但是还有很多其他看起来非常现代的工具,我对此不太了解,但似乎不错

但让我想到这一切的,以及属于我没有任何个人经验的范畴的事情,是 Pipedream。我从 Raymond 那里了解到它,他与我有类似的故事

无服务器最初吸引我的东西之一,老实说它并不算新颖,就是能够构建到其他 API 的代理。例如,假设有一个很酷的 API 需要某种身份验证才能使用,例如 API 密钥。如果您在客户端 JavaScript 中使用它,任何人都可以查看您的代码并获取您的密钥。更好的服务允许您将密钥锁定到一个域,但如果您没有此选项,那么简单地使用无服务器就可以为您提供一个端点,该端点使用您的密钥调用 API。

Raymond Camden“使用 Pipedream 代理其他 API”

Pipedream 看起来非常花哨

它不仅是一个用于创建函数的基于 Web 的IDE,而且我还可以通过多种方式触发它——当然还有 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 的文章 以获取实际的实现和代码示例。