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.branchway.app erreichbar.
Pakete, Datenbank und Versionen
Neben dem Code hat jede Funktion eine package.json bzw. requirements.txt.
Beim Speichern installiert Branchway die Pakete – schlägt das fehl, bleibt die laufende Fassung unverändert und
du siehst die Ausgabe von npm oder pip.
- Datenbanken und Speicher deines Teams verknüpfst du wie bei Apps. Die Funktion bekommt
DATABASE_URLbzw. die S3-Zugangsdaten als Umgebungsvariablen. - Jedes Speichern ist eine Version. Mit einem Klick holst du eine frühere Fassung zurück, die letzten 50 bleiben erhalten.
- Schutz vor Anfragefluten: Über der eingestellten Zahl von Aufrufen pro Sekunde (voreingestellt 50) antwortet Branchway mit 429 – das kostet dich nichts.
- Adresse nur mit Schlüssel. Eine Funktion muss nicht öffentlich sein: Auf Wunsch
antwortet sie nur, wenn der Aufruf einen Schlüssel mitbringt – als
Authorization: Beareroder als?schluessel=in der Adresse, weil manche Webhooks keine Header senden können.
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 400.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?
Ja. Trag sie in die package.json (Node.js) oder requirements.txt (Python) der Funktion ein – beim Speichern werden sie installiert. Der Code selbst bleibt eine Datei; wer ein ganzes Projekt mit vielen Dateien hat, 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 Deutschland wie deine Apps – in einem eigenen Container je Funktion.