- HOME
- 開発者ガイドブック(APIリファレンス)
- Premium/Value/Flexible
- kick_api.shの使用方法
kick_api.shの使用方法
APIご利用方法
利用時の注意事項
APIご利用方法
下記のbashスクリプト(kick_api.sh)をコピーして、以下のパラメータを変更します。
- api_keyおよびsecret_keyパラメータに生成されたキーをコピーします
- addressパラメータにアクセスするホスト名を設定します
◆kick_api.shのダウンロード◆
◆変更箇所◆
———————————————
・エンドポイントURLを変更
———————————
address=”<endpoint url (except ‘/client/api’)>”
———————————
・API_KEYを変更
———————————
api_key=”<api key>”
———————————
・SECRET_KEYを変更
———————————
secret_key=”<secret key>”
———————————————
パラメータを変更したらAPIを実行します。
提供API一覧についてはこちらを参照してください。
スクリプトのusage例を説明します。
例えば、パラメータ指定なしのlistVirtualMachinesコマンドを実行したいときは以下のように実行します。
パラメータを指定したrebootVirtualMachineコマンドを実行したいときは以下のようします。
パラメータやレスポンスタグをスペースデリミッタで続けてください。
# kick_api.sh command=rebootVirtualMachine id=14aa749d-bd33-4a55-a441-e1d4126f2633
以下、スクリプトの記述例になります。
ご利用の際は、こちらからダウンロードいただけます。
———————————————————————————————–
GET / HTTP/1.1 #!/bin/bash # please set your endpoint url (except '/client/api') # ex. "https://portal2-east.cloud-platform.kddi.ne.jp:10443" address="" # please set your api key api_key="" # please set your secret key secret_key="" # debug=true # export LC_ALL='C' # check command, output usage if [ $# -lt 1 ]; then echo "usage: $0 command=... parameter=... parameter=..."; exit; elif [[ $1 != "command="* ]]; then echo "usage: $0 command=... parameter=... parameter=..."; exit; elif [ $1 == "command=" ]; then echo "usage: $0 command=... parameter=... parameter=..."; exit; fi # if include '%' in parameter, exit with error. for par in "$@" do if[ ′echo $par |grep '%'′] then echo "Invalied Parameter" exit 1 fi done command="${1##*command=}" c=$(echo $command | tr "A-Z" "a-z") api_path="/client/api?" # check response format for pretty print for par in "$@" do p="${par##*response=}" p=$(echo $p | tr "A-Z" "a-z") if [ "$p" == "json" ] then json=true break fi done # start making signature ## [ -n "$debug" ] && echo " debug 1 $@" data_array=("$@" "apikey=${api_key}") ## [ -n "$debug" ] && echo " debug 2 ${data_array[@]}" temp1=$(echo -n ${data_array[@]} | tr " " "n" | sort -fd -t'=' | perl -pe's/([^-_.[]~A-Za-z0-9=s])/sprintf("%%%02X", ord($1))/seg'| tr "A-Z" "a-z" | tr "n" "&" ) ## [ "$debug" ] && echo " debug 3 sorted ${temp1[@]}" signature=$(echo -n ${temp1[@]}) signature=${signature%&} ## [ -n "$debug" ] && echo " debug 4 $signature" signature=$(echo -n $signature | openssl sha1 -binary -hmac $secret_key | openssl base64 ) ## [ -n "$debug" ] && echo " debug 5 signature=$signature" signature=$(echo -n $signature | perl -pe's/([^-_.~A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg') # [ -n "$debug" ] && echo " debug 6 urlencoded signature=$signature" url=${address}${api_path}$(echo -n $@ | sed s/'+'/'%2B'/g | tr " " "&")"&"apikey=$api_key"&"signature=$signature [ -n "$debug" ] && echo " SEND URL: $url" if [[ -n $json ]] then curl ---globoff ${url} | python -mjson.tool else curl ---globoff ${url} | xmllint ---format - fi # [ -n "$debug" ] && curl -i ---globoff ${url}
正常に実行されると以下が表示されます。
<表示形式:XMLの場合>
————————————————————————–
$ ./kick_api.sh command=rebootVirtualMachine id=3e94e278-4c0f-4d0e-9542-28055720af8
<?xml version=”1.0″ encoding=”UTF-8″?>
<rebootvirtualmachineresponse cloud-stack-version=”4.3.0.2″>
<jobid>afc0ae20-54e4-49f0-a5d2-d97ec3b3012c</jobid>
</rebootvirtualmachineresponse>
————————————————————————–
<表示形式:JSONの場合>
————————————————————————–
$ ./kick_api.sh command=rebootVirtualMachine id=3e94e278-4c0f-4d0e-9542-28055720af82 response=json
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 85 0 85 0 0 713 0 –:–:– –:–:– –:–:– 3400
{
“rebootvirtualmachineresponse”: {
“jobid”: “9c29abed-5808-4c9c-8bb7-7260621be5e1”
}
}
———————————————————————————————–
正常な応答が返ってくることを確認してください。
正常な応答が返ってこない場合は、APIエラー発生時切り分けフローに記載されている連絡先にご連絡ください。
利用時の注意事項
※APIコマンド引数として、「%」は使用しないでください。