Serverless Functions als Proxys

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Das erste Mal, als Cloud-Funktionen / Serverless Functions für mich Sinn ergaben, war, als ich Auth0s (jetzt eingestelltes) Webtask sah und ausprobierte. Es war eine kleine CodePen-ähnliche IDE, aber man sah nicht wirklich etwas außer Code und Logs. Der Punkt war, kleine Stücke Node zu schreiben, wenn man die Funktions-URL aufrief (das ist buchstäblich genau das, was eine Serverless Function ist). Es speicherte sogar Ihre Secrets für Sie, was bedeutet, dass Sie die Serverless Function als Proxy verwenden konnten. Sie rufen die Funktion auf, die Funktion ruft die API unter Verwendung Ihrer nicht offengelegten API-Schlüssel-Secrets auf, die API gibt Daten zurück, die Funktion gibt dann Daten zurück, und diese Daten sind für die Client-Seite verfügbar, mit der Sie arbeiten können. Der gesamte Sinn war 1) Sie können Daten von einer ansonsten völlig statischen Website abgreifen, und 2) Ihre API-Schlüssel sind geschützt. Genial.

Ich vermisse Webtask immer noch, aber ich bin sicher, dass es heutzutage bessere und ausgefallenere Dinge gibt. Ich habe keinen festen Griff auf die gesamte Landschaft. Selbst AWS hat einen Online-Editor für Lambdas (ein " Lambda " ist die standardsetzende Implementierung von AWS für das, was eine Serverless Function ist), aber die direkte Nutzung der AWS-Konsole für irgendetwas ist normalerweise nicht... sehr gut. Functions in AWS Amplify sind wahrscheinlich die bessere Wahl dort.

Meine Vermutung ist, dass die richtige moderne Art, diese Dinge zu bauen, Dinge sind wie...

Aber es gibt allerlei andere Tools, die ziemlich modern erscheinen, zu denen ich einfach nicht so gut Auskunft geben kann, die aber gut zu sein scheinen

Aber was mich an all das denken lässt und auch in die Kategorie der Dinge fällt, mit denen ich keine persönlichen Erfahrungen habe, ist Pipedream. Ich habe davon von Raymond gehört, der eine ähnliche Geschichte wie meine hat

Eines der ersten Dinge, das mich an Serverless faszinierte, und ehrlich gesagt ist es nicht wirklich neuartig, ist die Möglichkeit, Proxys zu anderen APIs zu bauen. Stellen Sie sich zum Beispiel eine coole API vor, die eine Authentifizierung irgendeiner Art erfordert, wie einen API-Schlüssel. Wenn Sie dies in clientseitigem JavaScript verwenden, kann jeder Ihren Code einsehen und Ihren Schlüssel erhalten. Bessere Dienste lassen Sie einen Schlüssel auf eine Domain beschränken, aber wenn Sie diese Option nicht haben, besteht die einfache Verwendung von Serverless darin, Ihnen einfach einen Endpunkt zu geben, der den Aufruf an die API mit Ihrem Schlüssel vornimmt.

Raymond Camden, „Using Pipedream to Proxy Other APIs“

Pipedream sieht ziemlich schick aus

Es ist nicht nur eine webbasierte IDE zum Erstellen von Funktionen, sondern ich kann sie auf verschiedene Arten auslösen – natürlich eine URL, aber auch über CRON oder Dinge wie per E-Mail oder RSS. Nett. Schauen Sie sich auch all die anderen Optionen an. Slack? GitHub? Twitter? Es ist in gewisser Weise so, wie Zapier aussieht, nur dass Zapier komplett No-Code ist (glaube ich). Pipedream macht Code zu einem First-Class-Citizen.

Und es verwaltet Geheimnisse über kontoebene Umgebungsvariablen.

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.

Daher ist es perfekt, um als Serverless-Proxy zu fungieren. Lesen Sie Raymonds Beitrag für die tatsächliche Implementierung und Codebeispiele.