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} 人います!!
入力例 (2-3)
現在のチャネルに送信された MESSAGE (前のチャネルの出力データ) の {"weather": ["sunny", "cloudy", "rain"]}
から weather
の配列の要素の数を取得します。
${len(payload.weather)}
入力できる変数、演算子、関数について
変数
変数 | 説明 |
---|---|
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) | string が、prefix で始まるかどうかを判断し、true か false を返します。prefix が "" の場合は true を返します。 |
endsWith(string, suffix) | string が、suffix で終わるかどうかを判断し、true か false を返します。suffix が "" の場合は true を返します。 |
データ変換
関数 | 説明 |
---|---|
toLowerCase(string) | string を小文字に変換します。 |
toUpperCase(string) | string を大文字に変換します。 |
int(value) | value (文字列または数値) を整数に変換します。小数の場合、小数点以下を切り捨てます。 |
toNumber(string) | string を数値に変換します。 |
toString(number) | number を文字列に変換します。 |
abs(number) | number の絶対値を返します。 |
ceil(number) | number の小数を切り上げて整数にします。 |
floor(number) | number の小数を切り捨てて整数にします。 |
round(number) | number の小数を四捨五入して整数にします。 |
max(number1, number2) | 指定した 2 つの数値の最大値を返します。 |
min(number1, number2) | 指定した 2 つの数値の最小値を返します。 |
len(value) | value (文字列または配列) の長さを返します。文字列の長さは、Unicode のコードポイント数です。配列の長さを取得する場合は、len(payload) のように変数で配列を指定してください。 |
時間処理
例:
${datetime("2025-02-05T00:00:00Z")} // 日付を表す文字列の例
${getUTCYear(1738713600000)} // UNIX 時間 (ミリ秒) の例
関数 | 説明 |
---|---|
now() | 現在の時刻を UNIX 時間 (ミリ秒) で返します。 |
datetime(iso_string) | 日付を表す文字列 (*1) を、UNIX 時間 (ミリ秒) に変換します。 |
datetimeFromISOString(iso_string) | 日付を表す文字列 (*1) を、UNIX 時間 (ミリ秒) に変換します。 |
getUTCYear(value) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) を、協定世界時 (UTC) に変換して、「年」を返します。 |
getUTCMonth(value) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) を、協定世界時 (UTC) に変換して、「月」を返します。 |
getUTCDate(value) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) を、協定世界時 (UTC) に変換して、「日」を返します。 |
getUTCHours(value) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) を、協定世界時 (UTC) に変換して、「時」を返します。 |
getUTCMinutes(value) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) を、協定世界時 (UTC) に変換して、「分」を返します。 |
getUTCSeconds(value) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) を、協定世界時 (UTC) に変換して、「秒」を返します。 |
getUTCMilliseconds(value) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) を、協定世界時 (UTC) に変換して、「ミリ秒」を返します。 |
getUTCDayOfWeek(value) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) を、協定世界時 (UTC) に変換して、曜日を 0 (日曜日) - 6 (土曜日) の数字で返します。 |
addSeconds(value, number) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) に、number 秒 (*2) を加算して、その結果を UNIX 時間 (ミリ秒) で返します。 |
addMinutes(value, number) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) に、number 分 (*2) を加算して、その結果を UNIX 時間 (ミリ秒) で返します。 |
addHours(value, number) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) に、number 時間 (*2) を加算して、その結果を UNIX 時間 (ミリ秒) で返します。 |
addDays(value, number) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) に、number 日 (*2) を加算して、その結果を UNIX 時間 (ミリ秒) で返します。 |
addMonths(value, number) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) に、number 月 (*2) を加算して、その結果を UNIX 時間 (ミリ秒) で返します。 |
addYears(value, number) | value で指定した UNIX 時間 (ミリ秒) または日付を表す文字列 (*1) に、number 年 (*2) を加算して、その結果を UNIX 時間 (ミリ秒) で返します。 |
(*1) Flux の関数では、以下の形式の文字列に対応しています。日時や時刻は省略できません。
YYYY-MM-DDThh:mm:ssTZD
(例:2025-01-23T04:56:30+01:00
)YYYY-MM-DDThh:mm:ss.sssTZD
(例:2025-01-23T04:56:30.456+01:00
)
なお
TZD
には、Z
または+09:00
の形式でタイムゾーンを指定できます。(*2) 小数点以下は切り捨てられます。