Hur att Använda CloudFlare Arbetstagare att Köra JavaScript På Kanten

0
177

Den närmare kanten att du kan köra kod eller data tillbaka till en besökare, desto snabbare användarupplevelse kommer att bli. Med detta i åtanke, CloudFlare släppt en produkt som heter CloudFlare Arbetstagare, som gör det möjligt att köra JavaScript-kod på edge-servrar. Detta gör att du kan avlyssna en begäran tillmötesgå denna begäran och returnera resultatet alla på kanten, med potential att aldrig röra vid ditt origin server.

Detta öppnar upp en värld av möjligheter, inte bara när det gäller prestanda, men unika applikationer som kör nästan helt och hållet på kanten. Ta fördel av CloudFlare massiva infrastruktur, kapacitet och kanten platser innebär att denna typ av produkt är en av ett slag.

Naturligtvis, med alla nya lösningar som denna, kan det vara svårt att komma upp med potentiella tillämpningar. Även om det finns många, vad är några praktiska användningsområden? I denna artikel kommer vi att utforska en potentiell användning fallet, att utföra omdirigeringar direkt på kanten.

Konfigurera CloudFlare Arbetstagare

Antar att du redan har en domän som är representerade genom CloudFlare, vi kan göra det möjligt för arbetstagare och börja testa vår kod, även innan vi använda i produktionen. När du loggar in på CloudFlare Instrumentpanelen, kommer du att märka en ikon för Arbetstagare. Vad som är mycket bekvämt om denna miljö är att CloudFlare ger dig en utvecklingsmiljö för att testa ut allt innan du distribuerar dina arbetare till ditt live-sidan.

Klicka på “Skapa en Arbetare” för att skapa en miljö för utveckling pekade mot en slumpmässigt genererad arbetstagare sub-domän för att möjliggöra testning.

Låt oss ta en titt på utveckling av miljön för att förstå hur detta kan hjälpa oss. Det finns tre huvudsakliga delar. På vänster sida har vi en kod-editorn och på den till höger har vi två visningar. En är HTTP-vy där vi kan konstruera specifika önskemål att våra Arbetare och se svaret, och den andra är fliken Förhandsgranska där vi kan se hur sidan skulle se ut.

Nu har vi en kod miljö ställa upp, låt oss skapa en enkel redirect som vi kan bygga på senare.

Utveckla Omdirigera Kod

Det är en boilerplate-kod som kommer att fungera som en bra start på vår omdirigera kod. I det första avsnittet, addEventListener är det som först fångar inkommande begäran. Att begäran skickas sedan till handleRequest funktion för bearbetning.

addEventListener (“hämta”, event => {
händelsen.respondWith(handleRequest(händelse.begäran))
})

/**
* Svara på begäran
* @param {Begäran} begäran
*/
asynkron funktion handleRequest(begäran) {
// Redirect logik att gå här
}

Den centrala tanken är att vi kommer att läsa den sökväg för inkommande begäran URL och bestämma var du vill omdirigera. Genom att använda URL-typ, kan vi lätt karta våra inkommande sökväg till en plats. I det här exemplet nedan använder vi oss av en switch-sats för att ställa in det läge som bygger på väg och återvända en 301 permanent omdirigering.

addEventListener (“hämta”, async event => {
händelsen.respondWith(handleRequest(händelse.begäran))
})

asynkron funktion handleRequest(begäran) {
låt requestURL = ny URL(begäran.url -)
låt path = requestURL.sökväg.split(‘/redirect’)[1]

switch (väg) {
‘/test1’ {
låt location = ‘https://mysite.com/newlocation1’
bryta
}
‘/test2’ {
låt location = ‘https://mysite.com/newlocation2’
bryta
}
}

if (location) {
return Svar.omdirigera(plats, 301)
}

avkastning hämta(begäran)
}

Öka Redirect Script

Detta fungerar bra, men det är en mer effektiv och lättare att hantera vägen för kartläggning av omdirigeringar. Genom att använda JavaScript Karta konstruera, kan vi skapa en enkel referens lista av omdirigeringar. Låt oss flytta vår omdirigeringar till en Karta konstruera och refaktorera vår kod för att få det att fungera lite bättre.

const redirectMap = new Kort([
[‘/test1’, ‘https://mysite.com/newlocation1’],
[‘/test2’, ‘https://mysite.com/newlocation2’],
[‘/test3’, ‘https://mysite.com/newlocation3’],
[‘/test4’, ‘https://mysite.com/newlocation4’],
])

addEventListener (“hämta”, async event => {
händelsen.respondWith(handleRequest(händelse.begäran))
})

asynkron funktion handleRequest(begäran) {
låt requestURL = ny URL(begäran.url -)
låt path = requestURL.sökväg.split(‘/redirect’)[1]
låt läge = redirectMap.get(sökväg)

if (location) {
return Svar.omdirigera(plats, 301)
}

avkastning hämta(begäran)
}

Utbyggnaden

Nu när vårt manus är funktionella, vi behöver detta kort till en domän. Efter att ha klickat på Spara och Distribuera vi behöver för att navigera tillbaka till vår dashboard och hitta den domän som vi är kartläggning av detta manus också.

Välj den domän vi vill tillämpa denna arbetstagaren, sedan navigera till “Arbetare” – fliken. Välj “Lägg till i Rutt” – knappen, och du kan definiera manus och rutt. Vad detta betyder också att du kan skapa flera skript och vägar som de gäller.

Under “Rutt” inlägg, vi behöver för att definiera vart länken går. Mest troligt är det att vi skulle ställa upp en rutt till exempel:

*.mysite.com/*

Ovanstående rutt matchar alla Webbadresser och system för webbplatsen. Eftersom vi letar för den som slutar vägen, vi kommer att titta på varje fråga, som kommer igenom och testa för det. Slutligen, vi kommer att välja de Arbetare som vi har skapat för att distribuera denna zon.

Något att hålla i åtanke är att tilldela en CloudFlare Arbetstagare till ett skript och rutt kommer att göra att arbetstagaren omedelbart träda i kraft. Detta innebär också att ändringar, fel och alla, ta effekt direkt liksom.

Framtida Möjligheter

CloudFlare har gjort flera andra verktyg och möjligheter som finns med eller integrera CloudFlare Arbetstagare. Det är en key-value store som gör det möjligt för så småningom konsekvent data lagring, åtkomlig av någon CloudFlare Arbetstagare på någon kant.

Med hjälp av Wrangler, ett kommandoradsverktyg, du kan även tillhandahålla en hel statisk webbplats med filer som är lagrade i KV Store och serveras med CloudFlare Arbetstagare skript. Det finns många möjligheter som detta ger upphov till och vad som kan skapas med hjälp av CloudFlare Arbetstagare.

Slutsats

CloudFlare Arbetstagare är ett mycket kraftfullt verktyg som gör det möjligt för en unik förmåga att snabbt agera på kanten önskemål. Genom att använda denna för att flytta vår normala programlogiken till kant, inte bara vi minskar svarstiden, men vi undviker även att beskatta vårt ursprung servrar.