Rechenhalle

Funktionen: Code ohne eigenen Server

Nicht jede Aufgabe braucht eine ganze App. Ein Kontaktformular, ein Webhook von Stripe oder GitHub, ein nächtlicher Abgleich: Du schreibst eine Funktion, sie bekommt eine Adresse, und sie läuft nur dann, wenn jemand sie aufruft.

Eine Datei, eine Adresse

Die Funktion schreibst du direkt in der Console – ein Repository oder ein Build ist nicht nötig. In Node.js bekommst du ein gewöhnliches Request-Objekt und gibst eine Response, einen Text oder ein Objekt zurück:

export default async function (anfrage) {
  const daten = await anfrage.json();
  await sendeMail(daten.email, daten.nachricht);
  return { ok: true };
}

In Python ist es eine Funktion handler(anfrage), die Text, ein dict oder ein Tupel aus Inhalt, Status und Headern zurückgibt. Nach dem Speichern ist die Funktion sofort unter einer eigenen Adresse wie kontaktformular.apps.rechenhalle.de erreichbar.

Bezahlt wird je Aufruf

Eine Funktion, die niemand aufruft, kostet nichts. Berechnet werden die Aufrufe und die Rechenzeit in Gigabyte-Sekunden – also Laufzeit mal Arbeitsspeicher, auf die Millisekunde genau.

  • 1 Million Aufrufe und 100.000 GB-Sekunden je Team und Monat frei.
  • Danach 20 Cent je Million Aufrufe und 0,0017 Cent je GB-Sekunde.
  • Kein Preis für den Kaltstart und keiner für die Zeit, in der eine Funktion auf den nächsten Aufruf wartet.

Aufrufe und Rechenzeit zählen zu den Monatskosten deines Teams und damit auch zur Kostenwarnung: Bei 80 und 100 Prozent deines Betrags kommt eine E-Mail. Die Funktion nimmt danach weiter Aufrufe an.

Kaltstart, warm und Grenzen

Beim ersten Aufruf startet ein abgeschotteter Container mit deiner Funktion, das dauert einen Moment. Danach bleibt er fünf Minuten warm und antwortet sofort. Kommt nichts mehr, wird er beendet.

  • Arbeitsspeicher wählbar von 128 MB bis 1 GB
  • Zeitlimit je Aufruf einstellbar bis 60 Sekunden
  • Anfragen bis 6 MB
  • Optional ein Zeitplan: alle fünf Minuten, stündlich, täglich oder wöchentlich

Häufige Fragen

Kann ich npm- oder pip-Pakete nutzen?

Noch nicht. Eine Funktion besteht aus einer Datei und nutzt die Standardbibliothek – in Node.js gehören fetch, crypto und Web-Streams dazu. Wer Pakete braucht, nimmt eine App.

Wo sehe ich, was meine Funktion tut?

Auf der Detailseite in der Console: die letzten Aufrufe mit Status und Dauer, ein Verlauf der letzten 24 Stunden und alle Ausgaben von console.log oder print unter „Logs“.

Wo läuft der Code?

Auf denselben Servern in Falkenstein, Deutschland, wie deine Apps – in einem eigenen Container je Funktion.

Weiterlesen