プロジェクトの作成と管理

Google Cloud Platform プロジェクトは、API の管理、課金の有効化、共同編集者の追加と削除、Cloud Platform リソースの権限の管理など、すべての Cloud Platform サービスの作成、有効化、使用の基礎となります。

このページでは、Resource Manager API と Google Cloud Platform Console を使用して Cloud Platform プロジェクトを作成および管理する方法について説明します。

始める前に

Cloud Platform プロジェクトの概要をご覧ください。

プロジェクトの作成

プロジェクトを作成するには、resourcemanager.projects.create 権限が必要です。組織が作成されると、この権限を持つプロジェクト作成者の役割がドメイン全体に付与されます。プロジェクト作成者の役割を個人に付与し、組織全体でのアクセスを制限する方法については、デフォルトの組織役割の管理ページをご覧ください。

GCP Console または projects.create() メソッドを使用して新しいプロジェクトを作成できます。

Console

新しいプロジェクトを作成するには:

  1. GCP Console の [リソースの管理] ページに移動します。
    [リソースの管理] ページに移動
  2. ページの上部にあるプルダウンから、プロジェクトを作成する組織を選択します。
  3. [プロジェクトの作成] をクリックします。
  4. 表示された [新しいプロジェクト] ウィンドウで、プロジェクト名を入力し、該当する請求先アカウントを選択します。
  5. プロジェクトをフォルダに追加する場合は、[場所] ボックスに該当するフォルダ名を入力します。
  6. 新しいプロジェクトの詳細を入力し終えたら、[作成] をクリックします。

API

projects.create() メソッドで新しいプロジェクトを作成する場合、プロジェクト ID に特定の単語を使用することはできません。たとえば、sslgoogle は使用できません。制限付きの単語を使用すると、リクエストから INVALID_ARGUMENT エラーが返されます。

以下のリクエストではプロジェクトは作成されますが、このプロジェクトは請求アカウントに自動的には関連付けられません。[projects.updateBillingInfo](/billing/reference/rest/v1/projects/updateBillingInfo)メソッドを使用するか、プロジェクトに関連付けられている請求先アカウントを設定または更新します。

プロジェクト リクエストを作成する:

POST https://cloudresourcemanager.googleapis.com/v1/projects/
Authorization: *************
Content-Type: application/json

{
    "projectId": "our-project-123",
    "name": "my project",
    "labels": {
      "mylabel": "prod"
    }
}

プロジェクト レスポンスを作成する:

{
    "name": "operations/pc.123456789",
}

オペレーション リクエストを取得する:

GET https://cloudresourcemanager.googleapis.com/v1/operations/pc.123456789
Authorization: *************
Content-Type: application/json

オペレーション レスポンスを取得する:

{
    "name": "operations/pc.123456789",
    "done": true,
    "response": {
        "@type": "type.googleapis.com/google.cloudresourcemanager.v1.Project",
        "projectNumber": "464036093014",
        "projectId": "our-project-123",
        "lifecycleState": "ACTIVE",
        "name": "my project",
        "labels": {
        "mylabel": "prod"
        },
    "createTime": "2016-01-07T21:59:43.314Z"
    }
}

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

operation = crm.projects().create(
body={
    'project_id': flags.projectId,
    'name': 'my project'
}).execute()

...

プロジェクトの割り当ての管理

上記のプロジェクトの作成の手順に沿って新しいプロジェクトを作成するときに、割り当てに残っているプロジェクト数を確認できます。プロジェクトを作成するときに、次の通知と一緒に残りのプロジェクト数が表示されます。

割り当てのプロジェクトに追加容量が必要な場合には、課金の割り当て増加のリクエスト サポートページをご覧ください。割り当てと使用理由の詳細については、無料トライアルのプロジェクト割り当てのリクエスト サポートページをご覧ください。

プロジェクトの識別

Cloud Platform の各リソースとやり取りするには、すべてのリクエストでプロジェクトの識別情報を提供する必要があります。プロジェクトは次の方法で識別されます。

  • プロジェクト ID: プロジェクトを作成したとき、またはプロジェクト ID の作成が必要な API を有効にしたときに選択したカスタム名です。削除したプロジェクトのプロジェクト ID を再利用することはできません。
  • プロジェクト番号: サーバーが自動的に生成し、プロジェクトに割り当てる番号です。

プロジェクト ID とプロジェクト番号を取得する方法は、次のとおりです。

  1. Google Cloud Platform Console に移動します。
  2. プロジェクトを選択します。

プロジェクト ID とプロジェクト番号はどちらも、プロジェクト ダッシュボードの [プロジェクト情報] カードに表示されます。

プロジェクト ID は、プロジェクト名とは異なります。プロジェクト名は人が読める形式でプロジェクトを識別する方法ですが、Google API によって使用されることはありません。この例では、My Sample Project がプロジェクト名、my-sample-project-191923 がプロジェクト ID です。

プロジェクト ID は、Google Cloud Platform Console でプロジェクトの作成時に入力したプロジェクト名から生成されます。特定の単語はプロジェクト ID で使用できません。googlessl などの制限付きの単語がプロジェクト名で使用されている場合、これらの単語は生成されたプロジェクト ID に含まれません。プロジェクト名に影響はありません。

プロジェクト番号とプロジェクト ID はどちらも Google Cloud Platform 全体で固有です。別のユーザーが使用しているプロジェクト ID と同じプロジェクト ID は使用できません。

プロジェクト ID(または任意のリソース名)を決めるときに、名前に機密情報が含まれないように注意してください。

既存のプロジェクトの取得

既存のプロジェクトを取得するには、GCP Console または projects.get() メソッドを使用します。

Console

GCP Console を使用してプロジェクトを表示するには:

  • Google Cloud Platform Console に移動します。
  • 上部バーにあるプロジェクトのプルダウンをクリックします。(プルダウンのラベルは、現在表示しているプロジェクトの名前です)。
  • 表示するプロジェクトを選択します。

API

リクエスト:

GET
https://cloudresourcemanager.googleapis.com/v1beta1/projects/our-project-123

レスポンス:

{
    "projectNumber": "464036093014",
    "projectId": "our-project-123",
    "lifecycleState": "ACTIVE",
    "name": "my project",
    "labels": {
        "mylabel": "prod"
    },
    "createTime": "2016-01-07T21:59:43.314Z"
}

Python

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().get(projectId=flags.projectId).execute()

...

プロジェクトの一覧表示

所有するプロジェクトのリストを表示するには、GCP Console または projects.list() メソッドを使用します。

Console

GCP Console を使用してプロジェクトを一覧表示するには:

  • Google Cloud Platform Console に移動します。
  • 上部バーにある [プロジェクト] プルダウンに、すべてのプロジェクトが表示されます。[プロジェクトとフォルダを検索] テキスト ボックスを使用してプロジェクトをフィルタリングします。
  • すべてのプロジェクトを表示するには、[リソースの管理] をクリックします。[名前、ID、またはラベルでフィルタリング] テキスト ボックスを使用してプロジェクトをフィルタリングします。

API

リクエスト:

GET https://cloudresourcemanager.googleapis.com/v1beta1/projects

{
    "name": "project a"
}

レスポンス:

{
    "projects": [
    {
        "projectNumber": "951040570662",
        "projectId": "google.com:api-project-951040570662",
        "lifecycleState": "ACTIVE",
        "name": "project a",
        "createTime": "2013-11-13T20:31:53.308Z"
    }
    ]
}

次のコード スニペットは、赤いラベルを持つすべてのプロジェクトを一覧表示します。

リクエスト:

GET
https://cloudresourcemanager.googleapis.com/v1beta1/projects

{
    "labels": {
    "color": "red"
    }
}

レスポンス:

{
    "projects": [
    {
        "projectNumber": "350831539566",
        "projectId": "my-project-b",
        "lifecycleState": "ACTIVE",
        "name": "project b",
        "labels": {
            "color": "red"
        },
        "createTime": "2012-02-18T23:11:57.831Z"
    }
    ]
}

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

filter = "name:project a"
projects = crm.projects().list(filter=filter).execute()

...

次のコード スニペットは、赤いラベルを持つすべてのプロジェクトを一覧表示します。

filter = 'labels.color:red'
projects = crm.projects().list(filter=filter).execute()

プロジェクトの更新

GCP Console または projects.update() を使用してプロジェクトを更新できます。現時点では、更新できるフィールドはプロジェクト名とラベルのみです。詳しくは、プロジェクト API リファレンス ページをご覧ください。

Console

GCP Console を使用してプロジェクトのフィールドを更新するには:

  • Google Cloud Platform Console で [設定] ページを開きます。

    [設定] ページを開く

  • [プロジェクトを選択] をクリックします。
  • プロジェクト名を変更するには、プロジェクト名を編集し、[保存] をクリックします。
  • ラベルを変更するには、左側のナビゲーションで [ラベル] をクリックします。詳細については、ラベルの使用をご覧ください。

API

プロジェクトを更新するには:

  • projects.get() メソッドを使用して project オブジェクトを取得します。
  • 更新するフィールドを変更します。
  • projects.update() メソッドを使用して project オブジェクトを更新します。

次のコード スニペットは、プロジェクト名を "myproject" に更新します。

リクエスト:

    PUT https://cloudresourcemanager.googleapis.com/v1beta1/projects/my-project-123
    {
        "name": "myproject"
    }

レスポンス:

    {
        "projects": [
        {
            "projectNumber": "951040570662",
            "projectId": "my-project-123",
            "lifecycleState": "ACTIVE",
            "name": "myproject",
            "createTime": "2013-11-13T20:31:53.308Z"
        }
        ]
    }

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().get(projectId=flags.projectId).execute()
project['name'] = 'myproject'
project = crm.projects().update(
projectId=flags.projectId, body=project).execute()

...

プロジェクトのシャットダウン(削除)

GCP Console または projects.delete() メソッドを使用して、プロジェクトをシャットダウンできます。

プロジェクトをシャットダウンしても、プロジェクトはすぐには削除されず、プロジェクトの削除がリクエストされるだけです。プロジェクトは削除対象としてマークされて(「ソフト削除」)、すぐにアクセスできなくなりますが、30 日以内であれば復元できます。プロジェクトが実際に削除されるまでは、割り当ての使用にその削除対象のプロジェクトが計上されます。

プロジェクト オーナーには、プロジェクトが削除対象としたマークされたことを通知するメールが送信されます。30 日以内であれば、オーナーはプロジェクトの復元手順に沿ってプロジェクトを復元できます。30 日間が経過すると、プロジェクトとそのプロジェクトに含まれるすべてのリソースが消去され、復元できなくなります。

プロジェクトをシャットダウンするには:

  • プロジェクトには、請求先アカウントが関連付けられていないようにしてください。
  • プロジェクトのライフサイクルの状態が ACTIVE である必要があります。

Console

GCP Console を使用してプロジェクトをシャットダウンするには:

  • Google Cloud Platform Console で [設定] ページを開きます([IAM と管理] の下にあります)。

    [設定] ページを開く

  • [プロジェクトを選択] をクリックします。

  • 削除するプロジェクトを選択し、[開く] をクリックします。

  • [シャットダウン] をクリックします。

  • プロジェクト ID を入力して、[シャットダウン] をクリックします。

API

次のコード スニペットは、指定したプロジェクトを削除します。

リクエスト:

DELETE
https://cloudresourcemanager.googleapis.com/v1beta1/projects/my-project-123

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().delete(projectId=flags.projectId).execute()

...
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Resource Manager のドキュメント