callリファレンス
[更新: 2025年10月20日]
ワークフローのステップの一つであるcallで使える関数について記載します。
feed
parse
XML形式のデータ(Atomフィード)を解析して、フィードのタイトルとその中に含まれるエントリー(項目)をJSON形式のデータに変換します。
引数 |
説明 |
|---|---|
xml |
解析するXML形式のデータ |
例
steps:
get:
call: http.get
args:
url: ${"https://sample-feeds.rowanmanning.com/examples/64968fb0e3685ef07a3e2a27b8d64c01/feed.xml"}
timeout: 10
headers:
"Accept": "application/rss+xml"
result: feedData
parse:
call: feed.parse
args:
xml: ${feedData.body}
result: parsedFeed
done:
return: ${parsedFeed.title + " > " + parsedFeed.entries[0].title + " @ " + parsedFeed.entries[0].updated}
# return "Example Feed > Atom-Powered Robots Run Amok @ 2003-12-13T18:30:02.000Z"
http
get
指定されたURLにHTTP GETリクエストを送信します。
引数 |
説明 |
|---|---|
|
|
|
|
|
|
|
|
戻り値
Map<string, any>
HTTPリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
get:
call: http.get
args:
url: ${"https://httpbin.org/get"}
timeout: 10
headers:
"Content-Type": application/json
query:
"hl": "ja"
"q": "q"
result: response
done:
return: ${response}
post
指定されたURLにHTTP POSTリクエストを送信します。
引数 |
説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
戻り値
Map<string, any>
HTTPリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
post:
call: http.post
args:
url: ${"https://httpbin.org/post"}
timeout: 10
headers:
"Content-Type": application/json
body:
"key": "value"
result: response
done:
return: ${response}
put
指定されたURLにHTTP PUTリクエストを送信します。
引数 |
説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
戻り値
Map<string, any>
HTTPリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
put:
call: http.put
args:
url: ${"https://httpbin.org/put"}
timeout: 10
headers:
"Content-Type": application/json
body:
"key": "value"
result: response
done:
return: ${response}
delete
指定されたURLにHTTP DELETEリクエストを送信します。
引数 |
説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
戻り値
Map<string, any>
HTTPリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
delete:
call: http.delete
args:
url: ${"https://httpbin.org/delete"}
timeout: 10
headers:
"Content-Type": application/json
body:
"key": "value"
result: response
done:
return: ${response}
patch
指定されたURLにHTTP PATCHリクエストを送信します。
引数 |
説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
戻り値
Map<string, any>
HTTPリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
patch:
call: http.patch
args:
url: ${"https://httpbin.org/patch"}
timeout: 10
headers:
"Content-Type": application/json
body:
"key": "value"
result: response
done:
return: ${response}
request
HTTPリクエストを送信します。 これは汎用関数ですが、ほとんどの場合、 http.get や http.post などの特定の関数を使う方が簡単です。 詳細については、HTTPリクエストの作成 を参照してください。
引数 |
説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
戻り値
Map<string, any>
HTTPリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
request:
call: http.request
args:
method: GET
url: ${"https://httpbin.org/get"}
timeout: 10
headers:
"Content-Type": application/json
query:
"hl": "ja"
"q": "q"
result: response
done:
return: ${response}
sakuraCloud
実行にはワークフローにサービスプリンシパルが正常に関連付けられている必要があります。
ワークフローに紐づけられているサービスプリンシパルは呼び出すサービスの各権限が付与されている必要があります。
request
さくらクラウドのAPIを呼び出します。 詳細については各APIのドキュメントを参照してください。
引数 |
説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
戻り値
Map<string, any>
APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
getWorkflows:
call: sakuraCloud.request
args:
endpoint: https://secure.sakura.ad.jp/cloud/zone/tk1b/api/workflow/1.0/workflows/
method: GET
headers:
Accept: "application/json"
timeout: 30
result: response
done:
return: ${json.decode(response.body)}
secret
さくらのクラウドのシークレットマネージャー保管庫にあるシークレット情報の取得をすることができます。
事前にKMSキーとシークレット保管庫の作成が必要です。
詳しくは シークレットマネージャ を参考にしてください。
引数 |
説明 |
|---|---|
|
|
|
|
|
|
戻り値
string
シークレットの値。
例
steps:
getSecret:
call: sakuraCloud.secret
args:
vaultResourceId: 123456789012 # 任意のシークレット保管庫のリソースIDに変更
secretName: "your-secret-name" # 任意のシークレット名に変更
result: secretValue
listServers
指定された条件でサーバの一覧を取得します。
引数 |
説明 |
|---|---|
|
|
戻り値
Map<string, any>
APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
listServers:
call: sakuraCloud.listServers
args:
zone: is1a # 任意のゾーンに変更
result: response
done:
return: ${response}
serverStatus
指定されたサーバの起動状態を取得します。
引数 |
説明 |
|---|---|
|
|
|
|
戻り値
Map<string, any>
APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
serverStatus:
call: sakuraCloud.serverStatus
args:
zone: is1a # 任意のゾーンに変更
serverId: 123456789012 # 任意のサーバIDに変更
result: response
done:
return: ${response}
startServer
指定されたサーバを起動します。
引数 |
説明 |
|---|---|
|
|
|
|
戻り値
Map<string, any>
APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
startServer:
call: sakuraCloud.startServer
args:
zone: is1a # 任意のゾーンに変更
serverId: 123456789012 # 任意のサーバIDに変更
result: response
done:
return: ${response}
stopServer
指定されたサーバを停止します。
引数 |
説明 |
|---|---|
|
|
|
|
戻り値
Map<string, any>
APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
stopServer:
call: sakuraCloud.stopServer
args:
zone: is1a # 任意のゾーンに変更
serverId: 123456789012 # 任意のサーバIDに変更
result: response
done:
return: ${response}
server
さくらのクラウドのサーバ関連のAPIを操作します。
指定できるpathについては、 さくらのクラウドAPIドキュメント(サーバ関連API) を参考にしてください。
引数 |
説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
戻り値
Map<string, any>
APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
getServer:
call: sakuraCloud.server
args:
zone: is1a # 任意のゾーンに変更
path: /123456789012/power # :serverIdまたは任意のサーバIDを指定
method: GET
result: response
done:
return: ${response}
apprun
実行にはワークフローにサービスプリンシパルが正常に関連付けられている必要があります。
ワークフローに紐づけられているサービスプリンシパルはAppRunの権限が付与されている必要があります。
create
アプリケーションを起動します。 コンテナレジストリにイメージがプッシュされている必要があります。詳細は AppRun クイックスタート を参照してください。
引数 |
説明 |
|---|---|
|
アプリケーション名 (string, 必須) |
|
タイムアウト秒数 (number, 省略時60) |
|
公開ポート番号 (number, 必須) |
|
最小スケール数 (number, 省略時0) |
|
最大スケール数 (number, 省略時10) |
|
コンポーネント定義 (object, 必須) |
|
コンポーネント名 (string, 必須) |
|
割り当てCPU (string, 省略時"0.1") |
|
割り当てメモリ (string, 省略時"256Mi") |
|
デプロイ元情報 (object, 必須) |
|
コンテナレジストリ情報 (object, 必須) |
|
イメージ名 (string, 必須) |
|
レジストリサーバ (string) |
|
レジストリユーザー名 (string) |
|
レジストリパスワード (string) |
※詳細は AppRun APIドキュメント - アプリケーション作成 も参照してください。
戻り値
Map<string, any>
AppRun APIのレスポンスボディ(JSON)をそのまま返します。
例
steps:
createApp:
call: apprun.create
args:
name: "my-app"
timeout_seconds: 60
port: 8080
min_scale: 0
max_scale: 10
components:
- name: "my-component"
max_cpu: "0.1"
max_memory: "256Mi"
deploy_source:
container_registry:
image: "xxx.sakuracr.jp/my-app:latest"
server: "xxx.sakuracr.jp"
username: "xxx"
password: "xxx"
result: response
done:
return: ${response}
delete
アプリケーションを削除します。
引数 |
説明 |
|---|---|
|
|
戻り値
Map<string, any>
APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
deleteApp:
call: apprun.delete
args:
appId: "your-app-id" # 削除するアプリケーションIDに変更
result: response
done:
return: ${response}
request
さくらのAppRunのAPIを呼び出します。
引数 |
説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
戻り値
Map<string, any>
APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。
例
steps:
request:
call: apprun.request
args:
path: "/applications"
method: GET
result: response
done:
return: ${response}
sys
sleep
指定した秒数分実行を一時停止します。
引数 |
説明 |
|---|---|
|
|
例
meta:
description: 秒数ループ
steps:
seconds:
for:
in: '${array.range(10)}'
as: i
steps:
push:
assign:
message: "loop ${i}"
sleep:
call: sys.sleep
args:
seconds: 1
sleepUntil
指定された時間まで待機します。
引数 |
説明 |
|---|---|
|
|
例
meta:
description: 時間指定待機
steps:
set:
assign:
setDate: ${"2025-01-01T00:00:00+09:00"} # 任意の未来の時間に変更
sleepUntil:
call: sys.sleepUntil
args:
date: ${setDate}
done:
return: "done"