event.payload.temp
) や、アクションを追加したチャネルに関するデータを表す式 (例: payload.temp
) を入力できます。ここでは、イベントやメッセージの値を利用する方法を説明します。
[アクションの実行条件] の入力例
true
であればアクションが実行されます。
入力例 (1-1)
チャネルに送信された MESSAGE が {"temperature": 42}
で、かつ Flux アプリの現在時刻が 2024-07-17T00:00:00Z
を過ぎている場合に、true
と評価されます。
(payload.temperature - 2.12) >= 32.8 && now() >= datetimeFromISOString("2024-07-17T00:00:00Z")
入力例 (1-2)
イベントソースから送信された MESSAGE が {"clickTypeName": "SINGLE"}
、またはチャネルに送信された CONTEXT に {"protocol": "http"}
が含まれる場合に、true
と評価されます。
startsWith(toUpperCase(event.payload.clickTypeName), "SINGLE") || context.protocol == "http"
そのほかの入力欄での入力例
${
と }
で囲む形式で入力します (例: ${event.payload.presignedUrls.get}
)。入力した式は、文字列に置き換えられます。
入力例 (2-1)
イベントソースから送信された MESSAGE の {"presignedUrls": {"get": "xxxxxx"}}
の xxxxxx
を取得します。
<${event.payload.presignedUrls.get}|画像>
入力例 (2-2)
現在のチャネルに送信された MESSAGE (前のチャネルの出力データ) の {"output": {"people": 1, "people_with_blue_shirts": 0}}
の 1
と 0
を取得します。
人が ${payload.output.people} 人います。そのうち、青いシャツの人が ${payload.output.people_with_blue_shirts} 人います!!
入力できる変数、演算子、関数について
変数
変数 | 説明 |
---|---|
payload | チャネルに送信された MESSAGE です。JSON オブジェクトの場合 payload.temperature や payload.values[1].foo["click type"] のようにして、JSON オブジェクトの値を取り出します。JSON オブジェクトでない場合は、payload は文字列として扱われます。 |
context | チャネルに送信された CONTEXT に対応する JSON オブジェクトです。Object のスキーマはイベントタイプごとに異なります。イベントソースリファレンス を参照してください。 |
event.payload | イベントソースからチャネルに送信されたオリジナルの MESSAGE です。 |
event.context | イベントソースからチャネルに送信された CONTEXT に対応する JSON オブジェクトです。 |
イベントソースからはじめに送信されたチャネルでは、payload
と event.payload
は同じ値です。同様に context
と event.context
も同じ値です。
演算子
${payload.temp * 100}
のように書くと、payload.temp
と 100
の積 (payload.temp
を 100
倍した値) を利用できます。
演算子 | 説明 |
---|---|
|| | 論理和: どちらかの条件が true の場合、true を返します。 |
&& | 論理積: 両方の条件が true の場合、true を返します。 |
? : | 条件 (三項) 演算子: a ? b : c のように用い、条件 a を評価した結果が true の場合は b を、false の場合は c を返します。例: event.payload.click_type == 1 ? "Single click" : "Double click" |
== | 等しい: 値が等しい場合、true を返します。 |
!= | 等しくない: 値が等しくない場合、true を返します。 |
>= | 以上: 左の値が右の値以上の場合、true を返します。 |
> | より大きい: 左の値が右の値より大きい場合、true を返します。 |
<= | 以下: 左の値が右の値以下の場合、true を返します。 |
< | より小さい: 左の値が右の値より小さい場合、true を返します。 |
+ | 加算: 2 つの値の合計を返します。 |
- | 減算: 2 つの値の差を返します。 |
* | 乗算: 2 つの値の積を返します。 |
/ | 除算: 2 つの値の商を返します。 |
% | 剰余: 左の値を右の値で割った余りを返します。 |
** | 累乗: 左の値を右の値乗した結果を返します。 |
関数
関数 | 説明 |
---|---|
includes(string, value) | string が value を含んでいるかどうかを判断し、true か false を返します。 |
startsWith(string, prefix) | sring が prefix に指定された部分文字列で始まるかどうかを判断し、true か false を返します。 |
endsWith(string, suffix) | sring が suffix に指定された部分文字列で終わるかどうかを判断し、true か false を返します。 |
toLowerCase(string) | string を小文字に変換します。 |
toUpperCase(string) | string を大文字に変換します。 |
now() | 現在の時刻をミリ秒で返します。 |
datetime(iso_string) | ISO 8601 形式の文字列をミリ秒に変換します。 |
datetimeFromISOString(iso_string) | ISO 8601 形式の文字列をミリ秒に変換します。 |
getUTCYear(unix_time | iso_string) | UNIX 時間 (ミリ秒) または ISO 8601 形式の文字列から、協定世界時 (UTC) の「年」を取得します。 |
getUTCMonth(unix_time | iso_string) | UNIX 時間 (ミリ秒) または ISO 8601 形式の文字列から、協定世界時 (UTC) の「月」を取得します。 |
getUTCDate(unix_time | iso_string) | UNIX 時間 (ミリ秒) または ISO 8601 形式の文字列から、協定世界時 (UTC) の「日」を取得します。 |
getUTCHours(unix_time | iso_string) | UNIX 時間 (ミリ秒) または ISO 8601 形式の文字列から、協定世界時 (UTC) の「時」を取得します。 |
getUTCMinutes(unix_time | iso_string) | UNIX 時間 (ミリ秒) または ISO 8601 形式の文字列から、協定世界時 (UTC) の「分」を取得します。 |
getUTCSeconds(unix_time | iso_string) | UNIX 時間 (ミリ秒) または ISO 8601 形式の文字列から、協定世界時 (UTC) の「秒」を取得します。 |
getUTCMilliseconds(unix_time | iso_string) | UNIX 時間 (ミリ秒) または ISO 8601 形式の文字列から、協定世界時 (UTC) の「ミリ秒」を取得します。 |
getUTCDayOfWeek(unix_time | iso_string) | UNIX 時間 (ミリ秒) または ISO 8601 形式の文字列から、協定世界時 (UTC) での曜日を 0 (日曜日) - 6 (土曜日) の数字で返します。 |
int(string | number) | 文字列または数値を整数に変換します。小数の場合、端数は切り捨てます。 |