Arquivo azion.config.js

O arquivo azion.config.js é um arquivo de configuração criado durante o processo de build da aplicação, com base no preset selecionado, e serve como a fonte de verdade para a configuração. Cada preset fornece um conjunto de configurações padrão, que podem ser substituídas pelo usuário. Se o arquivo for excluído, a configuração padrão será recriada na próxima vez que o processo de build for disparado.

As configurações definidas por este arquivo incluem:

  • Origins
  • Cache Settings
  • Rules Engine
  • Network List

As tabelas a seguir explicam as propriedades deste arquivo de configuração.


PropriedadeTipoValores esperadosMensagem de erro
namestringO campo ‘name’ deve ser uma string
typestringsingle_origin (default)
load_balancer
live_ingest**
object_storage
O campo ‘type’ deve ser uma string
bucketstring, nullO campo ‘bucket’ deve ser uma string ou null
prefixstring, nullO campo ‘prefix’ deve ser uma string ou null
addressesarrayO campo ‘address’ deve ser uma string
hostHeaderstringO campo ‘hostHeader’ deve ser uma string
additionalPropertiesbooleanNão são permitidas propriedades adicionais nos objetos de item de origem

PropriedadeTipoValores esperadosMensagem de erro
namestringO campo ‘name’ deve ser uma string
stalebooleanO campo ‘stale’ deve ser um boolean
queryStringSortbooleanO campo ‘queryStringSort’ deve ser um boolean
methods -> postbooleanO campo ‘post’ deve ser um boolean
methods -> optionsbooleanO campo ‘options’ deve ser um boolean
methods -> additionalPropertiesbooleanNão são permitidas propriedades adicionais no objeto ‘methods’
browser -> maxAgeSecondsnúmero OU string (expressão matemática)0 ≤ valor ≥ 31536000O campo ‘maxAgeSeconds’ deve ser um número ou uma expressão matemática válida
browser -> additionalPropertiesbooleanNão são permitidas propriedades adicionais no objeto ‘browser’
browser -> requiredarrayO campo ‘maxAgeSeconds’ é obrigatório no objeto ‘browser’
edge -> maxAgeSecondsnúmero OU string (uma expressão matemática)60 ≤ valor ≥ 31536000O campo ‘maxAgeSeconds’ deve ser um número ou uma expressão matemática válida
edge -> additionalPropertiesbooleanNão são permitidas propriedades adicionais no objeto ‘edge’
edge -> requiredarrayO campo ‘maxAgeSeconds’ é obrigatório no objeto ‘edge’

PropriedadeTipoMensagem de erro
requestobjectObjecto contendo as propriedades das regras de requisição
namestringO campo ‘name’ deve ser uma string
matchstringO campo ‘match’ deve ser uma string
setOrigin -> namestringO campo ‘name’ deve ser uma string
setOrigin -> typestringO campo ‘type’ deve ser uma string
setOrigin -> additionalPropertiesbooleanNão são permitidas propriedades adicionais no objeto ‘setOrigin’
setOrigin -> requiredarrayO campo ‘name or type’ é obrigatório no objeto ‘setOrigin’
rewrite -> matchstring, nullO campo ‘match’ deve ser uma string ou null
rewrite -> setfunctionO campo ‘set’ deve ser uma função
rewrite -> additionalPropertiesbooleanNão são permitidas propriedades adicionais no objeto ‘rewrite’
rewrite -> requiredarrayO campo ‘set’ é obrigatório no objeto ‘rewrite’
setHeadersstring, nullO campo ‘setHeaders’ deve ser uma string ou null
forwardCookiesboolean, nullO campo ‘forwardCookies’ deve ser um boolean ou null
setCookiestring, nullO campo ‘setCookie’ deve ser uma string ou null
deliverboolean, nullO campo ‘deliver’ deve ser um boolean ou null
runFunction -> pathstringO campo ‘path’ deve ser uma string
runFunction -> namestring, nullO campo ‘name’ pode ser uma string ou null
runFunction -> additionalPropertiesbooleanNão são permitidas propriedades adicionais no objeto ‘runFunction’
runFunction -> requiredarrayO campo ‘path’ é obrigatório no objeto ‘runFunction’
cachestring OU objectO campo ‘cache’ deve ser uma string ou um objeto com propriedades especificadas
cache -> name (quando cache é um objeto)stringO campo ‘name’ deve ser uma string
cache -> browser_cache_settings_maximum_ttl (quando cache é um objeto)number, nullO campo ‘browser_cache_settings_maximum_ttl’ deve ser um number ou null
cache -> cdn_cache_settings_maximum_ttl (quando cache é um objeto)number, nullO campo ‘cdn_cache_settings_maximum_ttl’ deve ser um number ou null
cache -> additionalProperties (quando cache é um objeto)booleanNão são permitidas propriedades adicionais no objeto cache
cache -> required (quando cache é um objeto)arrayO campo ‘name’ é obrigatório no objeto cache

PropriedadeTipoMensagem de erro
idnúmeroO campo ‘id’ deve ser um número
listTypestringO campo ‘listType’ deve ser uma string
listContentarrayO campo ‘listContent’ deve ser uma array de strings

Para mais informações, acesse o esquema do azion.config.js no repositório Vulcan ou especificação da API da Azion.


module.exports = {
origin: [
{
name: 'myneworigin',
type: 'object_storage',
bucket: 'blue-courage',
prefix: '0101010101001',
},
],
cache: [
{
name: 'mycache',
stale: false,
queryStringSort: false,
methods: {
post: false,
options: false,
},
browser: {
maxAgeSeconds: 1000 * 5,
},
edge: {
maxAgeSeconds: 1000,
},
},
],
rules: {
request: [
{
name: 'name1',
match: '/rewrite',
cache: 'mycache',
rewrite: {
match: '^(./)([^/])$',
set: (captured) => `/new/${captured[1]}`, // /original/image.jpg -> /new/image.jpg
},
setCookie: '',
setHeaders: '',
forwardCookies: false,
},
{
name: 'name1qwqqeweqwe',
match: '/rewrite',
cache: 'mycache',
rewrite: {
match: '^(./)([^/])$',
set: (captured) => `/new/${captured[1]}`, // /original/image.jpg -> /new/image.jpg
},
setCookie: '',
setHeaders: '',
forwardCookies: false,
},
{
name: 'name2',
match: '/^/_statics/;', // start with /_statics
setOrigin: {
name: 'myneworigin',
type: 'object_storage',
},
deliver: true,
},
{
name: 'name3',
match: '/^compute/;', // start with /compute
runFunction: {
path: '.edge/worker.js',
},
},
],
},
};