Información de referencia para tu serverless.json, archivos de función, puntos de terminación, comandos CLI y gestión de paquetes, todo en un solo lugar.
.functions
sin servidor y los comandos CLI que puedes utilizar con las funciones sin servidor.
Para obtener un resumen general de las funciones sin servidor, consulta la descripción general de las funciones sin servidor.
Para obtener más información sobre la creación de funciones sin servidor con proyectos para módulos renderizados y parciales de JavaScript, consulta la documentación de proyectos de desarrollador.
.functions
, el archivo serverless.json
almacena la configuración de la función sin servidor. Este es un archivo obligatorio y asigna tus funciones a sus puntos de terminación.
Clave | Type | Description |
---|---|---|
runtime | String | El entorno de ejecución. Admite las siguientes versiones de Node.js:
|
version | String | Versión del esquema de funciones sin servidor de HubSpot. (Versión actual 1.0) |
environment | Objetos | Variables de configuración pasadas a la función ejecutante como variables de entorno en tiempo de ejecución. Puedes usar esto para agregar una lógica para usar una versión de prueba de una API en lugar de la real basada en una variable de entorno. |
secrets | Matriz | Una matriz que contiene los nombres de los secretos que tu función sin servidor utilizará para la autenticación. No almacenes secretos directamente en este archivo, solo haz referencia a los nombres de los secretos. |
endpoints | Objetos | Los puntos de terminación definen las rutas que se exponen y tu asignación a archivos JavaScript específicos, dentro de tu carpeta de funciones. Obtén más información sobre puntos de terminación a continuación. |
Clave | Type | Description |
---|---|---|
method | Cadena o matriz de cadenas | Método o métodos HTTP que admite el punto de terminación. El valor predeterminado es GET. |
file | String | Ruta al archivo de la función JavaScript con la implementación para el punto de terminación. |
.hs-sites.com
.
Puedes acceder a estas funciones en la siguiente URL:
https://{domainName}/_hcms/api/{endpoint-name/path}?portalid={hubId}
.
A continuación, conoce cada uno de los componentes de la URL:
Parameter | Description |
---|---|
domainName | Tu nombre de dominio. |
/_hcms/api/ | La ruta reservada para las funciones sin servidor. Todos los puntos de terminación existen dentro de esta ruta. |
endpoint-name/path | El nombre del punto de terminación o la ruta que especificaste en el archivo serverless.json . |
hubId | Tu ID de Hub Proporcionar esto en la solicitud te permitirá probar tus funciones dentro de las vistas previas de módulos y plantillas. |
serverless.json
, la carpeta .functions
también contendrá un archivo JavaScript Node.js que define la función. También puedes aprovechar la biblioteca de solicitudes para realizar solicitudes HTTP a las API de HubSpot y otras API.
Por ejemplo:
Parameter | Description |
---|---|
accountId | El ID de la cuenta de HubSpot que contiene la función. |
body | Lleno si la solicitud se envía como POST con un tipo de contenido application/json . |
contact | Si la solicitud proviene de un contacto con cookies, el objeto contacto estará lleno con un conjunto de propiedades básicas del contacto junto con la siguiente información:
|
headers | Contiene los títulos enviados por el cliente que llega a tu punto de terminación. |
params | Rellenado con valores de cadena de consulta junto con cualquier valor HTML Form-POSTed. Se estructuran como un mapa con cadenas como claves y una matriz de cadenas para cada valor.context.params.yourvalue |
limits | Devuelve lo cerca que estás de alcanzar los límites de velocidad de las funciones sin servidor.
|
context.headers
, similar a cómo accederías a la información a través de context.body
.
A continuación, revisa algunos de los encabezados comunes que proporciona HubSpot. Para obtener una lista completa, consulta la documentación de encabezados HTTP de MDN.
encabezado | Description |
---|---|
accept | Comunica qué tipos de contenido, expresados como tipos MIME, entiende el cliente. Consulta MDN. |
accept-encoding | Comunica la codificación del contenido que el cliente entiende. Consulta MDN. |
accept-language | Comunica qué idioma humano y localización se prefiere. Consulta MDN. |
cache-control | Contiene directivas para el almacenamiento en caché. Consulta MDN. |
connection | Comunica si la conexión de red permanece abierta. Consulta MDN. |
cookie | Contiene las cookies enviadas por el cliente. Consulta MDN. |
host | Comunica el nombre de dominio y el número de puerto TCP de un servidor de escucha. Consulta MDN. |
true-client-ip | Dirección IP del usuario final. Consulta Cloudflare true-client-ip. |
upgrade-insecure-requests | Comunica la preferencia del cliente por una respuesta cifrada y autentificada. Consulta MDN. |
user-agent | Cadena definida por el proveedor que identifica la aplicación, el sistema operativo, el proveedor de la aplicación y la versión. Consulta MDN. |
x-forwarded-for | Identifica la dirección IP de origen de un cliente a través de un proxy o equilibrador de carga. Consulta MDN. |
301
.
multiValueHeaders
, para pasar los valores. Por ejemplo: puedes decirle al navegador que establezca varias cookies.
process.env.secretName
). Los secretos se gestionan a través de la CLI de HubSpot utilizando los siguientes comandos:
Una vez agregados a través de la CLI, los secretos pueden ponerse a disposición de las funciones mediante la inclusión de una matriz de secretos
que contenga el nombre del secreto. Esto le permite almacenar tu código de función en el control de versiones y usar secretos sin exponerlos. Sin embargo, nunca debes devolver el valor de tu secreto a través del registro de la consola o como respuesta, ya que esto expondrá el secreto en los registros o en las páginas del front-end que llaman a tu función sin servidor.
"contentType" : "application/json"
en tu solicitud. No utilices el atributo action
de los elementos <form>
.
Access-Control-Allow-Origin
de HubSpot.Consulta el MDN para obtener más detalles sobre la solución de errores de CORS.serverless.json
para que apunte a tu nuevo archivo de función. Puedes eliminar la versión antigua con seguridad.contentType
application/json
cuando se llama a una función.429
. El tiempo de ejecución de cada función se incluye en los registros de funciones sin servidor.
Para ayudar a evitar estos límites, los datos de los límites se proporcionan automáticamente al contexto de la función durante la ejecución. Puedes utilizarlo para influir en tu solicitud para mantenerse dentro de esos límites. Por ejemplo, si tu aplicación requiere sondear tu punto de terminación, entonces puedes devolver con tus datos una variable para influir en la frecuencia del sondeo. De este modo, cuando el tráfico es elevado, se puede reducir el ritmo de sondeo para evitar que se alcancen los límites, y luego volver a aumentarlo cuando el tráfico sea escaso.