Quickstarty

Quickstart: Edge Functions

Napisz, wdróż i wywołaj funkcję Deno.

Funkcje to serverless TypeScript (Deno) obok bazy.

Zmienne w przykładach: $HOSTBASE_TOKEN (token dostępu), $REF (ref projektu). SDK: @hostbase/management (TypeScript) i hostbase_management (Python), pełne API: /docs/api.

1. Ustaw sekret i wdroż

Sekrety są dostępne jako zmienne środowiskowe.

curl -X PUT https://host.ulewicz.space/api/v1/projects/$REF/secrets -H "Authorization: Bearer $HOSTBASE_TOKEN" -H "Content-Type: application/json" -d '{"secrets":{"GREETING":"hello"}}'
curl -X PUT https://host.ulewicz.space/api/v1/projects/$REF/functions/hello -H "Authorization: Bearer $HOSTBASE_TOKEN" -H "Content-Type: application/json" \
  -d '{"code":"Deno.serve(() => new Response(Deno.env.get(\"GREETING\")));"}'
await hb.setSecrets({ ref, body: { secrets: { GREETING: "hello" } } });
await hb.deployFunction({ ref, name: "hello", body: { code: 'Deno.serve(() => new Response(Deno.env.get("GREETING")));' } as never });
hb.set_secrets(ref=ref, body={"secrets": {"GREETING": "hello"}})
hb.deploy_function(ref=ref, name="hello", body={"code": 'Deno.serve(() => new Response(Deno.env.get("GREETING")));'})
hostbase secrets set GREETING=hello
hostbase functions deploy hello

2. Wywołaj

curl https://abcdefghijklmnopqrst.host.ulewicz.space/functions/v1/hello -H "Authorization: Bearer $ANON_KEY"
const { data } = await supabase.functions.invoke("hello");
supabase.functions.invoke("hello")

3. Logi i wersje

Rollback do poprzedniej wersji jednym wywołaniem.

curl "https://host.ulewicz.space/api/v1/projects/$REF/functions/hello/logs?lines=50" -H "Authorization: Bearer $HOSTBASE_TOKEN"
curl -X POST https://host.ulewicz.space/api/v1/projects/$REF/functions/hello/versions -H "Authorization: Bearer $HOSTBASE_TOKEN" -H "Content-Type: application/json" -d '{"rollback_to":1}'
await hb.getFunctionLogs({ ref, name: "hello", query: { lines: 50 } });
await hb.rollbackFunction({ ref, name: "hello", body: { rollback_to: 1 } });
hb.get_function_logs(ref=ref, name="hello", query={"lines": 50})
hb.rollback_function(ref=ref, name="hello", body={"rollback_to": 1})
hostbase functions logs hello

Dalej: /docs/edge-functions.