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

ApsaraMQ for MQTT:データ抽出

最終更新日:Jan 14, 2025

EventBridge はイベントコンテンツの変換をサポートしています。EventBridge は、イベントがイベントターゲットにルーティングされる前に、標準の CloudEvents 形式のイベントをイベントターゲットが受信できるイベントタイプに変換できます。このトピックでは、EventBridge が提供するイベント変換方法について説明します。

背景情報

EventBridge は、以下のイベント変換方法をサポートしています。

イベント全体

変換方法としてイベント全体を指定した場合、EventBridge はイベントを変換せず、CloudEvents 形式のイベント全体をイベントターゲットにルーティングします。次の表は、イベント全体の変換方法が使用されるイベントの例を示しています。

説明

CloudEvents の詳細については、「CloudEvents 1.0」をご参照ください。

変換前のイベント

変換方法

変換後のイベント

{
    "id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
    "source":"acs.oss",
    "specversion":"1.0",
    "type":"oss:ObjectCreated:PostObject",
    "datacontenttype":"application/json",
    "dataschema":"http://example.com/test.json",
    "subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
    "time":"2020-08-17T16:04:46.149Asia/Shanghai",
    "aliyuneventbusname":"demo-bus",
    "aliyunregionid":"Shanghai",
    "data":{
        "name":"test",
        "scope":100
    }
}

イベント全体

{
    "id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
    "source":"acs.oss",
    "specversion":"1.0",
    "type":"oss:ObjectCreated:PostObject",
    "datacontenttype":"application/json",
    "dataschema":"http://example.com/test.json",
    "subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
    "time":"2020-08-17T16:04:46.149Asia/Shanghai",
    "aliyuneventbusname":"demo-bus",
    "aliyunregionid":"Shanghai",
    "data":{
        "name":"test",
        "scope":100
    }
}

イベント一部

変換方法としてイベント一部を指定した場合、EventBridge は JSONPath を使用して CloudEvents 形式のイベントからフィールドを抽出し、イベントの指定されたコンテンツをイベントターゲットにルーティングします。次の表は、イベント一部の変換方法が使用されるイベントの例を示しています。

変換前のイベント

変換方法

変換後のイベント

{
    "id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
    "source":"acs.oss",
    "specversion":"1.0",
    "type":"oss:ObjectCreated:PostObject",
    "datacontenttype":"application/json",
    "dataschema":"http://example.com/test.json",
    "subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
    "time":"2020-08-17T16:04:46.149Asia/Shanghai",
    "aliyuneventbusname":"demo-bus",
    "aliyunregionid":"Shanghai",
    "data":{
        "name":"test",
        "scope":100
    }
}

イベント一部

$.data.name
説明
  • イベント一部の変換方法を使用する場合は、変数を 1 つだけ定義できます。

  • : 値の長さは最大 10,240 文字です。

test

固定値

変換方法として固定値を指定した場合、イベントはトリガーとしてのみ機能します。EventBridge は、イベントの内容に関係なく、イベント内の固定値をイベントターゲットにルーティングします。次の表は、固定値の変換方法が使用されるイベントの例を示しています。

変換前のイベント

変換方法

変換後のイベント

{
    "id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
    "source":"acs.oss",
    "specversion":"1.0",
    "type":"oss:ObjectCreated:PostObject",
    "datacontenttype":"application/json",
    "dataschema":"http://example.com/test.json",
    "subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
    "time":"2020-08-17T16:04:46.149Asia/Shanghai",
    "aliyuneventbusname":"demo-bus",
    "aliyunregionid":"Shanghai",
    "data":{
        "name":"test",
        "scope":100
    }
}

固定値

test1
説明

: 値の長さは最大 10,240 文字です。

test1

テンプレート

変換方法としてテンプレートを指定した場合、EventBridge は JSONPath を使用して CloudEvents 形式のイベントからフィールドを抽出し、値を変数に格納してから、テンプレートで定義された形式のイベントをイベントターゲットにルーティングします。次の表は、テンプレートの変換方法が使用されるイベントの例を示しています。

変換前のイベント

変換方法

変換後のイベント

{
    "id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
    "source":"acs.oss",
    "specversion":"1.0",
    "type":"oss:ObjectCreated:PostObject",
    "datacontenttype":"application/json",
    "dataschema":"http://example.com/test.json",
    "subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
    "time":"2020-08-17T16:04:46.149Asia/Shanghai",
    "aliyuneventbusname":"demo-bus",
    "aliyunregionid":"Shanghai",
    "data":{
        "name":"test",
        "scope":100
    }
}

テンプレート

  • 変数

    {
        "name":"$.data.name",
        "constant":"Please deal with it timely." // 適時に処理してください。
    }
    説明
    • JSONPath によって抽出された値は、変数または固定値にすることができます。

    • 変数を定義する場合、ネストされた構造はサポートされていません。

    • : 値の長さは最大 10,240 文字です。

  • テンプレート

    The instance is broken, which name is ${name}, ${constant} // インスタンスが壊れています。名前は ${name} です。${constant}
    説明

    テンプレート: 値は最大 10,240 文字です。

The instance is broken, which name is test, Please deal with it timely.

文字列または JSON 形式でカスタムテンプレートを指定し、テンプレートに基づいてイベントを変換し、イベントをイベントターゲットにルーティングできます。EventBridge は、以下のタイプのテンプレートをサポートしています。

表 1. 単純な文字列

変換前のイベント

変換方法

変換後のイベント

{
    "id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
    "source":"acs.oss",
    "specversion":"1.0",
    "type":"oss:ObjectCreated:PostObject",
    "datacontenttype":"application/json",
    "dataschema":"http://example.com/test.json",
    "subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
    "time":"2020-08-17T16:04:46.149Asia/Shanghai",
    "aliyuneventbusname":"demo-bus",
    "aliyunregionid":"Shanghai",
    "data":{
        "name":"test",
        "state":"RUNNING"
    }
}

テンプレート

  • 変数

    {
        "name":"$.data.name",
        "state":"$.data.state"
    }
  • テンプレート

    "name ${name} is in ${state}" // name ${name} は ${state} です
"name test is in RUNNING"
表 2. 単純な JSON

変換前のイベント

変換方法

変換後のイベント

{
    "id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
    "source":"acs.oss",
    "specversion":"1.0",
    "type":"oss:ObjectCreated:PostObject",
    "datacontenttype":"application/json",
    "dataschema":"http://example.com/test.json",
    "subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
    "time":"2020-08-17T16:04:46.149Asia/Shanghai",
    "aliyuneventbusname":"demo-bus",
    "aliyunregionid":"Shanghai",
    "data":{
        "name":"test",
        "state":"RUNNING"
    }
}

テンプレート

  • 変数

    {
        "name":"$.data.name",
        "state":"$.data.state"
    }
  • テンプレート

    {
        "name":"${name}",
        "state":"${state}"
    }
{
    "name":"test",
    "state":"RUNNING"
}
表 3. 変数と固定値を含む JSON

変換前のイベント

変換方法

変換後のイベント

{
    "id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
    "source":"acs.oss",
    "specversion":"1.0",
    "type":"oss:ObjectCreated:PostObject",
    "datacontenttype":"application/json",
    "dataschema":"http://example.com/test.json",
    "subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
    "time":"2020-08-17T16:04:46.149Asia/Shanghai",
    "aliyuneventbusname":"demo-bus",
    "aliyunregionid":"Shanghai",
    "data":{
        "name":"test",
        "state":"RUNNING"
    }
}

テンプレート

  • 変数

    {
        "name":"$.data.name",
        "state":"$.data.state"
    }
  • テンプレート

    {
        "name":"${name}",
        "state":[
            9,
            "${state}",
            true
        ],
        "Transformed":"Yes" // 変換済み:"はい"
    }
{
    "name":"test",
    "state":[
        9,
        "RUNNING",
        true
    ],
    "Transformed":"Yes"
}