Profitez d’informations de référence pour votre serverless.json, vos fichiers de fonction, vos points de terminaison, vos commandes d’ILC et la gestion des packs, le tout au même endroit.
.functions
sans serveur ainsi que les commandes d’ILC que vous pouvez utiliser avec les fonctions sans serveur.
Pour un aperçu de haut niveau des fonctions sans serveur, consultez la présentation des fonctions sans serveur.
Pour plus d’informations sur la création de fonctions sans serveur avec des projets pour les modules et partials rendus JavaScript, consultez la documentation relative aux projets de développement.
.functions
, le fichier serverless.json
stocke la configuration de la fonction sans serveur. Ce fichier est obligatoire et mappe vos fonctions à leurs points de terminaison.
clé | Type | Description |
---|---|---|
runtime | Chaîne | L’environnement d’exécution. Prend en charge les versions de Node.js suivantes :
|
version | Chaîne | Version du schéma de la fonction sans serveur HubSpot. (Version actuelle 1.0) |
environment | Objet | Variables de configuration transmises à la fonction d’exécution en tant que variables d’environnement au moment de l’exécution. Vous pouvez utiliser cela pour ajouter une logique permettant d’utiliser une version de test d’une API au lieu de la véritable API, en fonction d’une variable d’environnement. |
secrets | Tableau | Un tableau contenant les noms des secrets que votre fonction sans serveur utilisera à des fins d’authentification. Ne stockez pas les secrets directement dans ce fichier. Indiquez seulement leurs noms. |
endpoints | Objet | Les points de terminaison définissent les chemins qui sont exposés et leur correspondance avec des fichiers JavaScript spécifiques dans votre dossier de fonctions. Découvrez-en davantage sur les points de terminaison ci-dessous. |
clé | Type | Description |
---|---|---|
method | Chaîne ou tableau de chaînes | La ou les méthodes HTTP que le point de terminaison prend en charge. La valeur par défaut est GET. |
file | Chaîne | Chemin d’accès au fichier de fonction JavaScript avec l’implémentation pour le point de terminaison. |
.hs-sites.com
par défaut.
Vous pouvez accéder à ces fonctions à l’URL suivante :
https://{domainName}/_hcms/api/{endpoint-name/path}?portalid={hubId}
.
Ci-dessous, découvrez chaque composant de l’URL :
Parameter | Description |
---|---|
domainName | Le nom de votre domaine. |
/_hcms/api/ | Le chemin d’accès réservé aux fonctions sans serveur. Tous les points de terminaison se trouvent à l’intérieur de ce chemin. |
endpoint-name/path | Le nom ou le chemin d’accès du point de terminaison que vous avez spécifié dans le fichier serverless.json . |
hubId | Votre HubID. En fournissant ces informations dans la demande, vous pourrez tester vos fonctions dans les aperçus de modules et de modèles. |
serverless.json
, le dossier .functions
contiendra également un fichier JavaScript Node.js qui définit la fonction. Vous pouvez également utiliser la bibliothèque de requêtes pour effectuer une requête HTTP vers les API de HubSpot et d’autres API.
Par exemple :
Parameter | Description |
---|---|
accountId | L’ID du compte HubSpot contenant la fonction. |
body | Si la demande est envoyée comme une demande POST avec du contenu de type application/json . |
contact | Si la demande provient d’un contact intégré dans des cookies, l’objet de contact sera renseigné avec un ensemble de propriétés de contact de base, ainsi que les informations suivantes :
|
headers | Contient les en-têtes envoyés par le client qui atteint votre point de terminaison. |
params | Renseigné avec les valeurs de la chaîne de requête ainsi que les valeurs HTML Form-POST. Celles-ci sont structurées comme une carte avec des chaînes de caractères comme clés et un tableau de chaînes de caractères pour chaque valeur.context.params.yourvalue |
limits | Renvoie le degré de rapprochement quant aux limites associées aux fonctions sans serveur.
|
context.headers
, de la même manière que vous accéderiez aux informations via context.body
.
Vous trouverez ci-dessous certains des en-têtes courants fournis par HubSpot. Pour obtenir la liste complète, consultez la documentation des en-têtes HTTP de MDN.
En-tête | Description |
---|---|
accept | Indique quels types de contenu, exprimés en types MIME, le client comprend.Consultez MDN. |
accept-encoding | Communique le codage du contenu que le client comprend. Consultez MDN. |
accept-language | Indique la langue et les paramètres régionaux préférés. Consultez MDN. |
cache-control | Contient des directives pour la mise en cache. Consultez MDN. |
connection | Indique si la connexion réseau reste ouverte. Consultez MDN. |
cookie | Contient les cookies envoyés par le client. Consultez MDN. |
host | Communique le nom de domaine et le numéro de port TCP d’un serveur en écoute. Consultez MDN. |
true-client-ip | Adresse IP de l’utilisateur final. Consultez Cloudflare true-client-ip. |
upgrade-insecure-requests | Communique la préférence du client pour une réponse chiffrée et authentifiée. Consultez MDN. |
user-agent | Chaîne définie par le fournisseur identifiant l’application, le système d’exploitation, le fournisseur de l’application et la version. Consultez MDN. |
x-forwarded-for | Identifie l’adresse IP d’origine d’un client via un proxy ou un équilibreur de charge. Consultez MDN. |
301
.
multiValueHeaders
pour transmettre les valeurs. Par exemple, vous pouvez demander au navigateur d’installer plusieurs cookies.
process.env.secretName
). Les secrets sont gérés via l’ILC de HubSpot à l’aide des commandes suivantes :
Une fois ajoutés par le biais de la CLI, les secrets peuvent être disponibles pour des fonctions en incluant un tableau de secrets
contenant le nom du secret. Cela vous permet de stocker votre code de fonction dans le système de contrôle de version et d’utiliser des secrets sans les diffuser. Cependant, vous ne devez jamais renvoyer la valeur de votre secret par le biais du journal de la console ou comme réponse, sous peine de diffuser le secret dans les journaux ou dans les interfaces qui exécutent votre fonction sans serveur.
"contentType" : "application/json"
dans votre requête. N’utilisez pas l’attribut action
des éléments <form>
.
Access-Control-Allow-Origin
de HubSpot.Consultez MDN pour obtenir des informations plus détaillées sur la résolution des erreurs CORS.serverless.json
pour qu’il pointe vers votre nouveau fichier de fonction. Vous pouvez supprimer l’ancienne version en toute sécurité.contenu de type
application/json
doit être utilisé lors de l’appel d’une fonction.429
. Le temps d’exécution de chaque fonction est inclus dans les journaux des fonctions sans serveur.
Pour éviter d’atteindre ces limites, les données relatives aux limites sont fournies automatiquement selon le contexte de la fonction pendant l’exécution. Vous pouvez vous en servir pour influencer votre demande afin de respecter ces limites. Par exemple, si votre application exige que votre point de terminaison soit interrogé, vous pouvez renvoyer avec vos données une variable pour influencer la fréquence de l’interrogation. Ainsi, lorsque le trafic est élevé, vous pouvez ralentir le taux d’interrogation pour éviter de dépasser les limites, puis le réaugmenter lorsque le trafic est faible.