このトピックでは、EdgeScript (ES) CLIを使用してスクリプトを作成、保存、テスト、および公開する方法について説明します。
説明
ES CLIの使用方法の詳細については、「EdgeScript CLIを使用してスクリプトを管理する」をご参照ください。
次の例は、ES CLIを使用してスクリプトを管理する方法を示しています。
スクリプトをローカルファイルとして保存します。
たとえば、m3u8.esスクリプトを使用してすべてのM3U8リクエストをブロックします。
$cat m3u8.es if eq(substr($uri, -5, -1), '.m3u8') { add_rsp_header('X-DEBUG-DENY-REASON ', 'block m3u8') exit(400) }
スクリプトをステージング環境に公開します。
$./es.py action=push_test_env domain=<your domain> rule='{"pos":"head","pri":"0","rule_path":"./m3u8.es","enable":"on"}' 応答コード: ================ 200 OK 応答情報: ================= { "RequestId": "FB98CC67-8FBA-44CF-A98A-BCE3B19FE510" }
ステージング環境でスクリプトを照会します。
$./es.py action=query_test_env domain=<your domain> 応答コード: ================ 200 OK 応答情報: ================= { "DomainConfigs": [ { "Status": "success" 、# 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": "dsl_ex" } ], "RequestId": "4DDBF3DB-BCAC-4074-AC1E-B6C1F1C6CBFB" }
スクリプトをテストします。
$curl -xステージング環境IP:80 -o /dev/null -v 'http:// www.archnote.net/test.m3u8' <HTTP/1.1 400不正なリクエスト <サーバー: Tengine <日付: 7月18日木曜日2019: 09:40:41 GMT <Content-Type: text/html <Content-Length: 265 <接続: 閉じる <X-DEBUG-DENY-REASON: ブロックm3u8 <Via: cache1.cn1191-1[,0] <タイミング-許可-起源: * <EagleId: 2a7b771b1563442841553748 4e
実稼働環境にスクリプトを発行します。
$./es.py action=push_product_env domain=<your domain> 応答コード: ================ 200 OK 応答情報: ================= { "RequestId": "F4B378F8-6AAE-457A-A70C-E856ED8341D8" }
本番環境でスクリプトを照会します。
$./es.py action=query_product_env domain=<your domain> 応答コード: ================ 200 OK 応答情報: ================= { "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": "dsl_ex" } ] }, "RequestId": "36D57C1D-C820-43DA-8E70-DADC4B8BD4DD" }