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リクエストを送信します。

引数

説明

url

string リクエストを送信するURL。

timeout?

number リクエストのタイムアウト時間(秒)。省略時は60秒、最大値は180秒、最小値は5秒

headers?

Map<string, string> リクエストヘッダー。省略可

query?

Map<string, string> クエリパラメーター。省略可

戻り値

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リクエストを送信します。

引数

説明

url

string リクエストを送信するURL。

timeout?

number リクエストのタイムアウト時間(秒)。省略時は60秒、最大値は180秒、最小値は5秒

headers?

Map<string, string> リクエストヘッダー。省略可

query?

Map<string, string> クエリパラメーター。省略可

body?

Map<string, any> リクエストボディ。省略可

戻り値

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リクエストを送信します。

引数

説明

url

string リクエストを送信するURL。

timeout?

number リクエストのタイムアウト時間(秒)。省略時は60秒、最大値は180秒、最小値は5秒

headers?

Map<string, string> リクエストヘッダー。省略可

query?

Map<string, string> クエリパラメーター。省略可

body?

Map<string, any> リクエストボディ。省略可

戻り値

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リクエストを送信します。

引数

説明

url

string リクエストを送信するURL。

timeout?

number リクエストのタイムアウト時間(秒)。省略時は60秒、最大値は180秒、最小値は5秒

headers?

Map<string, string> リクエストヘッダー。省略可

query?

Map<string, string> クエリパラメーター。省略可

body?

Map<string, any> リクエストボディ。(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リクエストを送信します。

引数

説明

url

string リクエストを送信するURL。

timeout?

number リクエストのタイムアウト時間(秒)。省略時は60秒、最大値は180秒、最小値は5秒

headers?

Map<string, string> リクエストヘッダー。省略可

query?

Map<string, string> クエリパラメーター。省略可

body?

Map<string, any> リクエストボディ。省略可

戻り値

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.gethttp.post などの特定の関数を使う方が簡単です。 詳細については、HTTPリクエストの作成 を参照してください。

引数

説明

method

string リクエストメソッド。

url

string リクエストを送信するURL。

timeout?

number リクエストのタイムアウト時間(秒)。省略時は60秒、最大値は180秒、最小値は5秒

headers?

Map<string, string> リクエストヘッダー。省略可

query?

Map<string, string> クエリパラメーター。省略可

body?

Map<string, any> リクエストボディ。省略可

戻り値

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のドキュメントを参照してください。

引数

説明

endpoint

string APIのエンドポイントURI。
例: https://secure.sakura.ad.jp/cloud/zone/tk1b/api/workflow/1.0/workflows/

method

string リクエストメソッド。

timeout?

number リクエストのタイムアウト時間(秒)。省略時は60秒、最大値は180秒、最小値は5秒

headers?

Map<string, string> リクエストヘッダー。省略可

query?

Map<string, string> クエリパラメーター。省略可

body?

Map<string, any> リクエストボディ。省略可

戻り値

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キーとシークレット保管庫の作成が必要です。
詳しくは シークレットマネージャ を参考にしてください。

引数

説明

vaultResourceId

number シークレット保管庫のリソースID。

secretName

string 取得するシークレット名。

secretVersion?

string 取得するシークレットのバージョン。省略可

戻り値

string シークレットの値。

steps:
  getSecret:
    call: sakuraCloud.secret
    args:
      vaultResourceId: 123456789012 # 任意のシークレット保管庫のリソースIDに変更
      secretName: "your-secret-name" # 任意のシークレット名に変更
    result: secretValue

listServers

指定された条件でサーバの一覧を取得します。

引数

説明

zone

string サーバが存在するゾーン名。

戻り値

Map<string, any> APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。

steps:
  listServers:
    call: sakuraCloud.listServers
    args:
      zone: is1a # 任意のゾーンに変更
    result: response
  done:
    return: ${response}

serverStatus

指定されたサーバの起動状態を取得します。

引数

説明

zone

string サーバが存在するゾーン名。

serverId

number 状態を取得するサーバのID。

戻り値

Map<string, any> APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。

steps:
  serverStatus:
    call: sakuraCloud.serverStatus
    args:
      zone: is1a # 任意のゾーンに変更
      serverId: 123456789012 # 任意のサーバIDに変更
    result: response
  done:
    return: ${response}

startServer

指定されたサーバを起動します。

引数

説明

zone

string サーバが存在するゾーン名。

serverId

number 起動するサーバのID。

戻り値

Map<string, any> APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。

steps:
  startServer:
    call: sakuraCloud.startServer
    args:
      zone: is1a # 任意のゾーンに変更
      serverId: 123456789012 # 任意のサーバIDに変更
    result: response
  done:
    return: ${response}

stopServer

指定されたサーバを停止します。

引数

説明

zone

string サーバが存在するゾーン名。

serverId

number 停止するサーバのID。

戻り値

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) を参考にしてください。

引数

説明

path

string APIのエンドポイントURI。
例: '/:serverId/power'

method

string リクエストメソッド。

zone

string サーバーが存在するゾーン名。

serverId

number 操作するサーバーのID。
pathに直接値を埋め込むことも可能です。

timeout

number リクエストのタイムアウト時間(秒)。省略時は60秒、最大値は180秒、最小値は5秒

headers

Map<string, string> リクエストヘッダー。省略可

query

Map<string, string> クエリパラメーター。省略可

body

Map<string, any> リクエストボディ。省略可

戻り値

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 クイックスタート を参照してください。

引数

説明

name

アプリケーション名 (string, 必須)

timeout_seconds?

タイムアウト秒数 (number, 省略時60)

port

公開ポート番号 (number, 必須)

min_scale?

最小スケール数 (number, 省略時0)

max_scale?

最大スケール数 (number, 省略時10)

components

コンポーネント定義 (object, 必須)

components[].name

コンポーネント名 (string, 必須)

components[].max_cpu?

割り当てCPU (string, 省略時"0.1")

components[].max_memory?

割り当てメモリ (string, 省略時"256Mi")

components[].deploy_source

デプロイ元情報 (object, 必須)

components[].deploy_source.container_registry

コンテナレジストリ情報 (object, 必須)

components[].deploy_source.container_registry.image

イメージ名 (string, 必須)

components[].deploy_source.container_registry.server

レジストリサーバ (string)

components[].deploy_source.container_registry.username

レジストリユーザー名 (string)

components[].deploy_source.container_registry.password

レジストリパスワード (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

アプリケーションを削除します。

引数

説明

appId

string 削除するアプリケーションのID。

戻り値

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を呼び出します。

引数

説明

path

string APIのエンドポイントURI。例: /applications
pathは AppRun APIドキュメント を参照してください。

method

string リクエストメソッド。

timeout?

number リクエストのタイムアウト時間(秒)。省略時は60秒、最大値は180秒、最小値は5秒

headers?

Map<string, string> リクエストヘッダー。省略可

query?

Map<string, string> クエリパラメーター。省略可

body?

Map<string, any> リクエストボディ。省略可

戻り値

Map<string, any> APIリクエストの結果。
status: HTTPステータスコード。
body: レスポンスボディ。

steps:
  request:
    call: apprun.request
    args:
      path: "/applications"
      method: GET
    result: response

  done:
    return: ${response}

sys

sleep

指定した秒数分実行を一時停止します。

引数

説明

seconds

number
実行を一時停止する秒数を指定します。
0以下の数が指定された場合は即座に終了します。

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

指定された時間まで待機します。

引数

説明

date

string
実行が一時停止されるまでの時間をISO 8601フォーマットで指定します。
実行時のサーバ時刻での最大1年後までが設定できます。

meta:
  description: 時間指定待機
steps:
  set:
    assign:
      setDate: ${"2025-01-01T00:00:00+09:00"} # 任意の未来の時間に変更
  sleepUntil:
    call: sys.sleepUntil
    args:
      date: ${setDate}
  done:
    return: "done"