# Crie uma function com WebAssembly na Azion

Saiba mais sobre o processo necessário para a criação de uma [function](/pt-br/documentacao/produtos/build/applications/functions/) que utiliza uma função originada de um arquivo [WebAssembly](https://webassembly.org/getting-started/developers-guide/).

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Functions**.
2. Clique em **+ Function**.
3. Escolha um nome para sua função.
4. Selecione a aba **Code**.
5. Copie e cole o seguinte código de exemplo no bloco de código:

```js
    async function handleRequest(request) {
      // You can either retrieve your .wasm file through fetch, for instance :
      // let wasmResponse = await fetch("http://somedomain/yourfile.wasm")
      // or embed the binary in the code, as shown below.
      const wasmCode = new Uint8Array([
        0, 97, 115, 109, 1, 0, 0, 0, 1, 6, 1, 96, 1, 127, 1, 127, 3, 2, 1, 0, 7, 13, 1, 9, 105, 110, 99, 114, 101,
        109, 101, 110, 116, 0, 0, 10, 9, 1, 7, 0, 32, 0, 65, 1, 106, 11,
      ]);

      const wasmModule = new WebAssembly.Module(wasmCode);
      const wasmInstance = new WebAssembly.Instance(wasmModule);
      const increment = wasmInstance.exports.increment;
      let value = 0;

      if (request.headers.has("value")) {
        let number = request.headers.get("value");
        if (!isNaN(number)) {
          value = parseInt(number);
        }
      }
      let incremented = increment(value);
      return new Response(
        "incrementing " + value + " we have " + incremented
      );
    }
    addEventListener("fetch", (event) => {
      event.respondWith(handleRequest(event.request));
    });
```

A constante `wasmCode` é a representação binária do seguinte [código WAT](https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format):

```
    (module
    (type (;0;) (func (param i32) (result i32)))
    (func (;0;) (type 0) (param i32) (result i32)
      local.get 0
      i32.const 1
      i32.add)
    (export “increment” (func 0)))
```

:::note
Um [código WAT](https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format) é a representação textual do formato binário do wasm, usado para permitir que o WebAssembly seja lido e editado por humanos.
:::

6. Clique no botão **Save**

Agora, a função está pronta para ser instanciada em uma application. Veja como [instanciar e executar as funções em sua application](/pt-br/documentacao/produtos/build/applications/functions-instances/).

A saída esperada da função recém-criada é semelhante a:

```js
    incrementing 0 we have 1
```

---