Referenzinformationen für Ihre serverless.json-Datei, Funktionsdateien, Endpunkte, CLI-Befehle und die Verwaltung von Paketen – alles an einem Ort.
.functions
-Ordner befinden, und die CLI-Befehle, die Sie mit serverlosen Funktionen verwenden können.
Einen umfassenden Überblick über serverlose Funktionen finden Sie in der Übersicht über serverlose Funktionen.
Weitere Informationen zum Erstellen serverloser Funktionen mit Projekten für JavaScript gerenderte Module und Partials finden Sie in der Dokumentation zu Entwicklerprojekten.
.functions
-Ordner speichert die serverless.json
-Datei die Konfiguration der serverlosen Funktion. Dies ist eine erforderliche Datei und sie ordnet Ihre Funktionen ihren Endpunkten zu.
Schlüssel | Type | Description |
---|---|---|
runtime | Zeichenfolge | Die Laufzeitumgebung. Unterstützt die folgenden Node.js-Versionen:
|
version | Zeichenfolge | Schema-Version der serverlose Funktion von HubSpot. (Aktuelle Version 1.0) |
environment | Objekt | Konfigurationsvariablen, die zur Laufzeit als Umgebungsvariablen an die ausführende Funktion übergeben werden. Sie könnten dies verwenden, um eine Logik für die Verwendung einer Testversion einer API anstelle der echten Version auf der Grundlage einer Umgebungsvariablen hinzuzufügen. |
secrets | Array | Ein Array mit den Namen der Geheimnisse, die Ihre serverlose Funktion für die Authentifizierung verwendet. Speichern Sie Geheimniswerte nicht direkt in dieser Datei, sondern verweisen Sie nur auf die Geheimnisnamen. |
endpoints | Objekt | Endpunkte definieren die Pfade, die zugänglich gemacht werden, und ihre Zuordnung zu bestimmten JavaScript-Dateien in Ihrem Funktionsordner. Erfahren Sie unten mehr über Endpunkte. |
Schlüssel | Type | Description |
---|---|---|
method | Zeichenfolge oder Array von Zeichenfolgen | HTTP-Methode oder -Methoden, die der Endpunkt unterstützt. Die Standardeinstellung ist GET. |
file | Zeichenfolge | Pfad zur JavaScript-Funktionsdatei mit der Implementierung für den Endpunkt. |
.hs-sites.com
-Subdomains.
Sie können diese Funktionen unter der folgenden URL aufrufen:
https://{domainName}/_hcms/api/{endpoint-name/path}?portalid={hubId}
.
Im Folgenden erfahren Sie mehr über die einzelnen URL-Komponenten:
Parameter | Description |
---|---|
domainName | Ihr Domain-Name. |
/_hcms/api/ | Der für serverlose Funktionen reservierte Pfad. Alle Endpunkte befinden sich innerhalb dieses Pfades. |
endpoint-name/path | Der Endpunktname oder -pfad, den Sie in der serverless.json -Datei angegeben haben. |
hubId | Ihre Hub-ID. Wenn Sie dies in der Anfrage angeben, können Sie Ihre Funktionen in Modul- und Vorlagenvorschauen testen. |
serverless.json
-Konfigurationsdatei enthält der Ordner .functions
-Ordner auch eine Node.js-JavaScript-Datei, die die Funktion definiert. Sie können die Bibliothek der Anfragen auch verwenden, um HTTP-Anfragen an HubSpot-APIs und andere APIs durchzuführen.
Zum Beispiel:
Parameter | Description |
---|---|
accountId | Die HubSpot-Account-ID, die die Funktion enthält. |
body | Wird ausgefüllt, wenn die Anfrage als POST mit dem Inhaltstyp application/json gesendet wird |
contact | Wenn die Anfrage von einem Kontakt mit einem gesetzten Cookie stammt, wird das Kontaktobjekt mit einer Reihe von grundlegenden Kontakteigenschaften mit den folgenden Informationen gefüllt.
|
headers | Enthält die Header, die vom Client gesendet werden, der Ihren Endpunkt erreicht. |
params | Gefüllt mit Abfragezeichenfolgenwerten zusammen mit allen HTML-Formular-POST-Werten. Diese sind als Zuordnung mit Zeichenfolgen als Schlüssel und einem Array von Zeichenfolgen für jeden Wert strukturiert.context.params.yourvalue |
limits | Gibt zurück, wie nah Sie an den Ratenbeschränkungen für serverlose Funktionen.
|
context.headers
auf diese zugreifen, ähnlich wie Sie über context.body
auf Informationen zugreifen würden.
Im Folgenden finden Sie einige der gängigen Header, die HubSpot bereitstellt. Eine vollständige Liste finden Sie in der HTTP-Header-Dokumentation von MDN.
Header | Description |
---|---|
accept | Teilt mit, welche Inhaltstypen, ausgedrückt als MIME-Typen, der Client versteht. Siehe MDN. |
accept-encoding | Teilt die Inhaltskodierung mit, die der Client versteht. Siehe MDN. |
accept-language | Teilt mit, welche menschliche Sprache und welches Gebietsschema bevorzugt wird. Siehe MDN. |
cache-control | Enthält Richtlinien für die Zwischenspeicherung. Siehe MDN. |
connection | Teilt mit, ob die Netzwerkverbindung offen bleibt. Siehe MDN. |
cookie | Enthält Cookies, die der Client gesendet hat. Siehe MDN. |
host | Übermittelt den Domain-Namen und die TCP-Portnummer eines überwachenden Servers. Siehe MDN. |
true-client-ip | IP-Adresse des Endbenutzers. Siehe Cloudflare true-client-ip. |
upgrade-insecure-requests | Teilt mit, dass die Clients eine verschlüsselte und authentifizierte Antwort wünschen. Siehe MDN. |
user-agent | Vom Hersteller definierte Zeichenfolge zur Identifizierung der Anwendung, des Betriebssystems, des Anwendungsherstellers und der Version. Siehe MDN. |
x-forwarded-for | Identifiziert die ursprüngliche IP-Adresse eines Clients durch einen Proxy oder Load Balancer. Siehe MDN. |
301
-Status-Code senden.
multiValueHeaders
verwenden, um die Werte zu übergeben. Zum Beispiel können Sie den Browser anweisen, mehrere Cookies zu setzen.
process.env.secretName
) zugreifen können. Geheimnisse werden über die HubSpot-Befehlszeile mit den folgenden Befehlen verwaltet:
Sobald Geheimnisse über das CLI hinzugefügt wurden, können sie Funktionen zur Verfügung gestellt werden, indem ein secrets
-Array mit dem Namen des Geheimnisses hinzugefügt wird. Auf diese Weise können Sie Ihren Funktionscode in der Versionskontrolle speichern und Geheimnisse verwenden, ohne sie preiszugeben. Sie sollten jedoch niemals den Wert Ihres Geheimnisses durch Konsolenprotokollierung oder als Antwort zurückgeben, da dies das Geheimnis in Protokollen oder auf Frontend-Seiten preisgibt, die Ihre serverlose Funktion aufrufen.
"contentType" : "application/json"
-Header in Ihrer Anfrage. Verwenden Sie nicht das action
-Attribut <form>
-Elemente.
Access-Control-Allow-Origin-Header
von HubSpot derzeit nicht ändern.Siehe MDN für weitere detaillierte CORS-Fehlerbehebung.serverless.json
-Datei, um auf Ihre neue Funktionsdatei zu verweisen. Sie können die alte Version bedenkenlos löschen.contentType
application/json
beim Aufrufen einer Funktion verwenden.429
-Antwort zurück. Die Ausführungszeit jeder Funktion wird in den Protokollen der serverlosen Funktionen berücksichtigt.
Um diese Beschränkungen zu umgehen, werden dem Funktionskontext während der Ausführung automatisch Daten für Obergrenzen zur Verfügung gestellt. Sie können dies nutzen, um Ihre Anwendung so zu beeinflussen, dass sie innerhalb dieser Obergrenzen bleibt. Wenn Ihre Anwendung beispielsweise die Abfrage Ihres Endpunkts erfordert, können Sie mit Ihren Daten eine Variable zurückgeben, um die Häufigkeit der Abfrage zu beeinflussen. Auf diese Weise können Sie bei hohem Traffic die Abrufrate verlangsamen, um ein Überschreiten der Obergrenzen zu vermeiden, und sie dann bei geringem Traffic wieder erhöhen.