建立及管理專案

Google Cloud Platform (GCP) 專案是建立、啟用和使用所有 GCP 服務的基本要件,例如管理 API、啟用計費功能、新增與移除協作者,以及管理 GCP 資源的權限。

本頁說明如何使用 Resource Manager API 及 Google Cloud Platform 主控台建立和管理 GCP 專案。

事前準備

請參閱資源階層概要中的專案資源。

建立專案

您必須具有 resourcemanager.projects.create 權限才能建立專案。這個權限包含在「專案建立者」roles/resourcemanager.projectCreator 角色中,根據預設,系統會將此角色授予新機構的整個網域,以及免費試用的使用者。如要進一步瞭解如何為個人授予角色,以及如何對整個機構的存取權設定限制,請前往管理預設的機構角色頁面。

您可以使用 GCP 主控台或 projects.create() 方法建立新專案。

主控台

如要建立新專案:

  1. 前往 GCP 主控台的「Manage resources」(管理資源) 頁面。
    前往「Manage resources」(管理資源) 頁面
  2. 在頁面頂端的「Select organization」(選取機構) 下拉式清單中,選取要建立專案的機構。如果您是免費試用的使用者,請跳過此步驟,因為畫面不會顯示這個清單。
  3. 按一下 [Create Project] (建立專案)。
  4. 在顯示的「New Project」(新增專案) 視窗中,輸入專案名稱並選取適當的帳單帳戶。
  5. 如要將專案新增至資料夾,請在「Location」(位置) 方塊中輸入資料夾名稱。
  6. 輸入新專案的詳細資料後,點選 [Create] (建立)。

gcloud

如要建立新專案,請使用 gcloud projects create 指令:

gcloud projects create PROJECT_ID

其中「PROJECT_ID」是您要建立的專案 ID。專案 ID 的開頭必須是小寫英文字母且僅包含 ASCII 字母、數字或連字號,並且必須介於 6 至 30 個字元。

如要建立以機構或資料夾作為父項的專案,請使用 --organization--folder 標記。每個資源只能有一個父項,所以只能使用其中一個標記。

gcloud projects create PROJECT_ID --organization=ORGANIZATION_ID

gcloud projects create PROJECT_ID --folder=FOLDER_ID

API

使用 projects.create() 方法建立新專案時,專案 ID 不能使用特定文字,例如:sslgoogle。如果使用限用字,要求就會傳回 INVALID_ARGUMENT 錯誤。

下列要求只會建立專案,不會自動將其關聯至帳單帳戶。您可使用 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()

...

管理專案配額

如果您剩下的配額不到 30 個專案,「New Project」(新增專案) 頁面就會顯示通知,說明配額中所剩的專案數量。使用者虛刪除的專案還是會計入配額,直到 30 天後這類專案才會徹底刪除。

如需要求額外的專案配額,請參閱要求增加計費配額支援頁面。您可參閱免費試用專案配額要求支援頁面,取得配額及為何使用配額的詳細資訊。

識別專案

如要與 GCP 資源互動,您必須為每個要求提供專案的識別資訊。專案的識別方法如下:

  • 專案名稱:您在建立專案或啟動要求建立專案 ID 的 API 時選擇的自訂名稱。請注意,您不能重複使用已刪除專案的專案名稱。
  • 專案 ID:專案的唯一識別碼,由專案名稱和隨機指派的數字組成。
  • 專案編號:伺服器自動產生並指派給專案的編號。

如要取得專案 ID 和專案編號:

  1. 前往 GCP 主控台的「Dashboard」(資訊主頁) 頁面

    前往「Dashboard」(資訊主頁) 頁面

  2. 按一下頁面頂端的 [Select from] (可用的選項) 下拉式清單。在顯示的「Select from」(可用的選項) 視窗中,選取您的專案。

專案資訊主頁的「Project info」(專案資訊) 卡片會顯示專案 ID 和專案編號。

專案 ID 與專案名稱不同。專案名稱是使用者用來識別專案的文字,但 Google API 無法加以使用。在以上範例中,專案名稱是「My Sample Project」,而專案 ID 是「my-sample-project-191923」。

專案 ID 是您在 Google Cloud Platform 主控台建立專案時輸入專案名稱後產生的。專案 ID 不能使用某些限用字。如果在專案名稱中使用了限用字,如 googlessl,產生的專案 ID 就不會包含這些字。這不影響專案名稱。

專案編號和專案 ID 在整個 Google Cloud Platform 中不可重複。如果其他使用者用了某個專案 ID,您即無法使用相同的專案 ID。

選擇專案 ID (或任何資源名稱) 時,請勿含括任何機密資訊。

取得現有專案

您可以使用 GCP 主控台或 projects.get() 方法取得現有專案。

主控台

如要使用 Google Cloud Platform 主控台查看專案:

  1. 前往 Google Cloud Platform 主控台中的「Dashboard」(資訊主頁) 頁面。

    前往「Dashboard」(資訊主頁) 頁面

  2. 按一下頁面頂端的 [Select from] (可用的選項) 下拉式清單。在顯示的「Select from」(可用的選項) 視窗中,選取您的專案。

gcloud

如要取得專案的中繼資料,請使用 gcloud projects describe 指令:

gcloud projects describe PROJECT_ID

其中「PROJECT_ID」是您要查看的專案 ID。

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 主控台或 projects.list() 方法列出您有存取權的所有專案。

主控台

如要使用 Google Cloud Platform 主控台列出專案:

  • 前往 GCP 主控台。

    前往 GCP 主控台

  • 頂端列的 [projects] (專案) 下拉式選單會列出所有專案。使用「Search projects and folders」(搜尋專案和資料夾) 文字方塊以篩選專案。
  • 如要列出所有專案,請點選 [Manage Resources] (管理資源)。您可使用「Filter by name, ID, or label」(依名稱、ID 或標籤篩選) 文字方塊來篩選專案。

gcloud

如要列出您目前使用中帳戶可存取的所有專案,請使用 gcloud projects list 指令:

gcloud projects list

這個指令會針對您具備擁有者、編輯者或檢視者權限的所有專案提供專案 ID、名稱和專案編號。

您可以使用 --filter 標記來縮小結果範圍。此標記會搜尋專案 ID、名稱及專案編號,然後只傳回含有篩選字詞的結果。

gcloud projects list --filter=test

以上指令會傳回您具有擁有者、編輯者或檢視者權限的所有專案,且名稱、專案 ID 或專案編號欄位中會包含「test」一字。

如果您指定了包含 parent.typeparent.id 欄位的篩選條件,則會在父項執行 resourcemanager.projects.list 權限檢查。如果使用者擁有此權限,則在套用其餘的篩選條件後,會傳回父項下的所有專案。

如果使用者缺少此權限,則在套用其餘的篩選條件後,會傳回使用者具有 resourcemanager.projects.get 權限的所有專案。

如未指定篩選條件,呼叫會傳回使用者具有 resourcemanager.projects.get 權限的專案。

如需篩選語法的詳細資訊,請參閱 gcloud topic filters

API

您可以在要求主體中加入欄位,以傳回符合篩選條件和您已為其授予擁有者、編輯者或檢視者角色的特定專案資源。

以下程式碼片段會傳回名稱為「project a」的專案資源:

要求:

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"
    }
    ]
}

如果您在要求主體中指定了 parent.typeparent.id 欄位,則會在父項執行 resourcemanager.projects.list 權限檢查。如果使用者擁有此權限,則在套用其餘的篩選條件後,會傳回父項下的所有專案。

如果使用者缺少此權限,則在套用其餘的篩選條件後,會傳回使用者具有 resourcemanager.projects.get 權限的所有專案。

如未指定篩選條件,呼叫會傳回使用者具有 resourcemanager.projects.get 權限的專案。

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 主控台或 projects.update() 方法更新專案。目前可更新的欄位只有專案名稱和標籤。無法使用 gcloud 指令行工具或 API 要求來更改專案 ID 值。如需更新專案的相關資訊,請參閱專案 API 參考頁面

主控台

如要使用 GCP 主控台更新專案:

  • 開啟 Google Cloud Platform 主控台的「Settings」(設定) 頁面。

    開啟「Settings」(設定) 頁面

  • 按一下畫面頂端的專案選取下拉式清單。
  • 隨即顯示「Select from」(可用的選項) 視窗,點選機構下拉式清單,然後選取您的機構。
  • 從顯示的清單中選取您的專案。
  • 如要變更專案名稱,編輯「Project name」(專案名稱),然後點選 [Save] (儲存)。
  • 如要變更標籤,請按一下左側導覽列的 [Labels] (標籤)。詳情請參閱使用標籤

gcloud

如要更新專案名稱,請使用 gcloud projects update 指令:

gcloud projects update PROJECT_ID --name=NAME

其中「PROJECT_ID」是要更新的專案 ID,而「NAME」則是您要指派給該專案的新名稱。

API

如要更新專案:

以下程式碼片段會將專案名稱更新為「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 主控台或 projects.delete() 方法關閉專案。

這個方法會立刻將專案標記為待刪除,然後傳送通知電子郵件給專案擁有者。標記為待刪除的專案無法再使用。大約 30 天之後,就會徹底刪除該專案。如要在 30 天內停止此程序,請參閱還原專案的步驟

30 天之後就會刪除專案及其所有資源且無法還原。在徹底刪除前,該專案會計入您的專案配額。

如果您設定了專案的帳單資訊,可能會等到目前的帳單週期結束且成功收取費用後,才能徹底刪除專案。您使用的服務數目和類型也會影響系統永久刪除專案的時間。如需資料保留和安全刪除的詳細資訊,請參閱 Google 如何保留所收集到的資料一文。

如要關閉專案:

  • 該專案不能有相關聯的帳單帳戶。
  • 該專案的生命週期狀態必須是 ACTIVE

主控台

如要使用 GCP 主控台關閉專案:

  • 開啟 Google Cloud Platform 主控台中的「Settings」(設定) 頁面 (在「IAM & admin」(IAM 與管理員) 下。

    開啟「Settings」(設定) 頁面

  • 按一下 [Select a project] (選取專案)。

  • 選取要刪除的專案,然後點選 [Open] (開啟)。

  • 按一下 [Shut down] (關閉)

  • 輸入專案 ID,然後點選 [Shut down] (關閉)。

gcloud

如要刪除專案,請使用 gcloud projects delete 指令:

gcloud projects delete PROJECT_ID

其中「PROJECT_ID」是您要刪除的專案 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()

...

還原專案

專案擁有者可在專案關閉後的 30 天內還原已刪除的專案。還原專案可將專案恢復至關閉前的狀態。Cloud Storage 資源會在 30 天的期限截止前遭刪除,可能無法徹底還原。

有些服務可能需要手動重新啟動。詳情請參閱重新啟動 Google Cloud Platform 服務一文。

如要還原專案:

  1. 前往 Google Cloud Platform 主控台中的「Manage Resources」(管理資源) 頁面。

    前往「Manage Resources」(管理資源) 頁面

  2. 在左上角的 [Organization] (機構) 下拉式選單,選取您的機構。

  3. 在專案清單下,點選 [Resources pending deletion] (待刪除的資源)。

  4. 勾選要還原的專案,然後點選 [Restore] (還原)。在隨即顯示的對話方塊中,確認要還原的專案。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Resource Manager 說明文件