Alibaba Cloud provides the EdgeScript command-line interface (CLI). The EdgeScript
CLI allows you to publish scripts that are created on premises to the staging environment
and production environment. You can query, modify, and delete scripts in the staging
and production environments by using the EdgeScript CLI. This topic describes how
to use the EdgeScript CLI.
- Download the EdgeScript CLI.
- Configure your AccessKey ID and AccessKey secret.
python ./es.py config --id=AK_ID --secret=AK_SECRET
cat aliyun.ini
[Credentials]
accesskeyid = Updated AccessKey ID
accesskeysecret = Updated AccessKey secret
- Publish a script to the staging or production environment.
./es.py action=push_test_env domain=<domain> rule='{"pos":"<head|foot>","pri":"0-999","rule_path":"<the es code path>","enable":"<on|off>"}'
./es.py action=push_product_env domain=<domain> rule='{"pos":"<head|foot>","pri":"0-999","rule_path":"<the es code path>","enable":"<on|off>","configid":"<configid>"}'
The following table describes the fields in the script.
Field |
Required |
Description |
enable |
Yes |
Specifies whether to enable or disable the script. Valid values:
|
pos |
Yes |
The position where the script is executed. Valid values:
|
pri |
Yes |
The priority of the script. You can prioritize only scripts that are executed in the
same position. Valid values: 0 to 999.
- The value 0 indicates the highest priority.
- The value 999 indicates the lowest priority.
|
rule |
Yes |
The content of the script. |
brk |
No |
Specifies whether to skip the subsequent scripts if the current script is executed.
Valid values:
|
testip |
No |
The IP address of the client. By default, this field is empty. If you specify a client
IP address, only requests sent from the specified IP address can trigger the execution
of the script.
|
option |
No |
An extension. EdgeScript supports extensions. You can set this field to _es_dbg=signature to perform response header debugging.
|
Note
- When you create a script, you do not need to specify the configuration ID.
- To modify a script, you must specify the configuration ID. You can call the query
operation to obtain the configuration ID of the script.
- You can specify multiple scripts.
- Query scripts in the staging or production environment.
./es.py action=query_test_env domain=<domain>
./es.py action=query_product_env domain=<domain>
- Delete a script from the staging or production environment.
./es.py action=del_test_env domain=<domain> configid=<configid>
./es.py action=del_product_env domain=<domain> configid=<configid>
- Publish scripts from the staging environment to the production environment or roll
back scripts from the production environment to the staging environment.
./es.py action=publish_test_env domain=<domain>
./es.py action=rollback_test_env domain=<domain>
For example, you can create, save, test, and publish the m3u8.es script that is used
to block all M3U8 requests. For more information, see Quick start.
Request header debugging
- Perform debugging.
To perform debugging, you can configure the
_es_dbg
parameter in the ApsaraVideo Live console that supports WebIDE or run the following
command:
./es.py action=push_test_env domain=<domain> rule='{"pos":"<head|foot>","pri":"0-999","rule_path":"<the es code path>","enable":"<on|off>","configid":"<configid>", "option":"_es_dbg=123"}'
- Check debugging results.
The _es_dbg
parameter is contained in the request header. The value of the _es_dbg parameter
is set to the value of _es_dbg
that you set in the option extension of the script. To view the debugging result,
check the following information contained in the response header:
TRACE information: X-DEBUG-ES-TRACE-RULE-{Script ID}
. Check the control flow of the script. The format of the control flow is _flow number_function name (input parameter): Response{_execution time}
.