# Como executar funções serverless na Azion

import DocButton from '~/components/webkit/DocButton.vue';
import Tabs from '~/components/tabs/Tabs'


[Functions](/pt-br/documentacao/produtos/build/applications/functions/) é um módulo da Azion Web Platform que permite que você programe e execute funções serverless, sem o uso de servidores.

<DocButton href="/pt-br/documentacao/produtos/build/applications/functions-instances/" label="Saiba mais sobre Functions para Applications" kind="secondary" size="medium" />

Para executar uma função, você deve:

- Criar sua própria função ou usar qualquer uma das que já estão disponíveis no [Azion Marketplace](https://console.azion.com/marketplace).
- Instanciar uma função em uma application.
- Definir critérios de ativação no [Rules Engine](/pt-br/documentacao/produtos/build/applications/rules-engine/).

---

## Crie uma nova function

Para criar uma function:

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. Escreva seu código.
5. Clique no botão **Save**.


:::tip
Consulte o guia [Como criar uma API com Functions e ChatGPT](/pt-br/documentacao/produtos/guias/edge-functions/api-builder/) para obter um exemplo de uma função que pode ser executada em sua aplicação.
:::

---

## Instancie uma function

Para demonstrar como instanciar e executar uma função em uma application, este guia usará a função pré-configurada **Azion - Hello World**. Para instanciar uma function em uma application:


1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Applications**.
2. Clique na application na qual deseja adicionar uma função.
3. Vá para a aba **Functions Instances**.
4. Clique em **+ Function Instance**.
5. Nomeie sua instância, por exemplo, `Hello World function`.
6. Selecione a função **Azion - Hello World**.
7. Clique no botão **Save**.

---

## Configure os critérios de ativação da função

1. Na mesma application, vá para a aba **Rules Engine**.
2. Clique em **+ Rule**.
3. Dê um nome à sua regra.
4. Selecione **Request Phase**.
5. Na seção **Criteria**, selecione:
    - If `${uri}` is equal `/hello-world`.
6. Na seção **Behaviors**, escolha **Run Function**.
7. Selecione a função **Hello World**.
8. Clique em **Save**. 

Aguarde alguns minutos para que a propagação seja concluída.

Para ver a função instanciada, acesse a aplicaçao usando seu domínio e o URI definido na regra, no formato `xxxxxxxxxxx.map.azionedge.net/hello-world`.

Agora você configurou uma function e a instanciou com sucesso em sua application.

---