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./src
if 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 yourimport
command -
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 theid
string, 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