Todos los productos
Search
Centro de documentos

CDN:Gestión de EdgeScript con la CLI

Última actualización: Sep 02, 2026

Utilice la CLI de EdgeScript (ES) para gestionar el ciclo de vida completo del script: escriba el script localmente, despliéguelo en el entorno de pruebas, compruebe su comportamiento y, posteriormente, promuévalo a producción. Este flujo de trabajo le permite probar la lógica de EdgeScript (ES) de forma segura antes de que afecte al tráfico en vivo.

Para consultar la documentación de referencia completa de la CLI de ES, consulte Use the EdgeScript CLI to manage scripts .

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • La herramienta CLI es.py descargada y disponible en su directorio de trabajo

  • Un nombre de dominio acelerado configurado en Alibaba Cloud CDN

  • Un archivo de script ES listo para desplegar (los ejemplos siguientes utilizan m3u8.es)

Funcionamiento

Todos los comandos utilizan es.py con un parámetro action para seleccionar la operación. El mismo dominio se utiliza como destino en todos los pasos; solo cambia el valor de action para pasar de un entorno a otro.

Write script → Push to staging → Query staging → Test → Push to production → Query production

Paso 1: Escribir el script

Guarde su lógica de ES como un archivo .es local. El siguiente ejemplo usa m3u8.es para bloquear todas las solicitudes M3U8 mediante la verificación del sufijo URI y la devolución de una respuesta 400 Bad Request.

$cat m3u8.es
if eq(substr($uri, -5, -1), '.m3u8') {
    add_rsp_header('X-DEBUG-DENY-REASON', 'block m3u8')
    exit(400)
}

Paso 2: Enviar el script al entorno de pruebas

Ejecute push_test_env para desplegar el script en el entorno de pruebas antes de que llegue a producción.

$./es.py action=push_test_env domain=<your domain> rule='{"pos":"head","pri":"0","rule_path":"./m3u8.es","enable":"on"}'

Parámetros de la regla

Parameter

Description

Example value

pos

Posición de ejecución en la canalización de solicitudes

head

pri

Prioridad (un número menor indica mayor prioridad)

0

rule_path

Ruta al archivo de script .es local

./m3u8.es

enable

Indica si la regla está activa

on

Respuesta esperada

Response Code:
=============
200 OK

Response Info:
==============
{
    "RequestId": "FB98CC67-8FBA-44CF-A98A-BCE3B19FE510"
}

Una respuesta 200 OK con un RequestId confirma que el script se envió correctamente.

Paso 3: Consultar el entorno de pruebas

Ejecute query_test_env para confirmar que el script se configuró correctamente antes de realizar pruebas.

$./es.py action=query_test_env domain=<your domain>

Respuesta esperada

Response Code:
=============
200 OK

Response Info:
==============
{
    "DomainConfigs": [
        {
            "Status": "success",
            "ConfigId": 17432558,
            "FunctionArgs": [
                {
                    "ArgName": "enable",
                    "ArgValue": "on"
                },
                {
                    "ArgName": "pri",
                    "ArgValue": "0"
                },
                {
                    "ArgName": "pos",
                    "ArgValue": "head"
                },
                {
                    "ArgName": "rule",
                    "ArgValue": "if eq(substr($uri, -5, -1), '.m3u8') {\n    add_rsp_header('X-DEBUG-DENY-REASON', 'block m3u8')\n    exit(400)\n}\n"
                }
            ],
            "FunctionName": "edge_function"
        }
    ],
    "RequestId": "4DDBF3DB-BCAC-4074-AC1E-B6C1F1C6CBFB"
}
Un valor "Status": "success" en la respuesta confirma que el script está configurado en el entorno de pruebas.

Paso 4: Probar el script

Envíe una solicitud a través del entorno de pruebas para comprobar que el script se comporta según lo esperado. Reemplace Staging environment IP por la dirección IP real de su nodo de pruebas.

$curl -x Staging environment IP:80 -o /dev/null -v 'http://www.archnote.net/test.m3u8'

Encabezados de respuesta esperados

< HTTP/1.1 400 Bad Request
< Server: Tengine
< Date: Thu, 18 Jul 2019 09:40:41 GMT
< Content-Type: text/html
< Content-Length: 265
< Connection: close
< X-DEBUG-DENY-REASON: block m3u8
< Via: cache1.cn1191-1[,0]
< Timing-Allow-Origin: *
< EagleId: 2a7b771b15634428415537484e

Una respuesta 400 Bad Request con el encabezado X-DEBUG-DENY-REASON: block m3u8 confirma que el script bloquea las solicitudes M3U8 tal como se diseñó.

Paso 5: Enviar el script al entorno de producción

Después de verificar el script en el entorno de pruebas, ejecute publish_test_env para promoverlo a producción.

$./es.py action=push_product_env domain=<your domain>

Respuesta esperada

Response Code:
=============
200 OK

Response Info:
==============
{
    "RequestId": "F4B378F8-6AAE-457A-A70C-E856ED8341D8"
}

Paso 6: Consultar el entorno de producción

Ejecute query_product_env para confirmar que el script está activo en producción.

$./es.py action=query_product_env domain=<your domain>

Respuesta esperada

Response Code:
=============
200 OK

Response Info:
==============
{
    "DomainConfigs": {
        "DomainConfig": [
            {
                "Status": "success",
                "ConfigId": 17432558,
                "FunctionArgs": {
                    "FunctionArg": [
                        {
                            "ArgName": "enable",
                            "ArgValue": "on"
                        },
                        {
                            "ArgName": "pri",
                            "ArgValue": "0"
                        },
                        {
                            "ArgName": "pos",
                            "ArgValue": "head"
                        },
                        {
                            "ArgName": "rule",
                            "ArgValue": "if eq(substr($uri, -5, -1), '.m3u8') {\n    add_rsp_header('X-DEBUG-DENY-REASON', 'block m3u8')\n    exit(400)\n}\n"
                        }
                    ]
                },
                "FunctionName": "edge_function"
            }
        ]
    },
    "RequestId": "36D57C1D-C820-43DA-8E70-DADC4B8BD4DD"
}
Un valor "Status": "success" confirma que el script está activo en producción. La respuesta de producción utiliza un esquema JSON diferente para FunctionArgs en comparación con la respuesta de pruebas: FunctionArgs es un objeto JSON que contiene una matriz FunctionArg , en lugar de una matriz plana.

Pasos siguientes