Edge computing med Cloudflare Workers och Deno · Lektion

Tjänstebindningar och integrationer

Anslut Workers till andra Cloudflare-tjänster och externa API:er med Service Bindings

Lektion 3 av 410 steg

Tjänstebindningar och integrationer är en gratis lektion i Edge computing med Cloudflare Workers och Deno på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Edge computing med Cloudflare Workers och Deno, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Edge computing med Cloudflare Workers och Deno innehåller totalt 4 lektioner.

Introduktion till Service Bindings

Välkomna till Service Bindings! I den här lektionen får ni lära er hur Cloudflare Workers kan kommunicera direkt med varandra och med andra Cloudflare-tjänster.

Tänk på Service Bindings som säkra, interna anslutningar som ger era edge-applikationer kraftfull modularitet.

Varför använda Service Bindings?

Service Bindings erbjuder flera viktiga fördelar:

  • Modularitet: Dela upp komplexa Workers i mindre, återanvändbara komponenter.
  • Prestanda: Direkt intern kommunikation är snabbare än offentliga HTTP-begäranden.
  • Säkerhet: Håll interna API-anrop borta från det offentliga internet.
  • Abstraktion: Hantera andra Workers eller tjänster som lokala moduler.

Kommunikation mellan Workers

Ett av de vanligaste användningsområdena för Service Bindings är att låta en Worker anropa en annan. Det passar perfekt för att skapa mikrotjänster vid edge.

Ni kan anropa en ”mål-Worker” från en ”anropande Worker”, skicka begäranden och ta emot svar som om de vore delar av samma applikation.

Kod: Mål-Workern

Först skapar vi en enkel ”mål-Worker”. Denna Worker svarar med ett specifikt meddelande när den anropas.

Spara detta som target-worker/src/index.js:

export default {
  async fetch(request, env, ctx) {
    return new Response("Hello from the Target Worker!", {
      status: 200,
      headers: { 'Content-Type': 'text/plain' }
    });
  },
};

Kod: Den anropande Workern

Nu skapar vi en ”anropande” Worker som använder en bindning för att anropa vår ”mål-Worker”. Observera hur env.TARGET_WORKER.fetch(request) används.

Spara detta som invoking-worker/src/index.js:

export default {
  async fetch(request, env, ctx) {
    // 'TARGET_WORKER' is the binding name defined in wrangler.toml
    const response = await env.TARGET_WORKER.fetch(request);
    const text = await response.text();
    return new Response(`Invoker received: ${text}`, {
      status: 200,
      headers: { 'Content-Type': 'text/plain' }
    });
  },
};

Konfigurera Worker-bindningar

För att ansluta den ”anropande” Workern till ”mål-Workern” behöver ni lägga till en post för service_binding i filen wrangler.toml för er anropande Worker.

Detta anger för Cloudflare vilket Worker-projekt som ska anslutas och vilket namn (till exempel TARGET_WORKER) som ska användas i koden.

# In the invoking-worker's wrangler.toml
name = "invoking-worker"
main = "src/index.js"
compatibility_date = "2023-12-01"

[[service_bindings]]
name = "TARGET_WORKER"
service = "target-worker" # Name of the target Worker project

Se till att båda Workers har distribuerats till Cloudflare.

Bindningar till Cloudflare-tjänster

Service Bindings är inte begränsade till Workers! Ni kan också binda er Worker direkt till andra Cloudflare-tjänster, till exempel KV Namespaces, R2-buckets, D1-databaser och Durable Objects.

Det ger er Worker direkt, säker och effektiv åtkomst till dessa resurser via env-objektet.

Kod: Bindning till KV Namespace

Så här konfigurerar ni en bindning till ett KV Namespace i wrangler.toml:

# In your Worker's wrangler.toml
name = "my-worker"
main = "src/index.js"
compatibility_date = "2023-12-01"

[[kv_namespaces]]
binding = "MY_KV" # The variable name in your Worker
id = "YOUR_KV_NAMESPACE_ID" # Replace with your actual KV ID

Kom sedan åt det i er Workers kod:

export default {
  async fetch(request, env, ctx) {
    // 'MY_KV' is the binding name from wrangler.toml
    await env.MY_KV.put("greeting", "Hello from KV!");
    const message = await env.MY_KV.get("greeting");
    return new Response(`KV says: ${message}`, {
      status: 200,
      headers: { 'Content-Type': 'text/plain' }
    });
  },
};

Testa era kunskaper!

Välj det bästa svaret.

Sammanfattning: bindningar och integrationer

Ni har lärt er om Cloudflare Worker Service Bindings!

  • De erbjuder ett kraftfullt sätt för Workers att kommunicera direkt med andra Workers eller Cloudflare-tjänster.
  • Fördelarna omfattar modularitet, prestanda och säkerhet.
  • Ni konfigurerar bindningar i filen wrangler.toml.
  • De möjliggör komplexa arkitekturer där Workers fungerar som byggblock.

Fortsätt utforska hur dessa bindningar kan förenkla er edge-utveckling!

Gratis att börja

Lär dig Edge computing med Cloudflare Workers och Deno med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
47

Vanliga frågor

Är lektionen ”Tjänstebindningar och integrationer” gratis?

Ja – hela texten till ”Tjänstebindningar och integrationer” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Edge computing med Cloudflare Workers och Deno, kan Ni uppgradera till CoddyKit PRO. Kursen i Edge computing med Cloudflare Workers och Deno innehåller totalt 4 lektioner.

Vad lär jag mig i ”Tjänstebindningar och integrationer”?

Anslut Workers till andra Cloudflare-tjänster och externa API:er med Service Bindings Ni övar på Edge computing med Cloudflare Workers och Deno med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Edge computing med Cloudflare Workers och Deno?

Du behöver inga förkunskaper. Utbildningen i Edge computing med Cloudflare Workers och Deno på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Tjänstebindningar och integrationer”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Edge computing med Cloudflare Workers och Deno-lektionen?

Ja. Varje Edge computing med Cloudflare Workers och Deno-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. WebSockets och realtid
  2. Köer och asynkrona uppgifter
  3. Tjänstebindningar och integrationer
  4. Cron Triggers och schemalagda Workers
← Tillbaka till Edge computing med Cloudflare Workers och Deno