全部產品
Search
文件中心

Server Load Balancer:AScript文法規則

更新時間:Jun 19, 2024

AScript是應用型負載平衡ALB(Application Load Balancer)推出的可程式化指令碼,您在使用AScript指令碼實現自訂轉寄規則時需要遵循AScript特定的文法規則。

AScript文法使用規則,請參見下表:

重要

AScript全文不允許出現任何雙引號。

文法

規則

注釋

以#開頭的當前行後續內容,均為注釋。例如:# this is annotation

標識符

  • 由字母、數字、底線組成,數字不能開頭,區分大小寫。

  • 變數名(內建、自訂)和函數名(內建、自訂)均遵守標識符規則。

資料類型

  • 字串

    字面常量:使用單引號括起來,例如:'hello, AScript'

  • 數字

    字面常量:十進位數字,例如:10、-99、1.1。

  • 布爾值

    字面常量:true、false。

  • 字典

    字面常量如下:

    • []:空

    • ['key1', 'key2', 100]

      • 1 -> 'key1'

      • 2 -> 'key2'

      • 3 -> 100

    • ['key1' = 'value1', 'key2' = 1000]

      • 'key1' -> 'value1'

      • 'key2' -> 1000

變數

  • 定義

    賦值即定義。

  • 使用

    • 內建和自訂變數,均由變數名進行引用。

      • 引用內建變數:host

      • 引用自訂變數:seckey

    • 為強調變數的內建屬性,可通過$進行引用。

      引用內建變數:$host

    • 自訂變數的名稱不能與內建變數同名。

      內建變數,請參見AScript內建變數表

運算子

  • = :賦值運算子

    • 例如:seckey = 'ASDLFJ234dxvf34sDF'

    • 例如:seckeys = ['key1', 'key2']

  • - :負號運算子

    例如:inum = -10

  • 對各資料類型的操作,不再另行支援運算子,均由內建函數支援,請參見AScript內建函數概述

語句

  • 條件判斷語句

    if condition {   
       ...
    }
    
    if condition1 {   
       if condition2 {
            ...
       }
    }
    
    if condition {
       ...
    } else {
       ...
    }
  • 語句解釋

    • condition可由如下文法元素組成:

      • 字面值

      • 變數

      • 函數調用

    • body部分

      • 允許空body。

      • 允許多語句:一行一條語句。

    • 支援多層嵌套

    • CodingStyle

      文法強制要求左大括弧跟隨在if condition之後,並且同行。

函數

  • 定義文法

    def 函數名(參數列表) {
        ...
    }
  • 定義說明

    • 形參列表

      • 允許無參。

      • 允許多參:由逗號分隔。

    • 函數體部分

      • 允許空body。

      • 允許多語句:一行一條語句。

      • 傳回值:支援return語句。

    • CodingStyle

      文法強制要求左大括弧跟隨在def函數名(參數列表)之後,並且同行。

  • 函數調用

    無論內建、自訂函數,均通過函數名(參數列表)進行調用。