Create a code bundle
Refer to these guidelines to create an EdgeWorkers code bundle.
EdgeWorkers functions are defined in a file entitled main.js
. You also need to create a manifest file called bundle.json
. These are packaged together, along with any other dependencies as a compressed .tgz
file.
For example, a package called mybundle.tgz
includes two files:
-
main.js
. The JavaScript source that contains event handler functions. -
bundle.json
. The manifest file that includes necessary meta information.
The EdgeWorkers code bundle cannot contain any executable files.
You cannot re-use a version that you deleted from an EdgeWorker ID. You need to use a new unique version in the
bundle.json
and re-package it and any other files with yourmain.js
file.
Name | Type | Required | Description |
---|---|---|---|
edgeworker-version | String | ✓ | Unique identifier for the version If you delete a version from an EdgeWorker ID you cannot re-use it. Follow the steps below to create a new code bundle that you can use to create a version. |
bundle-version | Integer | ✗ | Bundle format version |
api-version | String | ✗ | Version of JavaScript API that the functions are coded against |
description | String | ✗ | Descriptive phrase for the code function |
misc | Object | ✗ | Miscellaneous data you can include in the manifest to identify the function |
Follow these steps to create the bundle.
You can also use the code bundle editor to create an EdgeWorker version.
- Create the JavaScript source in a file called
main.js
.
You can also enable subWorkers and change the default JavaScript logging level in the main.js
file.
- Each time you create a new version of the code bundle you need to increment the
edgeworker-version
in thebundle.json
file.
{
"edgeworker-version": "1.2",
"description" : "Perform redirect"
}
- Compress the files into a code bundle.
Make sure that the code bundle does't contain any executable files. If you include any executable files in the .tgz it will fail when you try to upload it.
tar -czvf filename.tgz main.js bundle.json
Once you have created the code bundle, you can use the EdgeWorkers Management application to create an EdgeWorker version.
Enable subWorkers
To enable subWorkers you need to add the invoke-for-edgeworker-clients
config setting to the bundle.json
file and set it to true
. For more information, go to Create a subWorker in this guide.
Name | Required | Description |
---|---|---|
subrequest | ✗ | Includes config settings for sub-requests. Currently it only includes “invoke-for-edgeworkers-client”. |
invoke-for-edgeworkers-client | ✗ | When set to true, it enables support for subWorkers. By default, this configuration setting is set to false. |
{
"edgeworker-version": "0.2",
"description" : "Hello World Example",
"config": {
"subrequest": {
"invoke-for-edgeworker-clients": true
}
}
}
If the configuration setting is set to false
or not included, the EdgeWorkers function will return an information status 22, SubworkerNotEnabled
, if a sub-request is made to the EdgeWorkers URL. The sub-request will continue to process without invoking the EdgeWorker.
Change the default JavaScript logging level
You can set the JavaScript logging in the code bundle and deliver these logs using a DataStream 2 stream. By default, JavaScript logs are set to ERROR.
For more information about how to deliver the logs, go to the Use DataStream 2 to deliver JavaScript logs tutorial.
To change the default JavaScript log level you need to add the logging
config setting to the bundle.json
file.
Name | Required | Description |
---|---|---|
level | ✗ | The log level applied to the EdgeWorkers code bundle. You can use this parameter to override the default log level, ERROR. The log levels are trace, debug, info, warn, and error. |
schema | ✗ | Not currently in use. Use v1 as a placeholder. |
ds2id | ✓ | The DataStream2 stream id to associate with the log data. The stream needs to be active before you include it in the EdgeWorkers code bundle. When you add the logging config setting to the bundle.json file, the ds2id is required. |
You can change the ds2id
using the EdgeWorkers CLI.
{
"edgeworker-version": "1.2.3",
"bundle-version": 1,
"api-version": "0.3",
"description": "A bundle describing overriding the default log level.",
"config": {
"logging": {
"level": "info",
"schema": "v1",
"ds2id": 1234
}
}
}
Updated about 1 month ago