1 of 20
2 of 20
3 of 20
4 of 20
5 of 20
6 of 20
7 of 20
8 of 20
9 of 20
10 of 20
11 of 20
12 of 20
13 of 20
14 of 20
15 of 20
16 of 20
17 of 20
18 of 20
19 of 20
20 of 20

doc

Como criar uma edge function usando WebAssembly na plataforma de Edge da Azion

Saiba mais sobre o processo necessário para a criação de uma edge function que utiliza uma função originada de um arquivo WebAssembly.

  1. No Real-Time Manager RTM, no canto superior esquerdo, selecione Edge Functions na seção Edge Libraries.
  2. Clique em Add a Function.
  3. Escolha um nome para sua função.
  4. Em Language, selecione JavaScript.
  5. Copie e cole o seguinte código de exemplo no bloco de código:
    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:

    (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)))

Nota: um código WAT é a representação textual do formato binário do wasm, usado para permitir que o WebAssembly seja lido e editado por humanos.

  1. Clique no botão Save

Agora, a função está pronta para ser instanciada em uma edge application. Veja como instanciar e executar as funções em sua edge application.

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

    incrementing 0 we have 1

Leia também


Não encontrou o que procurava? Abra um ticket.