APIのご利用にあたって
ご利用条件
GMOクラウドPublicをご契約中のお客さま
利用用途
- APIを利用して、仮想サーバーの作成、起動、停止などの自動化を行う
- APIを利用して、システム構築や運用・管理アプリケーションの開発を行う
- APIを活用して、GMOクラウドPublicを利用する、あるいは利用する方のための開発を行う
前提知識
APIのご利用にあたっては、以下の知識を持つ方を対象とさせていただいております。
- Webサービスの基本構造に関する知識(W3SchoolsWebServicesTutorial参照)
- プログラミングに関する知識
- GMOクラウド Publicでのサーバー構築・運用に関する知識
事前準備
APIを利用するためには、APIポータルから"Access Key ID"と"Secret Access Key"を取得する必要があります。
APIポータルへのログインには、GMOクラウドPublic クラウドポータルへログインする際の"ユーザーID"と"パスワード"と同じ組み合わせの文字列を使用します。
"Access Key ID" の破棄・再発行や接続制限もAPIポータルで行えます。
API のご利用の際は、不正利用防止のために接続元(呼び出し元)のIP アドレスを、このGMO クラウドPublic API ポータルから事前に登録しておく必要がありますのでご注意ください。
APIの利用方法
APIを利用するためには、HTTPプロトコルを通して Query Requests (GET/POST可)によりリクエストを行う必要があります。全てのリクエストは以下の形式に沿って記述してください。
https://api.gmocloud.com/ (Cloud-Zone ID) /?Action=(実行機能名)
&(ファンクションパラメーター)
&(Common Parameters)
- "Cloud-Zone ID" はGMOクラウドPublicのマルチロケーションサービスにおけるクラウドゾーンに割り当てている識別子です。以下の相対表に沿って適宜読み替えてください。
ウェブサイトとクラウドポータル上での表記 | Cloud-Zone ID |
---|---|
東京RED | jp002 |
東京BLUE | jp003 |
サンノゼRED | us001 |
- "ファンクションパラメーター" は サポートサイトにて以下の形式で説明しています。
セクション | 説明 |
---|---|
実行機能名 | リクエストの一部として渡される実際の機能名 |
機能の処理概要 | 機能がどのようなことをするかの概要 |
リクエストパラメーター | 実行要求の必須およびオプションのパラメーターのリスト |
レスポンスオブジェクト | 応答されるパラメーターの内容のリスト |
リクエストサンプル | Actionとリクエストパラメーターを含むリクエストのサンプル |
レスポンスサンプル | JSON形式で応答される内容のサンプル |
- "Common Parameters" は以下の構成で成り立っています。
&AccessKeyId=(Access Key ID)
&Signature=(Signature)
&Version=1.0
- "Access Key ID" はAPIポータルから取得した文字列を使用してください。
"Signature" は以下の方法により算出して代入してください。
Base64(SignatureMethod によるハッシュ(SecretAccessKey, StringToSign) )
- "SignatureMethod" は HmacSHA256 が指定可能です。
- "SecretAccessKey" は GMO クラウドPublic API ポータルから取得した Secret Access Key の文字列を代入してください。
- "StringToSign" は以下の方法により算出して代入してください。
StringToSign = | HTTP リクエストメソッド + \n + api.gmocloud.com + \n + / + (Cloud-Zone ID) + / + \n + "正規化された QueryString" |
"正規化された QueryString"は以下の方により生成してください。
- パラメーター名をUTF-8 の自然順序でソートします
- パラメーター名と値をURL エンコード(パーセントエンコード)します
- パラメーター名と値をイコール ( = ) で結合します
- パラメーター名と値の組み合わせをアンパサント( & )で結合します
- Timestamp を指定して、リクエストのセキュリティ強度を高くすることができます。Timestamp パラメーターが設定されている場合の振る舞いは以下の通りです。
- フォーマットが異なる場合はAPIの実行を許可しない
- APIサーバーとの処理時間の差が±15秒以内であれば実行を許可
- 条件に一致する場合は接続許可IPアドレス以外からのリクエストでも実行を許可
- 条件に一致しない場合は接続許可IPアドレスからのリクエストでも実行を許可しない
- フォーマットは ISO8601の日付と時刻の組み合わせ表記に準じます
Timestamp=2012-08-31T12:34:56+09:00
Timestamp=2012-08-31T12:34:56
APIはリクエストごとに適切なHTTPステータスコードを返します。
セクション | 説明 |
---|---|
200 OK | リクエストが正常に完了した状態。 |
201 Scheduled | リクエストを受け付け、処理待ちの状態 |
403 Forbidden | リクエストは正しいものの、処理ができなかった状態 |
404 Not Found | URLが誤っているか、リクエストしたリソースのいづれかが存在しない状態 |
422 Unprocessable Entry | リクエストで送られたパラメーターが誤っている状態 |
500 Internal Server Error |
レスポンスはJSON形式でBODYで返します。
それぞれのリクエストに対するレスポンスはサンプルをご参照ください。
APIの利用方法
GMO クラウドPublic API を利用の際のリクエストサンプルとレスポンスサンプルの文字 列中、個別の環境に依存する値について抽象化しています。そのため以下の表に基づいて 適宜読み替えを行ってください。
抽象化例 | 説明 |
---|---|
イタリックで Cloud-Zone-ID | リクエスト文中のファンクションパラメーターの うち、クラウドゾーンに割り当てた識別子 |
イタリックで AccessKeyID | リクエスト文中のファンクションパラメーターの うち、 GMO クラウドPublic API ポータルか ら取得した Access Key ID の文字列 |
イタリックで Signature | リクエスト文中のファンクションパラメーターの うち、所定の算式に基づいて生成した Signature の文字列 |
イタリックで ●●-Label-example | リクエスト文中並びにレスポンス文中における、 ハイパーバイザー、仮想サーバー、IP アドレス、 ネットワークインターフェース、システムテンプ レート、ユーザーテンプレートのラベルの例示 |
イタリックで Identifier_of_●● | リクエスト文中並びにレスポンス文中における、 ハイパーバイザー、仮想サーバー、 IP アドレス、 ネットワークインターフェース、システムテンプ レート、ユーザーテンプレートの識別子の例示 |
イタリックで ID_of_●● | リクエスト文中並びにレスポンス文中における、 ハイパーバイザー、仮想サーバー、 IP アドレス、 ネットワークインターフェース、システムテンプ レート、ユーザーテンプレートのID の例示 |
イタリックで 192.168.0.100 | リクエスト文中並びにレスポンス文中における、 IP アドレスの例示 |
イタリックで gmocloud.example.jp | リクエスト文中並びにレスポンス文中における、 ホスト名やドメイン名の例示 |