すべてのプロダクト
Search
ドキュメントセンター

CDN:ES CLIを使用してスクリプトを管理する方法の例

最終更新日:Jan 24, 2024

このトピックでは、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"
    }