このページでは、デプロイの作成方法について説明します。デプロイは、構成に定義されたリソース セットをインスタンスにしたものです。デプロイを作成するには、リクエストに有効な構成をする必要があります。デプロイには、さまざまな Google Cloud サービスにわたる多数のリソースを含めることができます。デプロイを作成すると、Deployment Manager が各 Google Cloud API を通じ、記述されたリソースをすべて作成します。
始める前に
- このガイドのコマンドラインの例を使用する場合、gcloud コマンドライン ツールをインストールします。
 - このガイドの API の例を使用する場合は、API アクセスを設定します。
 - 構成を作成します。
 
デプロイメントを作成する
デプロイメントを作成すると、リソースの集合体が含まれたデプロイメントのリソースを作成することになります。各リソースは、リクエスト内の構成に明示的に定義します。
gcloud
Google Cloud CLI で、次のように deployments create コマンドを使用します。
gcloud deployment-manager deployments create my-first-deployment \
    --config vm.yaml
--config フラグは、YAML 構成ファイルへの相対パスを示します。
プロジェクト内の既存のリソースを構成に含めると、デフォルトではそれらのリソースがデプロイによって取得され、デプロイで管理できるようになります。リソースを取得しない場合は、次の gcloud beta コマンドのように --create-policy オプションを使用する必要があります。
gcloud beta deployment-manager deployments create my-first-deployment \
    --config vm.yaml --create-policy CREATE
デプロイを作成する際に使用できるポリシーについては、リソースの作成ポリシーを設定するをご覧ください。
デプロイが正常に作成されると、デプロイの記述を取得できます。
gcloud deployment-manager deployments describe my-first-deployment
API
API で、リクエスト本文にインラインで構成を指定した insert() リクエストを実行します。
POST https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
 "name": "example-config-with-templates",
 "target": {
  "config": {
   "content": "resources:\n- name: vm-created-by-cloud-config\n  type: compute.v1.instance\n  properties:\n    zone: us-central1-a\n    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n    disks:\n    - deviceName: boot\n      type: PERSISTENT\n      boot: true\n      autoDelete: true\n      initializeParams:\n        diskName: disk-created-by-cloud-config\n        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n    networkInterfaces:\n    - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\n"
  }
 }
}
テンプレートをインポートする場合、テンプレートもリクエスト本文の一部として提供する必要があります。たとえば、次の API リクエストでは、target によって vm_template.jinja という名のテンプレートがインポートされています。
POST https://www-www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
 "name": "my-example-config-with-templates-2",
 "target": {
  "config": {
    "content": "imports:\n- path: vm_template.jinja\n\nresources:\n- name: my-vm\n  type: vm_template.jinja"
  },
  "imports": [
   {
    "content": "resources:\n- name: vm-created-by-cloud-config\n  type: compute.v1.instance\n  properties:\n    zone: us-central1-a\n    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n    disks:\n    - deviceName: boot\n      type: PERSISTENT\n      boot: true\n      autoDelete: true\n      initializeParams:\n        diskName: disk-created-by-cloud-config\n        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n    networkInterfaces:\n    - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default",
    "name": "vm_template.jinja"
   }
  ]
 }
}
リソースの作成ポリシーを設定する
新しいデプロイを作成する際に、作成するリソースがプロジェクト内にすでに存在する場合、それらのリソースがデプロイによって取得されます。この場合、Deployment Manager は新しいリソースを作成しません。既存のリソースを取得しない場合は、デプロイで CREATE ポリシーを使用する必要があります。
リソースの作成には次のポリシーを使用できます。
CREATE_OR_ACQUIRE- (デフォルト) Deployment Manager は、プロジェクト内に存在するリソースを取得します。リソースが存在しない場合は、リソースを作成します。リソースを取得するため、Deployment Manager は、作成するリソースのプロパティの構成を確認します。同じプロパティのリソースがすでに存在する場合、Deployment Manager はそのリソースをデプロイの一部として取得します。Deployment Manager が確認するプロパティは、作成するリソースのタイプによって異なります。たとえば、次のようなものがあります。
- リソースの 
name - リソースの 
type - リソースの 
zoneまたはregion(該当する場合) 
プロパティは、リソースに対する
GETAPI リクエストの URL の一部になります。Deployment Manager がリソースの取得に使用するプロパティについては、リソースのGETメソッドに関する API ドキュメントをご覧ください。たとえば、Compute Engine インスタンスの場合、instances.getメソッドのリクエスト URL には、resourceId(構成内のname)、zone、projectが含まれます。- リソースの 
 CREATE- Deployment Manager は、存在しないリソースを作成します。プロジェクトにすでに存在するリソースが構成に含まれていると、デプロイに失敗します。ACQUIRE- Deployment Manager は、CREATE_OR_ACQUIREと同じ条件で既存のリソースを取得します。プロジェクト内にすでに多数のリソースが含まれている場合、それらのリソースを 1 つのデプロイとして管理するには、
ACQUIREポリシーを使用します。リソースを作成する場合と同じく、テンプレートまたは構成で、リソースの必須プロパティを指定する必要があります。プロジェクトに存在しないリソースが構成に含まれていると、デプロイに失敗します。
デプロイのリストを作成する
Google Cloud console、API、Google Cloud CLI のいずれかでデプロイのリストを表示します。
コンソール
Google Cloud コンソールの [デプロイ] ページに移動します。
gcloud
Google Cloud CLI で、次のように deployments list サブコマンドを使用します。
gcloud deployment-manager deployments list
API
API で、デプロイ コレクションに対して空の GET リクエストを送ります。
GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments