- 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コマンド引数として、「%」は使用しないでください。
