Orbit
Edge Functions
Edge functions are small JavaScript handlers that run on Kapsule's edge network before a request reaches your project, so you can do redirects, header injection, A/B routing and bot filtering…
Ngā Mahi a te Tìpako
Ko ngā mahi a te tīpako he tohu JavaScript iti e rere ana i runga i te whatunga tīpako a Kapsule i mua i te tae mai o te karanga ki tō kaupapa, ka taea e koe te kawe tīaturi, whakauru pane, routing A/B me te tātari ira-tūmataiti kāore he haerenga ki tō āpata. Kei roto i tēnei aratohu te tuhi i tētahi, ngā āhuatanga whakauru-whakaputa e whakaae ana, te tutumatching huarahi, me pēhea e mahi tahi ai ngā mahi maha, te whakaputa, me tā te mea ka tupu mēna ka whakahoki he mahi.
Kei Hea Rātou e Noho Ana
Whakatūtuki i tō kaupapa i roto i Orbit me pēwhiri i te tapawhā Edge functions. E ono ana ia mahi ki te kaupapa, e tāpeakihia ana me tōna tohu ahuatanga: LIVE, PAUSED, NOT DEPLOYED rānei DEPLOY FAILED.

Te Hanganga Mahi
- Pēwhiri i New function.
- Whakakī i Name (kia 120 pūtakiroa).
- Whakakī i Path pattern, te tauira URL e tika ana mō tēnei mahi.
- Tīpako Trigger: Request (i mua o te putake), Response (i muri i te putake), rānei Both.
- Tīpako Environment scope: All environments, Production only, rānei Preview only.
- Tuhi i te kaiwhakahaere i Function body.
- Pēwhiri i Save, ka pēwhiri Deploy to edge.
Ko te request kīanga e mau tonu ana i roto i te tawhā, me te putake ka oti i te 64 KB.
Te Tuhi i te Kaiwhakahaere
Whakahoki he Response hei whakautu i te karanga i te tīpako. Kāore he whakahoki, rānei undefined, ki te tuku i te karanga ki tō kaupapa kāore he rerekē.
export default {
async fetch(request) {
const url = new URL(request.url)
// Redirect /old to /new
if (url.pathname === '/old') {
return new Response(null, {
status: 301,
headers: { Location: '/new' },
})
}
// Returning nothing passes through to the origin
},
}
Ko te āhuatanga mahi tohua he mahi nui hoki:
export default async function handler(request) {
// Add a security header to every response
const response = await fetch(request)
const headers = new Headers(response.headers)
headers.set('X-Frame-Options', 'DENY')
return new Response(response.body, { status: response.status, headers })
}
Ngā Āhuatanga Whakauru-Whakaputa e Whakaaetia Ana
| Āhuatanga | Tauira |
|---|---|
Taonga me he fetch ahuatanga | export default { async fetch(request) { ... } } |
Taonga me he pere fetch āhuatanga | export default { fetch: async (request) => { ... } } |
| Whakahōkinga mahi tohua | export default async function handler(request) { ... } |
| Tinana maori, kaore he kaupapa | Tuhia ngā tāpiringa tika, kāore he turiwha |
Anumea atu e whakamahi ana i export default, penei i export default class, ka kairangahia i te wa e pēwhiri ai koe Save, me te hapa e whakahua ana i ngā āhuatanga e rua hei whakamahi. Ka rere te whakamataotao i te wa o te tiaki, ina koa ka mohio koe i te whakaputa, kāore he mahi whakatika koa i te whakaputa.
Ngā Tauira Huarahi
Ko te Path pattern te whakatau mō te karanga e rere ai te mahi. Me tiimata me / me te ahea kia 2048 pūtakiroa. Ko * e tutupiri ana i te mahinga noa o ngā pūtakiroa me ? e tutupiri ana i te pūtakiroa kotahi. He tauira kāore he wildcard ka tutupiri i tērā huarahi tika me te katoa i raro.
| Tauira | E tutupiri ana |
|---|---|
/* | Ia huarahi |
/api/* | Anumea atu e tiimata ana me /api/ |
/blog/*/comments | Hei tauira /blog/my-post/comments |
/page | /page, me te katoa i raro /page/ |
Te request Taonga
Ko request he Fetch API Request paerewa. Ka taea e koe te pānui i te URL, te ahuatanga, ngā pane me te tinana:
export default {
async fetch(request) {
const url = new URL(request.url)
const cookie = request.headers.get('cookie') ?? ''
const ua = request.headers.get('user-agent') ?? ''
if (ua.includes('BadBot')) {
return new Response('Forbidden', { status: 403 })
}
},
}
Kāore e whakaaro he pane e tipu ana nā te mea kua kite koe i tētahi kaupapa. Pānuihia ngā pane e tino riro ana e tō mahi iho (tuhi iho rātou noa i te mahi, rānei whakahoki i roto i te whakautu pūtātara i te huarahi whakawhakaaro) i mua i te whakatau i tētahi. Ko te kaiwhakahaere e whakatau ana i te pane e kore nei e puta ana, ka riro hē i ia karanga.
Ngā Tauira Noa
Kawe Tīaturi Huarahi Tawhito
export default {
async fetch(request) {
const url = new URL(request.url)
const redirects = {
'/old-about': '/about',
'/old-contact': '/contact',
}
const dest = redirects[url.pathname]
if (dest) return Response.redirect(url.origin + dest, 301)
},
}
Mō te maha noa o ngā nekehanga huarahi-ki-huarahi tika, whakamahi i te miihini kawe tīaturi tūturu: e kore e hiahia ki te whakaaro me ka whakatakotoria i roto i Settings. Titiro Configuring Redirects and Rewrites.
Tāpiri i ngā Pane Haumaru
export default async function handler(request) {
const response = await fetch(request)
const headers = new Headers(response.headers)
headers.set('X-Frame-Options', 'DENY')
headers.set('X-Content-Type-Options', 'nosniff')
headers.set('Referrer-Policy', 'strict-origin-when-cross-origin')
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers,
})
}
Mō ngā ture pane tūturu e kore e hiahia ki te whakaaro. Ko Settings he waahanga pane whakautu me ngā taonga pikitanga tere mō HSTS, CSP, no-embed, no-sniff, rautaki kupu tohutoro me CORS.
A/B Routing
export default {
async fetch(request) {
const url = new URL(request.url)
const variant = Math.random() < 0.5 ? 'a' : 'b'
url.searchParams.set('variant', variant)
return fetch(url.toString(), request)
},
}
Te Āhuatanga Tūmomo Taiao
| Āhuatanga | E rere ana i runga |
|---|---|
| All environments | Whakaputa, whakatutuki me ia preview peka |
| Production only | Te taiao whakaputa |
| Preview only | Ia taiao kāore-whakaputa |
Whakatutakitaki i te mahi hou me Preview only, whakatūtuki me pēhea tōna āhuatanga i te preview peka, ka whakaohohia ki All environments. E rere ana he mahi tīpako i mua o ia karanga, ina koa ka he i roto i tētahi he he i ia whārangi.
Me Pēhea e Mahi Tahi ai Ngā Mahi Maha
Kua arotakea ngā mahi whakapahotia katoa o tō kaupapa i te raupapa i hangaia ai. Mō ia karanga, ka haere te tīpako i te rārangi me te rere i te mahi tuatahi e tutupiri ana te tauira huarahi me te āhuatanga e āta ki te taiao.
- Mēna ka whakahoki te mahi i te
Response, ka tonoa, ka mutu te arotake. - Mēna kaore he whakahoki, ka haere te arotake ki te mahi tutupiri a harikoa.
- Mēna kaore he mahi i whakahoki he
Response, ka haere te karanga ki tō kaupapa i te āhuatanga noa.
Ko tēnei te tikanga: he mahi whanui /* i hangaia i te tiimata ka whakamarara i tētahi whanui iti i hangaia ake nei, mēna ka whakahoki te mahi whanui i he Response. Hangaia te mahi ikeike tuatahi, rānei ka whakahoki te mahi whanui i te kaore mō ngā huarahi kāore ia e whakahaere.
Te Whakaputa
Pēwhiri i Deploy to edge. Ko te whakaputa ka whakahanga i te tahi rūrūter whakakotahi mō te katoa o te whatunga tīpako mai i te āhuatanga o nāianei o te pūtabase, ina koa whakaahoatia, mutu, whakarerekē rānei whakakore i te mahi katoa. Ka tae ake ngā rerekē i te roto harikoa i ētahi hēkona.
Ka mau ia rarangi mahi i te Deploy log e whakaatu ana i ngā hakinga o te whakaputa o muri, me te DEPLOY FAILED tohu me te hapa mēna kaore i angitu.
Pause ka tango i te mahi noa i te rūrūter kāore whakakore, he āhuatanga whakapoto rawa ki te whakahoki i te mahi e kino ana. Resume ka whakakore.
Mēna He Mahi ka Hinga
He ahuatanga i roto i te mahi ka hopu i te tīpako. Ka tuhi te hapa me te karanga ka haere ki tō kaupapa pēnei i te mahi ka whakahoki i te kaore.
Koinei te kupu haumaru, ehara i te punaha aroturuki. He mahi e hinga ana i ia karanga ka kore ake i ngā kanohi o ō manuhiri, me tō toka noa te āhuatanga me te mahi kaore e tipu ana. Mēna he mahi ka tīpako i te tohu o tōna whakatūtuki, whakatūpato i te hinga i mua o te routing.
Ngā Rohe
- Kia 20 mahi i te kaupapa. Ko te 21 ka kairangahia.
- Kia 64 KB putake mō ia mahi.
- Kia 120 pūtakiroa mō te ingoa, me 2048 pūtakiroa mō te tauira huarahi.
Te Āhuatanga Pānui
- Configuring Redirects and Rewrites, te āhuatanga kāore-whakaaro mō ngā ture huarahi
- Deploying Your Project
- Branch Preview Deployments in Orbit hei whakatutuki i te mahi i mua i te tae ki te whakaputa