Como instanciar edge functions em sua aplicação
Instancie funções serverless diretamente dentro de sua edge application.
Este guia descreve como você pode instanciar a função Azion - Hello World, pré-configurada em sua conta. Você pode repetir este processo usando qualquer função já disponível no Azion Marketplace ou desenvolver sua própria função.
- Acesse o Azion Console > Edge Application.
- Clique na edge application que você deseja configurar.
- Ative o módulo Edge Functions para habilitar funções.
- Clique no botão Save.
- Vá para a aba Functions Instances.
- Clique em + Function Instance.
- Nomeie sua instância de função. Por exemplo:
Hello World function
. - Selecione a função Azion - Hello World.
- Clique no botão Save.
A página de funções agora lista a nova instância criada. No entanto, esta nova função ainda não está ativa em sua aplicação. Você precisa definir o que acionará a função em sua aplicação. Para invocar a função instanciada no URI xxxxxxxxxx.map.azionedge.net/hello-world
:
- Ainda na página do Edge Application, navegue até a aba Rules Engine.
- Clique no botão + Rule.
- Dê um nome para sua regra.
- Selecione Request Phase.
- Na seção Criteria, selecione a variável
${uri}
.
- Como operador de comparação, selecione is equal.
- Como argumento, adicione
/hello-world
. - Na seção Behaviors, selecione Run Function da lista de comportamentos.
- Selecione a função Hello World.
- Clique no botão Save.
Para ver sua função em execução, acesse sua aplicação usando seu domínio e o URI definido na regra, que está no formato xxxxxxxxx.map.azionedge.net/hello-world
.
- Execute a seguinte requisição
PATCH
em seu terminal, substituindo[TOKEN VALUE]
por seu personal token e a variável<edge_application_id>
por seu ID de edge application para ativar o módulo Edge Functions:
curl --request PATCH --url https://api.azion.com/v4/edge_application/applications/<edge_application_id> --header 'Accept: application/json' --header 'Authorization: Token [TOKEN VALUE]' --header 'Content-Type: application/json' --data '{"modules": { "edge_functions": { "enabled": true }}}'
- Você receberá uma resposta com o valor atualizado.
- Execute a seguinte requisição
GET
para recuperar oedge_function_id
da função Hello World:
curl --request GET --url https://api.azion.com/v4/edge_functions/functions --header 'Accept: application/json' --header 'Authorization: Token [TOKEN VALUE]'
- Você receberá uma resposta semelhante a esta:
{"count": 1,"results": [ { "id": <edge_function_id>, "name": "Minha Função", "last_editor": "your-email@example.com", "last_modified": "2025-08-14T16:37:54.966088Z", "product_version": "2.0", "active": true, "runtime": "azion_js", "execution_environment": "application", "code": "", "default_args": {}, "reference_count": 0, "version": "-", "vendor": null }]}
- Copie o valor
<edge_function_id>
. - Execute a seguinte requisição
POST
, substituindo o valor do ID da edge function pelo valor que você recebeu na resposta anterior:
curl --request POST --url https://api.azion.com/v4/edge_application/applications/<edge_application_id>/functions --header 'Accept: application/json' --header 'Authorization: Token [TOKEN VALUE]' --header 'Content-Type: application/json' --data '{"name": "Nome da Minha Instância","edge_function": <edge_function_id>,"active": true}'
- Você receberá uma resposta semelhante a esta:
{"state": "pending","data": { "id": <edge_function_instance_id>, "name": "Minha Instância de Função", "args": {}, "edge_function": 123456, "active": true, "last_editor": "your-email@example.com", "last_modified": "2025-08-14T16:41:56.699896Z"}
Chave | Descrição |
---|---|
edge_function | O ID da edge function. Este não é o mesmo que o ID da função instanciada, que é único para cada instância de função da aplicação. |
name | Nome da função instanciada. |
args | Definição dos argumentos necessários para a função. Algumas funções não necessitam de argumentos. |
id | ID da função instanciada. |
- Execute a seguinte requisição
POST
em seu terminal, substituindo[TOKEN VALUE]
por seu personal token, a variável<edge_application_id>
por seu ID de edge application, e a variável<edge_function_instance_id>
pelo ID da instância da função recebida na resposta anterior:
curl --request POST --url https://api.azion.com/v4/edge_application/applications/<edge_application_id>/request_rules --header 'Accept: application/json' --header 'Authorization: Token [TOKEN VALUE]' --header 'Content-Type: application/json' --data '{"name": "Executar Hello World","active": true,"criteria": [ [ { "conditional": "if", "variable": "${uri}", "operator": "is_equal", "argument": "/hello-world" } ]],"behaviors": [ { "type": "run_function", "attributes": { "value": <edge_function_instance_id> } }],"description": "Executar função em /hello-world"}'
- Você receberá uma resposta semelhante a esta, confirmando que sua função foi criada com sucesso:
{"state": "pending","data": { "id": <rule_id>, "name": "Executar Hello World", "active": true, "criteria": [ [ { "conditional": "if", "variable": "${uri}", "operator": "is_equal", "argument": "/hello-world" } ] ], "behaviors": [ { "type": "run_function", "attributes": { "value": <edge_function_instance_id> } } ], "description": "Executar função em /hello-world", "order": 0, "last_editor": "your-email@example.com", "last_modified": "2025-08-14T17:04:44.222534Z"}}
- Aguarde alguns minutos para que as alterações se propaguem.
Para ver sua função sendo executada, acesse sua aplicação usando seu domínio e o URI definido na regra, que está no formato xxxxxxxxx.map.azionedge.net/hello-world
.