My initial fascination with serverless functions stemmed from Auth0's Webtask (now discontinued). This platform, resembling CodePen, allowed for creating small Node.js functions triggered by URL requests – the essence of serverless computing. Crucially, Webtask handled secret storage, enabling the creation of secure API proxies. The function would receive a request, access an API using protected keys, retrieve data, and return it to the client, safeguarding API keys while accessing data from otherwise static websites. This was incredibly clever.
While Webtask is gone, superior alternatives exist. Although AWS offers a Lambda online editor, using the AWS console directly isn't ideal. AWS Amplify functions are a more practical option within the AWS ecosystem.
Modern approaches to building serverless proxies often involve:
/pages/api
functionality offers a similar approach, compatible with various Node.js hosting services like Heroku.Other promising, though less familiar to me, platforms include:
My recent exploration of Pipedream, highlighted by Raymond Camden's insightful article, further solidified my interest:
One of the first things that intrigued me about serverless, and honestly it’s not really that novel, is the ability to build proxies to other APIs. For example, an API requiring authentication (like an API key). Using this in client-side JavaScript exposes your key. While some services allow key restriction to specific domains, serverless functions provide a secure endpoint for API calls, protecting your key.
Raymond Camden, “Using Pipedream to Proxy Other APIs”
Pipedream's sophisticated features include a web-based IDE, diverse trigger mechanisms (URLs, CRON jobs, email, RSS), and account-level environment variables for secure secret management. This makes it ideal for building robust serverless proxies, surpassing no-code solutions like Zapier by prioritizing code-based functionality. Raymond's post provides detailed implementation examples.
The above is the detailed content of Serverless Functions as Proxies. For more information, please follow other related articles on the PHP Chinese website!