全部產品
Search
文件中心

Resource Orchestration Service:Fn::Jq

更新時間:Feb 05, 2024

調用內建函式Fn::Jq,支援Jq功能,擷取滿足過濾條件後的JSON字串。

函式宣告

  • JSON

    {
      "Fn::Jq": [
        method,
        script,
        object
      ]
    }
  • YAML

    • 完整函數的文法。

      Fn::Jq: method,script,object
    • 縮寫形式。

      !Jq [method,script,object]

參數資訊

  • method:必選,字串類型。

    取值:

    • First:合格第一個值。

    • All:合格所有值。

  • script:必選,字串類型。Jq指令碼,可作為JSON字串的過濾器。Jq功能詳情請參見Jq文檔

  • object:必選,JSON字串。

傳回值

滿足過濾器條件的字串。

使用樣本

單個過濾器

使用過濾器.test過濾出的值取第一個。當給定一個JSON字串作為輸入時,它將在鍵test處產生值;如果值不存在,則為null。

!Jq
  - First
  - .test
  - '{"test":"test"}'

傳回值:

test

多個過濾器

說明

多個過濾器之間可使用豎線(|)進行串連。

使用過濾器.parameters[]過濾出的內容,再次通過新的過濾器進行過濾,它們之間通過豎線(|)進行串連。給定一個JSON字串作為輸入時,它將按照順序在滿足過濾器條件.parameters[]{"param_name": .name, "param_type":.type}的鍵處產生值;如果值不存在,則為null。您需要根據過濾器條件先查看Key為parameters的值,再在傳回值中尋找滿足Key為name和Key為type的值作為最終傳回值,當條件中的值不存在時則為null。

!Jq
  - All
  - '.parameters[] | {"param_name": .name, "param_type":.type}'
  - changeSet:
      items: []
      kind: git
    id: 2013-12-27_00-09-37
    parameters:
      - name: PKG_TAG_NAME
        value: trunk
      - name: GIT_COMMIT
        value: master
      - name: TRIGGERED_JOB
        value: trunk-buildall

傳回值:

- param_name: PKG_TAG_NAME
- param_name: GIT_COMMIT
- param_name: TRIGGERED_JOB