コントロールするためのAPIです。VMインスタンス・ディスク・ファイアウォールなどIaas環境を一通りAPIで構築できます。compute)及びUI(ディベロッパコンソール)と同様なリソースにアクセスできます。次の26種類のリソースが用意されています。静的IPアドレスを管理します。名前とIPアドレスを紐付けてVMインスタンスなどに紐付けます。バックエンドサービスの管理を行います。(ここでいうBackendはGAEのBackendsではない)バックエンドサービスは、HTTPロードバランサの内部にあるインスタンスの集合体です。VMインスタンスを動かすためのディスクを管理します。スタンダードタイプとSSDタイプが選択できます。Googleが提供しているVMインスタンスを乗せるストレージのディスクタイプ情報を取得します。スタンダードタイプとSSDタイプがあります。内向きのパケットに対してファイアウォールを管理します。ネットワークロードバランシングのフォワーディングルールを管理します。グローバルアドレスを管理します。HTTPロードバランシングのフォワーディングルールを管理します。グローバルオペレーションはグローバルリソース(イメージ、ゾーン、ネットワーク、ファイアウォール、カーネル、スナップショットなど)に対してのみ行ったオペレーションです。その一覧を取得します。VMイメージを管理します。VMインスタンスを管理します。インスタンステンプレート(VMインスタンスの設定を定義しているもの)を管理します。Managerでも同様なサービスを提供していますがこれはインスタンスのみの設定です。ソフトウェアの使用に関わるライセンスを取得します。VMインスタンスのマシンタイプ一覧を取得します。ネットワークを管理します。プロジェクトに対しての管理をします。現在のリソースの容量などが一覧で取得できます。各リージョンでのオペレーションの結果一覧を取得することができます。Googleが提供しているリージョンの一覧を取得します。ネットワークルーティングを管理します。ディスクのスナップショットを取得及び削除できます。スナップショットの生成はcompute.disks.createSnapshotで行います。Proxyを追加及び管理します。ターゲットインスタンスを管理します。ネットワークロードバランサのターゲットプールを管理します。Httpロードバランサで使用するURLマップを管理します。各ゾーンでのオペレーションの結果一覧を取得することができます。Googleが提供しているゾーンの一覧を取得します。compute)またはUI(ディベロッパコンソール)でのアクセスもリクエストに加算されます。OAuth2.0でアクセスするとき次のスコープを指定します。Stotageのデータを閲覧・管理するスコープ」も追加する必要があります。スコープの種類は以下です。各リソースには、基本的には次のメソッドが用意されています。他にそれぞれのリソース固有のメソッドも存在します。リージョン及びゾーンを指定して、そのリージョン及びゾーン内のリソース一覧を取得します。全てのリージョン及びゾーンのリソース一覧を取得します。リージョン及びゾーンと、リソースの名前を指定してそのリソースを単体で取得します。リージョン及びゾーンと、リソースの名前を指定してそのリソースを削除します。リージョン及びゾーンと、リソースの名前を指定して新しいリソースを追加します。いう便利なサービスで試してみたいと思います。このサービス26種類全てのリソースのAPIをご紹介できませんが、今回は以下の5つの代表的なリソースに絞ってご紹介します。APIを有効にします。Diskを試してみます。リソースを閲覧・管理するスコープ」だけ指定すればアクセスできます。メソッド:compute.disks.insert操作内容:Googleが提供しているディスクタイプを指定して空の10GBディスクを生成します。リクエストで指定しているのは、ディスクの名前、説明文、ディスクサイズ、ディスクタイプです。ディスクタイプは、DiskTypesリソースで取得したselfLinkから取ってきたURLのcontentsをwwwに書き換えて使用しています。Consoleでディスクが生成されているのか確認します。disk-1が生成されているのが確認されました。メソッド:compute.disks.aggregated操作内容:プロジェクト内の全てのゾーンでのディスク一覧を取得します。}}asia-east1-aゾーンで作成したdisk-1が取得されています。メソッド:compute.disks.createSnapshot操作内容:ディスクのスナップショット(その瞬間のディスクの内容)を作成します。指定するのは、スナップショットの名前だけです。Consoleでスナップショットが生成されているのか確認します。snapshot-1が生成されているのが確認されました。リソースを閲覧・管理するスコープ」だけ指定すればアクセスできます。メソッド:compute.firewalls.insert操作内容:ファイアウォール設定を追加します。ファイアウォールの名前と、プロトコル・ポート番号・IPアドレスを指定して設定します。どこからでもアクセスできるように設定している例です。Consoleでファイアウォールが生成されているのか確認します。default-allow-rdpが指定した通りに生成されました。メソッド:compute.firewalls.update操作内容:ファイアウォール設定を変更します。一度作成したファイアウォールはupdateで内容を変更します。ファイアウォールの名前を指定して、43345番ポートも許可します。"https://www.googleapis.com/compute/v1/projects/my-gce-project/global/operations/operation-1415867609135-507b95de43798-227ed2ff-5825c18b"}再度、default-allow-rdpを確認すると、43345番ポートが追加されていました。Imagesメソッド:compute.images.insert操作内容:ディスクからイメージを作成します。イメージはグローバルリソースなのでゾーンは指定しません。下の例では、disk-1からimage-1を生成しています。"https://www.googleapis.com/compute/v1/projects/my-gce-project/global/operations/operation-1415873465993-507babafcc729-a8e1c03a-d446cc56"}メソッド:compute.images.list操作内容:イメージの一覧を取得します。]}先ほど作成したイメージが一覧で確認できました。Instancesメソッド:compute.instances.insert操作内容:10GBのPERSISTENTディスクを用意してグローバルなイメージ(debian-7-wheezy-v20141108)をインストールしてVMインスタンスを生成します。ネットワークインタフェースは、デフォルトで用意しているdefaulを使用します。"https://www.googleapis.com/compute/v1/projects/my-gce-project/zones/us-central1-a/operations/operation-1416031908336-507df9ee31180-7220f25b-27f05a98"}GCEインスタンスのinstance-3が生成されていました。詳細を確認してみます。ConsoleでVMインスタンスが生成されているのが確認できました。Networksメソッド:compute.networks.list操作内容:プロジェクト内にあるネットワーク一覧を取得します。]}メソッド:compute.networks.insert操作内容:ネットワークを追加します。ネットワークIPアドレスとゲートウェイのIPアドレスを指定します。下の例では、network-1という名前で10.244.0.0/16のネットワークを作成しています。Consoleでnetwork-1が生成されているのが確認できました。Explorerを使ってみましたが、クライアントライブラリも公開されてますので、実際にプログラムから利用する場合はそちらを使って実装することになるでしょう。GCEにおける自動化のご要望や、運用管理含めてご相談があれば、クラウドエースまで是非お問い合わせ下さい。