# Utilizar args

Leia um valor dos Args da instância de função em vez de fixá-lo no código da função. Use esse padrão quando o mesmo código é executado em várias instâncias e apenas alguns valores mudam entre elas, como um identificador, uma feature flag ou um hostname de destino.

```js
  async function handleRequest(request, v) {
          return new Response(v, {
              headers: new Headers([
                  ["X-Custom-Header", "something defined on JS"],
              ]),
              status: 200,
          });
      }
      addEventListener("fetch", (event) => {
          event.respondWith(handleRequest(event.request, event.args.value));
      });
```

Os Args definidos na instância de função que executa este código:

```js
{
    "value": "hello_world"
}
```

## Como funciona

O handler do evento `fetch` lê `event.args.value` e o passa para `handleRequest`, que retorna esse valor no corpo de um novo `Response`, junto com um header personalizado definido por `new Headers([...])` e um `status: 200` explícito. A chave `value` vem do objeto JSON acima, então alterar esse objeto altera o que a função retorna.

Os Args não fazem parte do código. Você os define na [instância de função](/pt-br/documentacao/plataforma/applications/functions-instances/) que vincula a função a uma aplicação ou a um firewall, e é por isso que a mesma função pode se comportar de forma diferente em cada instância sem ser editada nem passar por um novo deploy. [Como funciona](/pt-br/documentacao/plataforma/functions/como-funciona/) cobre o restante da cadeia, da função à instância e à regra do Rules Engine que a executa.

## Recursos relacionados

- [Exemplos em JavaScript](/pt-br/documentacao/plataforma/functions/javascript-exemplos.md): Consulte os outros exemplos prontos para uso que você pode copiar para uma função.
- [Functions Instances](/pt-br/documentacao/plataforma/applications/functions-instances.md): Crie a instância que carrega os Args que esta função lê.
- [FetchEvent](/pt-br/documentacao/devtools/runtime/api-reference/fetch-event.md): Referência do evento `fetch` que expõe `event.args`.
- [Limites de Functions](/pt-br/documentacao/plataforma/functions/limites.md): Os tetos dentro dos quais uma única invocação desta função roda, e os que variam conforme o plano.
- [A função falha na instanciação](/pt-br/documentacao/plataforma/functions/solucao-de-problemas.md#a-funcao-falha-na-instanciacao): Como um objeto Args acima do teto aparece de fora.
- [Args e variáveis de ambiente](/pt-br/documentacao/plataforma/functions/boas-praticas.md#a-divisao-entre-args-e-variaveis-de-ambiente): Por que chaves de API, credenciais e tokens pertencem a uma variável de ambiente, e não aos Args.
