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

CloudFlow:ビルトイン関数

最終更新日:Mar 12, 2026

CloudFlow のフロー定義言語 (FDL) は、ワークフロー定義内でデータ処理を行うためのビルトイン関数を提供します。これらの関数を使用すると、外部関数コードを記述することなく、文字列、配列、マップ、JSON データを操作できます。

重要

入力または出力コンストラクターでビルトイン関数を使用するには、コンストラクターキーに .$ を追加します。これにより、CloudFlow は値を式として評価します。.$ サフィックスがない場合、値はプレーン文字列として扱われます。1つの式につき、最大 10 個のネストされた関数呼び出しがサポートされています。

例: FDL コンストラクターでのビルトイン関数の使用

{
  "inputMappings": {
    "greeting.$": "format('Hello, {}', $input.username)"
  }
}

この例では、greeting.$ は、値がリテラル文字列ではなく、format 関数を含む式であることを CloudFlow に伝えます。

関数リファレンス

次の表に、カテゴリ別にグループ化されたすべてのビルトイン関数を示します。

共通操作

関数目的
format{} プレースホルダーを使用した文字列のフォーマット
length文字列、配列、またはマップの長さを取得
regexMatchString文字列を正規表現と照合
split文字列をデリミタで分割

配列操作

関数目的
arrayContains配列に特定の要素が含まれているか確認
arrayUnique配列から重複要素を削除
toArray可変個の引数を配列に変換

マップ操作

関数目的
mapKeysJSON オブジェクトまたはマップからすべてのキーを配列として抽出
mapValuesJSON オブジェクトまたはマップからすべての値を配列として抽出
mapValuesPartitionマップから値を抽出し、ステップサイズでサブ配列に分割

データエンコーディングとデコーディング

関数目的
toBase64文字列を Base64 にエンコード
fromBase64Base64 エンコードされた文字列をデコード

ハッシュ計算と UUID 生成

関数目的
hash指定されたアルゴリズムを使用してハッシュ値を生成
uuidUUID を生成

JSON データ操作

関数目的
jsonToStringJSON オブジェクトまたはマップを JSON 文字列に変換
stringToJsonJSON 文字列を JSON オブジェクトまたはマップに解析
jsonMerge2つの JSON オブジェクトまたはマップを1つにマージ

共通操作

format

文字列内の {} プレースホルダーを、指定された引数で順番に置き換えてフォーマットします。

構文

format(template, arg1, arg2, ...)

パラメータ

パラメータ必須説明
templatestringYes{} プレースホルダーを含むテンプレート文字列
arg1, arg2, ...anyYesプレースホルダーに順番に代入する値

戻り値の型: string

format("hello {}", "world")
// Returns: "hello world"

FDL での使用例:

{ "message.$": "format('タスク {} は {} に完了しました', $input.taskName, $input.timestamp)" }

length

文字列、配列、またはマップの長さを返します。

  • 文字列の場合、文字数を返します。

  • 配列の場合、要素数を返します。

  • マップの場合、キーと値のペアの数を返します。

構文

length(値)

パラメータ

パラメータ必須説明
valuestring, []any, or map[string]anyYes測定する文字列、配列、またはマップ

戻り値の型: int

length([1, 2, 3])
// Returns: 3

length({"name": "Tom", "age": 10})
// Returns: 2

length("name")
// Returns: 4

FDL 使用量:

{ "itemCount.$": "length($input.orderItems)" }

regexMatchString

文字列が正規表現パターンと一致するかどうかをテストします。パターンが一致する場合は true を返し、それ以外の場合は false を返します。

構文

regexMatchString(pattern, value)

パラメータ

パラメータ必須説明
patternstringYes正規表現パターン
valuestringYesパターンと照合する文字列

戻り値の型: bool

regexMatchString("p([a-z]+)ch", "peach")
// Returns: true

regexMatchString("p([a-z]+)ch", "p123ch")
// Returns: false

FDL の使用方法:

{ "isValid.$": "regexMatchString('^[a-zA-Z0-9]+$', $input.userId)" }

split

文字列をデリミタに基づいて部分文字列の配列に分割します。

構文

split(value, delimiter)

パラメータ

パラメータ必須説明
valuestringYes分割する文字列
delimiterstringYes分割に使用するデリミタ

戻り値の型: []string

split("item1,item2,item3", ",") // 戻り値:["item1", "item2", "item3"]

FDL 使用量:

{ "tags.$": "split($input.tagString, ',')" }

配列操作

arrayContains

配列に特定の要素が含まれているか確認します。要素が見つかった場合は true を返し、それ以外の場合は false を返します。

構文

arrayContains(array, element)

パラメータ

パラメータ必須説明
array[]anyYes検索する配列
elementanyYes検索する要素

戻り値の型: bool

arrayContains(["Tom", 10], 10) // 戻り値: true arrayContains(["Tom", 10], "Jack") // 戻り値: false

FDL 使用量:

{ "isAllowed.$": "arrayContains($input.allowedRegions, $input.targetRegion)" }

arrayUnique

配列から重複要素を削除し、重複排除された結果を返します。

構文

arrayUnique(配列)

パラメータ

パラメータ必須説明
array[]anyYes重複排除する配列

戻り値の型: []any

arrayUnique([1, 2, 3, 1])
// Returns: [1, 2, 3]

toArray

可変個の引数を単一の配列に変換します。

構文

toArray(arg1, arg2, ...)

パラメータ

パラメータ必須説明
arg1, arg2, ...anyYes配列に結合する1つ以上の値

戻り値の型: []any

toArray(1,'strig',$Input.var)
// Returns: []any{1, 'string', $valueOfVar}

マップ操作

mapKeys

JSON オブジェクトまたはマップからすべてのキーを抽出し、文字列配列として返します。

構文

mapKeys(map)

パラメータ

パラメータ必須説明
mapmap[string]anyYesキーを抽出する JSON オブジェクトまたはマップ

戻り値の型: []string

mapKeys({"name": "Tom", "age": 10})
// Returns: ["name", "age"]

mapValues

JSON オブジェクトまたはマップからすべての値を抽出し、配列として返します。

構文

mapValues(map)

パラメータ

パラメータ必須説明
mapmap[string]anyYes値を抽出する JSON オブジェクトまたはマップ

戻り値の型: []any

mapValues({"name": "Tom", "age": 10})
// Returns: ["Tom", 10]

mapValuesPartition

JSON オブジェクトまたはマップからすべての値を抽出し、指定されたサイズでサブ配列に分割します。

構文

mapValuesPartition(マップ, ステップサイズ)

パラメータ

パラメータ必須説明
mapmap[string]anyYes値を抽出する JSON オブジェクトまたはマップ
stepSizeintYesサブ配列あたりの要素数

戻り値の型: [][]any

mapValuesPartition({"name": "Tom", "age": 10}, 1) // 戻り値: ["Tom"],[10]

データエンコーディングとデコーディング

toBase64

文字列を Base64 にエンコードします。

構文

toBase64(value)

パラメータ

パラメータ必須説明
valuestringYesエンコードする文字列

戻り値の型: string

toBase64("FnF")
// Returns: "Rm5G"

fromBase64

Base64 エンコードされた文字列を元の値にデコードします。

構文

fromBase64(value)
パラメーターパラメーター型必須説明value文字列はいデコードする Base64 でエンコードされた文字列です。
戻り値の型: 文字列
例fromBase64("Rm5G")
// 戻り値: "FnF"

ハッシュ計算と UUID 生成

hash

指定されたアルゴリズムを使用して、指定された入力のハッシュ値を生成します。

構文

hash(input, algorithm)

パラメータ

パラメータ必須説明
inputstringYesハッシュ化する文字列
algorithmstringYesハッシュアルゴリズム。サポートされている値: MD5, SHA-1, SHA-256, SHA-512

戻り値の型: string

hash("abc", "MD5")
// Returns: "900150983cd24fb0d6963f7d28e17f72"

FDL の使用方法:

{
  "checksum.$": "hash($input.payload, 'SHA-256')"
}

uuid

普遍的に一意な識別子 (UUID) を生成します。

構文 uuid()

パラメーター

なし。

戻り値の型: 文字列

uuid() // 戻り値: "159fd8c1-2ec3-4d7b-b9fd-60b9d8841000"

FDL uid="dfc2079465bd1_22"e-type="xCode" data-tag="codeblock" id="dfc2079465bd1" outputclass="language-json">{ "requestId.$": "uuid()" }

JSON データ操作

jsonToString

JSON オブジェクトまたはマップをその文字列表現に変換します。

Syid="dfc2079465bd1_23"code-type="xCode" data-tag="codeblock" id="dfc2079465bd1" outputclass="language-bash">jsonToString(value)

パラメーター

パラメータ必須説明
valuemap[string]anyYesシリアル化する JSON オブジェクトまたはマップ

戻り値の型: string

toJSON({"name": "Tom", "age": 10}) // 戻り値: '{"name": "Tom", "age": 10}'

stringToJson

JSON 文字列を JSON オブジェクトまたはマップに解析します。

構文

stringToJson(value)

パラメータ

パラメータ必須説明
valuestringYes有効な JSON 文字列

戻り値の型: map[string]any

stringToJson('{"name": "Tom", "age": 10}')
// Returns: {"name": "Tom", "age": 10}

FDL での使用例:

{ "parsedBody.$": "stringToJson($input.responseBody)" }

jsonMerge

2 つの JSON オブジェクトまたはマップを 1 つにマージします。

jsonMerge(object1, object2)

パラメータ

パラメータ必須説明
object1map[string]anyYes最初の JSON オブジェクトまたはマップ
object2map[string]anyYes2番目の JSON オブジェクトまたはマップ

戻り値の型: map[string]any

jsonMerge({"name": "田中一郎", "age": 10}, {"name": "田中一郎", "address": "東京都港区"}) // 返り値: {"name": "田中一郎", "age": 10, "address": "東京都港区"}
{
  "mergedConfig.$": "jsonMerge($input.defaultConfig, $input.userOverrides)"
}