Managed Component To Cloudflare Worker provides an easy way for using custom Managed Components with Cloudflare Zaraz, by deploying them as a Cloudflare Worker. Deployed Managed Components can be configured as Tools within Cloudflare Zaraz from the "Add new Tool" page.
💡 Prerequisite: To deploy a new Cloudflare Worker you need to first login with using
npx wrangler login
Your Managed Component should be bundled before trying to deploy it.
npx managed-component-to-cloudflare-worker /path/to/managed/component.js component-name
Pass the path to your custom wrangler.toml file as an optional third argument. Passed in component name will override the name in the custom wrangler.toml file. Assumes that a KV binding is configured in the custom wrangler.toml file bound to KV if required by the component.
npx managed-component-to-cloudflare-worker /path/to/managed/component.js component-name /path/to/wrangler.toml
This method gives you more flexibility but requires you to be familiar with wrangler and Cloudflare Workers in general.
-
Clone this repository
-
Copy your Managed Component files to
./src(it's recommended to create a new directory within./srcif you're not using an already bundled Managed Component) -
Import your Managed Component in index.ts by replacing the line
import component from './component.js'with yourimportcommand -
Edit wrangler.toml if you need to change the Worker name or if you're using a more complex Worker configuration for your Managed Component. Your Worker name must start with
custom-mc-for it to appear in the Cloudflare Dashboard. -
If you're using any of the storage or cache methods (
get,set,useCache,invalidateCache) in your component, you have to add a KV binding. There are two ways to do this:Option 1. Run
npx wrangler kv:namespace create <KV_NAMESPACE>, copy theidstring, and add binding in wrangler.toml as follows:kv_namespaces = [ { binding = "KV", id = "<YOUR_KV_ID>" } ]Option 2. After publishing this Managed Component as worker, follow these steps to add a KV binding as environment variable with variable name
KV. -
Run
npx wrangler publish
To use worker environment variables/secrets in your managed component, add variables via wrangler or via dashboard and use them in your component through the Manager.ext parameter: manager.ext.env.YOUR_ENV_VARIABLE