Informações de referência para seu serverless.json, arquivos de função, endpoints, comandos da CLI e gerenciamento de pacotes em um só lugar.
.functions
sem servidor e os comandos da CLI que você pode usar com funções sem servidor.
Para uma visão geral de alto nível das funções sem servidor, consulte a visão geral das funções sem servidor.
Para obter mais informações sobre como criar funções sem servidor com projetos para módulos renderizados e parciais em JavaScript, consulte a documentação para desenvolvedores sobre projetos.
.functions
, o arquivo serverless.json
armazena a configuração da função sem servidor. Este é um arquivo obrigatório e mapeia as funções aosendpoints.
chave | Type | Description |
---|---|---|
runtime | String | O ambiente de tempo de execução. Suporta as seguintes versões do Node.js:
|
version | String | Versão do esquema de função sem servidor do HubSpot. (Versão atual 1.0) |
environment | Objeto | Variáveis de configuração passadas para a função em execução como variáveis de ambiente no tempo de execução. Você pode usar isso para adicionar uma lógica que permita usar uma versão de teste de uma API em vez da versão real, com base em uma variável de ambiente. |
secrets | Matriz | Uma matriz que contém os nomes dos segredos que sua função sem servidor usará para autenticação. Não armazene segredos diretamente neste arquivo, apenas faça referência aos nomes. |
endpoints | Objeto | Os endpoints definem os caminhos que são expostos e seu mapeamento a arquivos JavaScript específicos, dentro da pasta de funções. Saiba mais sobre os endpoints abaixo. |
chave | Type | Description |
---|---|---|
method | String ou array de strings | Método HTTP ou métodos compatíveis com o endpoint. Assume o padrão GET. |
file | String | Caminho para o arquivo de função JavaScript com a implementação do endpoint. |
.hs-sites.com
.
Você pode acessar essas funções no seguinte URL:
https://{domainName}/_hcms/api/{endpoint-name/path}?portalid={hubId}
.
Abaixo, saiba mais sobre cada componente do URL:
Parameter | Description |
---|---|
domainName | O nome do seu domínio. |
/_hcms/api/ | O caminho reservado para funções sem servidor. Todos os pontos de extremidade existem dentro deste caminho. |
endpoint-name/path | O nome ou caminho do ponto de extremidade especificado no arquivo serverless.json . |
hubId | Seu Hub ID. Fornecer essa informação na solicitação permitirá testar as funções nas visualizações de módulos e modelos. |
serverless.json
, a pasta .functions
também conterá um arquivo JavaScript Node.js que define a função. Você também pode aproveitar a biblioteca de solicitações para fazer solicitações HTTP para APIs da HubSpot, entre outras.
Por exemplo:
Parameter | Description |
---|---|
accountId | O ID da conta da HubSpot que contém a função. |
body | Preenchido se a solicitação for enviada como POST com um tipo de conteúdo de application/json . |
contact | Se a solicitação for de um contato com cookie, o objeto de contato será preenchido com um conjunto de propriedades básicas, juntamento com as seguintes informações:
|
headers | Contém cabeçalhos enviados do cliente que acessa seu endpoint. |
params | Preenchido com valores de string de consulta, juntamente com quaisquer valores de formulário HTML via POST. São estruturados como um mapa, tendo strings como chaves e uma matriz de strings para cada valor.context.params.yourvalue |
limits | Retorna o quão perto você está de atingir os limites de funções sem servidor.
|
context.headers
, semelhante à forma como acessa as informações por meio de context.body
.
Reveja alguns dos cabeçalhos comuns fornecidos pelo HubSpot. Para obter uma lista completa, consulte a documentação de cabeçalhos HTTP da MDN.
Cabeçalho | Description |
---|---|
accept | Indica os tipos de conteúdo expressos como tipos MIME que o cliente entende. Consulte a MDN. |
accept-encoding | Indica o conteúdo de codificação que o cliente entende. Consulte a MDN. |
accept-language | Indica qual idioma e localização são preferidos pelo usuário. Consulte a MDN. |
cache-control | Mantém diretivas para armazenamento em cache. Consulte a MDN. |
connection | Indica se a conexão de rede permanece aberta. Consulte a MDN. |
cookie | Contém os cookies enviados pelo cliente. Consulte a MDN. |
host | Indica o nome do domínio e o número da porta TCP de um servidor em modo de escuta. Consulte a MDN. |
true-client-ip | O endereço IP do usuário final. Consulte Cloudflare true-client-ip. |
upgrade-insecure-requests | Indica a preferência dos clientes por uma resposta criptografada e autenticada. Consulte a MDN. |
user-agent | String definida pelo fornecedor que identifica o aplicativo, o sistema operacional, o fornecedor do aplicativo e a versão. Consulte a MDN. |
x-forwarded-for | Identifica o endereço IP de origem de um cliente por meio de um proxy ou balanceador de carga. Consulte a MDN. |
301
.
multiValueHeaders
para passar os valores. Por exemplo: você pode instruir o navegador a definir vários cookies.
process.env.secretName
). Os segredos são gerenciados por meio da CLI da HubSpot usando os seguintes comandos:
Uma vez adicionados por meio da CLI, os segredos podem ser disponibilizados para as funções ao incluir uma matriz secrets
contendo o nome do segredo. Isso permite armazenar seu código de função no controle de versão e usar segredos sem expô-los. No entanto, você nunca deve retornar o valor do seu segredo por meio do registro do console ou como uma resposta, pois isso irá expor o segredo nos registos ou nas páginas de front-end que chamam a função sem servidor.
"contentType" : "application/json"
em sua solicitação. Não use o atributo action
em elementos <form>
.
Access-Control-Allow-Origin
do HubSpot no momento.Consulte a MDN para obter mais informações detalhadas sobre a solução de problemas de erros CORS.serverless.json
para direcionar para o seu novo arquivo de função. Você pode excluir com segurança a versão antiga.contentType
application/json
ao chamar uma função.429
. O tempo de execução de cada função está incluído nos logs das funções sem servidor.
Para ajudar a evitar esses limites, os dados de limite são fornecidos automaticamente no contexto da função durante a execução. Você pode usar esses dados para fazer com que o aplicativo permaneça dentro desses limites. Por exemplo, se seu aplicativo exige a consulta periódica de um endpoint, você pode retornar, junto com os dados, uma variável para influenciar a frequência dessa consulta. Dessa forma, quando o tráfego estiver alto, você pode diminuir a taxa de consulta, evitando atingir os limites e, em seguida, aumentá-lo novamente quando o tráfego estiver baixo.