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
npx
Your Managed Component should be bundled before trying to deploy it.
npx managed-component-to-cloudflare-worker /path/to/managed/component.js component-name
npx
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 your import
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 the id
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