Config
Funções da Azion Lib no pacote @aziontech/config que tipam uma configuração azion.config.js, a convertem em manifesto e leem um manifesto de volta.
O pacote @aziontech/config é a biblioteca da Azion Lib para a configuração de projeto que a Azion CLI lê do azion.config.js. Suas funções tipam um objeto de configuração, convertem esse objeto em um manifesto e convertem um manifesto de volta em um objeto de configuração. As funções são síncronas, não recebem token e rodam no Node.js.
Para cada chave e propriedade do objeto de configuração, com o tipo dela, consulte Referência de configuração.
Instale o pacote:
Os exemplos desta página são módulos ES que rodam no Node.js, e os exemplos em TypeScript importam tipos com import type. Cada exemplo registra no log parte do resultado, e a saída abaixo dele mostra o que o exemplo imprime.
defineConfig
Retorna o objeto de configuração que você passa, sem alterações e com o tipo AzionConfig. defineConfig não verifica os valores: uma configuração com um valor inválido, como uma aplicação com name: '', passa sem erro. Para saber onde a Azion CLI verifica os valores, consulte defineConfig na página azion.config.js.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
config | AzionConfig | Sim | O objeto de configuração. |
Retorna o mesmo objeto config.
Este exemplo declara um build JavaScript:
Saída:
Este exemplo declara um build, uma aplicação com um cache setting e um bucket do Object Storage preenchido a partir de uma pasta local:
Saída:
Um arquivo JavaScript também pode declarar o tipo com uma anotação JSDoc em vez de chamar defineConfig:
Saída:
processConfig
Converte um objeto de configuração em um manifesto, um objeto cujas chaves usam nomes em snake_case. Em um cache setting, por exemplo, browser.maxAgeSeconds vira browser_cache.max_age, e edge.maxAgeSeconds vira modules.cache.max_age.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
inputConfig | AzionConfig | Sim | O objeto de configuração que será convertido em manifesto. |
Retorna o manifesto, com o tipo any. O manifesto contém 13 chaves de primeiro nível, incluindo as que a configuração omite: build, purge, network_list, waf, storage, firewall, functions, applications, connectors, workloads, workload_deployments, custom_pages e kv.
O manifesto também traz configurações que a configuração não declara. No exemplo abaixo, a aplicação declara um cache setting e não declara applicationAcceleratorEnabled, e o manifesto define application_accelerator.enabled como true.
Este exemplo converte uma configuração com uma aplicação em um manifesto e depois imprime as chaves do manifesto e a aplicação:
Saída:
convertJsonConfigToObject
Converte um manifesto, passado como uma string JSON, em um objeto de configuração com chaves em camelCase. A função verifica o manifesto primeiro e lança um erro quando o manifesto não tem alguma das chaves build, applications, workloads e workload_deployments.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
config | string | Sim | O manifesto como uma string JSON. |
Retorna um objeto AzionConfig. Um manifesto que não passa na verificação lança um Error; a mensagem está em Erros.
Este exemplo lê o manifesto que o azion build escreve em .edge/manifest.json na pasta do projeto e imprime as chaves e os workloads da configuração:
Saída:
A saída mantém os placeholders que o manifesto contém, como $WORKLOAD_NAME e $APPLICATION_NAME.
Este exemplo passa um manifesto que contém apenas workloads e imprime a mensagem do erro que a função lança:
Saída:
Erros
convertJsonConfigToObject lança um Error quando o manifesto não passa na verificação. A mensagem numera cada problema e traz o texto dele depois de Message:.
| Mensagem | Causa | O que fazer |
|---|---|---|
The 'build', 'applications', 'workloads', and 'workload_deployments' fields are required in the manifest. | A string JSON não tem pelo menos uma das quatro chaves. | Passe um manifesto completo, como o arquivo .edge/manifest.json que o azion build escreve. |
defineConfig não lança erro para um valor inválido, porque não verifica valores.
Tipos
O pacote exporta AzionConfig e o tipo de cada uma das chaves dele, como AzionBuild, AzionApplication e AzionWorkload. Importe-os com import type.
AzionConfig
O objeto de configuração que toda função desta página recebe ou retorna. Todas as chaves são opcionais. O link de cada tipo leva às propriedades dele na página azion.config.js.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
build | AzionBuild | Não | Como é feito o build do projeto. |
applications | AzionApplication[] | Não | As aplicações, com seus cache settings, regras e function instances. |
functions | AzionFunction[] | Não | As functions. |
connectors | AzionConnector[] | Não | Os connectors, do tipo http, storage ou live_ingest. |
storage | AzionBucket[] | Não | Os buckets do Object Storage e as pastas locais cujos arquivos vão para eles. |
firewall | AzionFirewall[] | Não | Os firewalls, com suas regras. |
networkList | AzionNetworkList[] | Não | As network lists, do tipo ip_cidr, asn ou countries. |
purge | AzionPurge[] | Não | As URLs, cache keys ou wildcards para purge. |
waf | AzionWaf[] | Não | As configurações do Web Application Firewall (WAF). |
workloads | AzionWorkload[] | Não | Os workloads que servem as aplicações em domínios. |
customPages | AzionCustomPage[] | Não | As páginas de erro personalizadas. |
kv | AzionKV[] | Não | Os namespaces do KV Store. |