O módulo Config fornece configuração e validação abrangentes para a Plataforma Azion. Ele suporta applications, workloads, connectors, functions, storage, regras de firewall, configurações WAF, listas de rede, páginas personalizadas e operações de purge.

Saiba mais sobre as Azion Libraries

Uso

Você pode configurar sua aplicação Azion de duas formas:

1. Usando JSDoc para informações de tipo:

/** @type {import('azion').AzionConfig} */
const config = {...}
export default config;

2. Usando a função defineConfig:

import { defineConfig } from 'azion/config';
const config = defineConfig({
build: {
entry: './src/index.js',
preset: 'javascript',
},
// ... outras configurações
});
export default config;

Funções

defineConfig

Configura e valida as opções para Applications Azion.

Parâmetros:

ParâmetroTipoDescrição
configAzionConfigO objeto de configuração para a Application Azion.

Retorno:

Tipo de RetornoDescrição
AzionConfigO objeto de configuração validado.

Exemplo:

import { defineConfig } from 'azion/config';
const config = defineConfig({
build: {
entry: './src/index.js',
preset: 'javascript',
bundler: 'esbuild',
},
applications: [
{
name: 'my-app',
active: true,
cache: [
{
name: 'my-cache',
browser: { maxAgeSeconds: 3600 },
edge: { maxAgeSeconds: 7200 },
},
],
},
],
storage: [
{
name: 'my-storage',
workloadsAccess: 'read_write',
dir: './storage',
prefix: 'app-data',
},
],
});
export default config;

processConfig

Processa o objeto de configuração e retorna um manifesto.

Parâmetros:

ParâmetroTipoDescrição
configAzionConfigO objeto de configuração.

Retorno:

Tipo de RetornoDescrição
objectO manifesto processado.

Exemplo:

import { AzionConfig, processConfig } from 'azion';
const config: AzionConfig = {...};
const manifest = processConfig(config);
console.log(manifest);

convertJsonConfigToObject

Converte uma string de configuração JSON para um objeto AzionConfig.

Parâmetros:

ParâmetroTipoDescrição
configstringA string de configuração JSON.

Retorno:

Tipo de RetornoDescrição
AzionConfigO objeto de configuração.

Exemplo:

import { convertJsonConfigToObject } from 'azion';
const manifestJson = {
workloads: [
{
name: 'my-workload',
active: true,
domains: ['example.com'],
},
],
};
const config = convertJsonConfigToObject(JSON.stringify(manifestJson));
console.log(config);

Seções de configuração

O objeto AzionConfig suporta as seguintes seções:

SeçãoDescrição
buildConfiguração de build (entry, preset, bundler).
applicationsLista de applications com cache, regras e instâncias de function.
workloadsConfigurações de workload para gerenciamento de domínios.
connectorsConnectors HTTP, storage ou live ingest.
functionsConfigurações de functions.
storageConfigurações de buckets de storage.
firewallRegras e configurações de firewall.
wafConfigurações de Web Application Firewall.
networkListListas de rede (IP, ASN, países).
customPagesConfigurações de páginas de erro personalizadas.
purgeURLs ou cache keys para purge.
kvConfigurações de armazenamento Key-Value.

Tipos

AzionConfig

O objeto de configuração principal.

PropriedadeTipoDescrição
buildAzionBuild (opcional)Configuração de build.
applicationsAzionApplication[] (opcional)Lista de applications.
workloadsAzionWorkload[] (opcional)Lista de workloads.
connectorsAzionConnector[] (opcional)Lista de connectors.
functionsAzionFunction[] (opcional)Lista de functions.
storageAzionStorage[] (opcional)Lista de configurações de storage.
firewallAzionFirewall[] (opcional)Lista de configurações de firewall.
wafAzionWaf[] (opcional)Lista de configurações WAF.
networkListAzionNetworkList[] (opcional)Lista de listas de rede.
customPagesAzionCustomPages[] (opcional)Lista de páginas personalizadas.
purgeAzionPurge[] (opcional)Lista de operações de purge.
kvAzionKV[] (opcional)Lista de configurações KV.

AzionBuild

Opções de configuração de build.

PropriedadeTipoDescrição
entrystring | string[] | Record<string, string> (opcional)Arquivo(s) de entrada.
presetstring | AzionBuildPreset (opcional)Preset de build.
bundler'esbuild' | 'webpack' (opcional)Bundler a usar. Padrão: 'esbuild'.
polyfillsboolean (opcional)Incluir polyfills.
extend(context: T) => T (opcional)Estender configuração do bundler.
memoryFSobject (opcional)Configuração de sistema de arquivos em memória.

AzionApplication

Configuração de application.

PropriedadeTipoDescrição
namestringNome da application (1-250 caracteres).
activeboolean (opcional)Se está ativa. Padrão: true.
debugboolean (opcional)Habilitar modo debug. Padrão: false.
edgeCacheEnabledboolean (opcional)Habilitar edge cache. Padrão: true.
functionsEnabledboolean (opcional)Habilitar functions. Padrão: false.
applicationAcceleratorEnabledboolean (opcional)Habilitar acelerador. Padrão: false.
imageProcessorEnabledboolean (opcional)Habilitar processador de imagem. Padrão: false.
cacheAzionCache[] (opcional)Configurações de cache.
rulesAzionRules (opcional)Regras de request/response.
functionsInstancesFunctionInstance[] (opcional)Instâncias de function.

AzionWorkload

Configuração de workload para gerenciamento de domínios.

PropriedadeTipoDescrição
namestringNome do workload (1-100 caracteres).
activeboolean (opcional)Se está ativo. Padrão: true.
infrastructure1 | 2 (opcional)Tipo de infraestrutura.
domainsstring[]Lista de domínios.
workloadDomainAllowAccessboolean (opcional)Permitir acesso ao domínio. Padrão: true.
tlsTLSConfig (opcional)Configuração TLS.
protocolsProtocolConfig (opcional)Configuração de protocolo.
mtlsMTLSConfig (opcional)Configuração de TLS mútuo.
deploymentsDeployment[]Lista de deployments.

AzionConnector

Configuração de connector.

PropriedadeTipoDescrição
namestringNome do connector (1-255 caracteres).
activeboolean (opcional)Se está ativo. Padrão: true.
type'http' | 'storage' | 'live_ingest'Tipo de connector.
attributesConnectorAttributesAtributos específicos do connector.

AzionFunction

Configuração de function.

PropriedadeTipoDescrição
namestringNome da function (1-250 caracteres).
pathstringCaminho para o arquivo da function.
runtime'azion_js' (opcional)Runtime. Padrão: 'azion_js'.
defaultArgsobject (opcional)Argumentos padrão.
executionEnvironment'application' | 'firewall' (opcional)Ambiente de execução.
activeboolean (opcional)Se está ativa. Padrão: true.
bindingsFunctionBindings (opcional)Bindings da function.

AzionStorage

Configuração de storage.

PropriedadeTipoDescrição
namestringNome do storage (6-63 caracteres).
dirstringCaminho do diretório local.
workloadsAccess'read_only' | 'read_write' | 'restricted' (opcional)Permissões de acesso.
prefixstringPrefixo do storage.

AzionCache

Configuração de cache.

PropriedadeTipoDescrição
namestringNome do cache (1-250 caracteres).
staleboolean (opcional)Permitir conteúdo stale.
queryStringSortboolean (opcional)Ordenar parâmetros de query string.
methods{ post?: boolean; options?: boolean } (opcional)Métodos HTTP para cache.
browser{ maxAgeSeconds: number | string } (opcional)Configurações de cache do browser.
edge{ maxAgeSeconds: number | string } (opcional)Configurações de cache edge.
cacheByCookieobject (opcional)Configurações de cache por cookie.
cacheByQueryStringobject (opcional)Configurações de cache por query string.
tieredCacheobject (opcional)Configurações de tiered cache.

AzionFirewall

Configuração de firewall.

PropriedadeTipoDescrição
namestringNome do firewall.
activeboolean (opcional)Se está ativo.
functionsboolean (opcional)Habilitar functions.
networkProtectionboolean (opcional)Habilitar proteção de rede.
wafboolean (opcional)Habilitar WAF.
rulesAzionFirewallRule[] (opcional)Regras de firewall.

AzionWaf

Configuração WAF.

PropriedadeTipoDescrição
namestringNome do WAF (1-250 caracteres).
productVersionstring (opcional)Versão do produto. Padrão: '1.0'.
engineSettingsWafEngineSettingsConfiguração do engine WAF.

AzionNetworkList

Configuração de lista de rede.

PropriedadeTipoDescrição
namestringNome da lista de rede (1-250 caracteres).
type'ip_cidr' | 'asn' | 'countries'Tipo da lista.
itemsstring[]Itens da lista (1-20000).
activeboolean (opcional)Se está ativa. Padrão: true.

AzionPurge

Configuração de purge.

PropriedadeTipoDescrição
type'url' | 'cachekey' | 'wildcard'Tipo de purge.
itemsstring[]URLs ou padrões para purge.
layer'cache' | 'tiered_cache' (opcional)Camada de cache.

AzionKV

Configuração de armazenamento KV.

PropriedadeTipoDescrição
namestringNome do armazenamento KV (1-255 caracteres).