restコマンド(上級者向け)


UsacloudではさくらのクラウドAPIを直接呼び出すためのusacloud restコマンドをサポートしています。

$ usacloud rest -h
Usage:
  usacloud rest [flags]
  usacloud rest [command]

Available Commands:
 === Basic Commands ===
    request     

Flags:
  -d, --data string           
  -h, --help                  help for rest
  -X, --method string         (*required) options: [get/post/put/delete/GET/POST/PUT/DELETE] (default "get")
      --query string          Query for JSON output
      --query-driver string   Name of the driver that handles queries to JSON output options: [jmespath/jq]
      --zone string

restコマンドの挙動

usacloud restコマンドはUsacloudのプロファイルやコマンドラインオプションなどからAPIキーなどの設定を参照してAPIリクエストを行うためのコマンドです。
Usacloudコマンドによる抽象化を挟まずに直接APIリクエストを行い、レスポンスをそのまま出力します。

さくらのクラウド APIドキュメントを参照しながらAPIリクエストを行うようなユースケースを想定しています。

restコマンドの書式

以下の書式で実行します。

$ usacloud rest [オプション] <URL>

利用できるオプションは以下のとおりです。

  • -d/--data: リクエストパラメータ。JSON文字列またはJSONを記述したファイルへのパスを指定
    (curlコマンドの-dオプションのような@ファイルパス形式には対応していません)
  • -X/--method: リクエストのHTTPメソッド。GET/POST/PUT/DELETEが指定可能(小文字でもOK)
  • --zone: リクエスト先ゾーン、引数にhttps://で始まるURLを指定した場合は無効
  • --query: 出力に対しJMESPath or jqで加工する際のクエリ文字列。文字列またはクエリを記述したファイルへのパスを指定
  • --query-driver: --queryの処理に使用するドライバー。jmespath/jqが指定可能

Note

--query-driver未指定時はプロファイルのDefaultQueryDriverの値が利用されます。
(DefaultQueryDriverのデフォルト値:jmespath)

引数には以下のパターンでURLを指定します。

  • パターン1: URL全体を指定 - https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server
  • パターン2: 部分的に指定 - /server

パターン2の場合、プロファイルからAPIルートURL(デフォルトはhttps://secure.sakura.ad.jp/cloud/zone)やゾーンなどを読み出してURLを補完します。

利用例

# 特定サーバの電源をOFFにする
$ export SERVER_ID=123456789012
$ usacloud rest -X DELETE /server/$SERVER_ID/power