CLI ノード
CLI ノードを使用すると、フロー内のステップとしてカスタム CLI コマンドを実行し、その構造化された出力を次のノードに渡せます。スクリプトは安全なサンドボックス環境で実行されます。AWS または GCP の接続を必ず紐付けてください。スクリプトはその接続の認証情報を使って実行され、gcloud または aws が事前にインストールされています。
CLI ノードはフローをシンプルにするのに役立ちます。例えば、単一の CLI ノード内で aws ec2 attach-volume コマンドを実行できます。通常の AWS ノードを使う場合は、DescribeInstances(検証)、DescribeVolumes(状態チェック)、AttachVolume の 3 つのノードを連結する必要があります。
Before you begin
CLI ノードを追加する前に、AWS または GCP の接続を作成してください。接続の概要については、Connections を参照してください。
複数のアクションノードや CLI ノード間で同じ接続を再利用したい場合は、接続変数を作成してください。
Configure the CLI node
CLI ノードを選択すると、Parameters タブを含むサイドパネルが開きます。

-
Cloud connection provider: Google Cloud (GCP) または Amazon Web Services (AWS) を選択します。 接続は必須であり、スクリプトはその接続の認証情報で実行されます。
直接の接続か 接続変数 を選択できます。接続変数を使用すると、接続を 1 か所で管理し、複数のノードで再利用できます。Connection ドロップダウンには、接続と接続変数の両方が表示されます。
(AWS のみ)Account と Region: 接続が Amazon Web Services (AWS) の場合、アカウントと任意で地域を選択します。設定しない場合、Region は全リージョンがデフォルトになります。

CLI ノードで接続変数を選択すると、CloudFlow はスクリプトを実行する前に、その変数を基になる接続 ID に解決します。接続変数を更新すると、ノード自体を編集しなくても CLI ノードが使用する接続を変更できます。
-
Add script または Edit script を選択してスクリプトエディタを開きます。スクリプトはサンドボックス内で実行されます。接続を選択している場合、選択したプロバイダに応じて
gcloudまたはawsが利用可能であり、認証済みです。標準出力 (stdout) には単一の JSON 値を出力するようにしてください。後続のノードはその出力から個々のフィールドを参照したり、条件で使用したり、次のステ ップに渡したりできます。そのため、有効な JSON を生成することが、CLI ノードの結果をフロー全体で活用するための鍵となります。
フロー内の任意の前段ノードの出力は、
$nodes["<Node name>"]を使って参照できます。ネストされた値に到達するために、例えば$nodes["Manually start"][0].results[0].currentDateのように任意のパスを追加できます。# Reference previous node output in your script with $nodes["<node name>"]
echo $nodes["Manually start"][0].results[0].currentDateヒントスクリプトエディタは
$nodesの補完をサポートしています。これを使ってノード名やパスを挿入してください。 -
Referencing the output: フロー内の他のノードから CLI ノードの出力をどのように参照できるかを定義します。このノードの値を後続のノードで参照する方法(例: + ボタン経由)については、Parameter types を参照してください。
-
Basic referencing: 出力を 1 つのフィールドとして参照します。シンプルな戻り値に使用しま す。
-
Advanced referencing: JSON スキーマを定義し、出力内の特定のフィールドを後続ノードから個別に参照できるようにします。スキーマの定義方法については、Output schema を参照してください。
-
Execution limits
スクリプトは次の制限を持つサンドボックス環境で実行されます。
-
Maximum execution time: 10 秒。これを超えると、ノードはタイムアウトエラーで失敗します。
-
Rate limit: サンドボックスはレート制限を課す場合があります。これを超えると、ノードはレート制限エラーで失敗します。
Examples
次のスクリプトは、GCP 接続が設定されている場合に Google Cloud Storage バケットを一覧表示します。コマンドは JSON を直接出力するため、後続のノードは配列全体やそのフィールドを参照できます(例えば Advanced referencing とスキーマを使用)。
gcloud storage buckets list --format=json --limit=5
AWS 接続とアカウントを選択している場合は、代わりに S3 バケットを一覧表示できます。
aws s3api list-buckets --output json
上流ノード(例えば AWS の Describe instances ノード)の出力を参照してフィルタするには、$nodes を使い、その JSON を処理します。次のスクリプトは、Describe instances という名前の上流ノードから最初の結果を読み取り、running 状態の EC2 インスタンスに絞り込み、後続ノード向けに JSON 配列を出力します。ノード名は自分のものに置き換えてください。
# Filter running EC2 instances from upstream Describe instances node
echo '$nodes["Describe instances"][0].results[0]' | python3 -c "
import json, sys
data = json.load(sys.stdin)
instances = [
{\"InstanceId\": i[\"InstanceId\"], \"State\": i[\"State\"][\"Name\"]}
for r in data.get(\"Reservations\", [])
for i in r.get(\"Instances\", [])
if i.get(\"State\", {}).get(\"Name\") == \"running\"
]
print(json.dumps(instances))
"
$nodes["Describe instances"] 内のノード名は、フロー内の上流ノードの名前(スペースや大文字・小文字を含めて)と完全に一致している必要があります。
See also
- Nodes
- Output schema
- Code node — スクリプトと出力の参照
- Connections
- Variables — 接続変数を含む
- Create a GCP connection
- Create an AWS connection