使用主專案設定 App Hub

本頁說明如何設定主機專案,將服務和工作負載分組為 App Hub 應用程式。

主專案是現有 App Hub 使用者適用的設定模型。不過,我們建議使用啟用應用程式的資料夾,為新的實作項目設定 App Hub。啟用應用程式的資料夾可提供完整的應用程式導向 Google Cloud 功能存取權,例如 Application Design Center 和 Gemini Cloud Assist。如要比較可用的 App Hub 設定模型之間的主要差異,請參閱「選擇 App Hub 設定模型」。

主專案和服務專案總覽

主專案是您指定的標準 Google Cloud 專案,用於將支援的資源分組為 App Hub 應用程式。您要手動將其他專案 (稱為服務專案) 附加到這個主專案,App Hub 才能探索並註冊這些專案中的服務和工作負載。

App Hub 中的主專案和服務專案模型,與共用虛擬私有雲使用的模型不同。您無法將共用虛擬私有雲主專案及其附加的服務專案用於 App Hub。在 App Hub 中,主專案和服務專案用於邏輯分組應用程式資源,而非共用虛擬私有雲網路。

事前準備

如要將專案設定為應用程式的主專案和服務專案,請先完成下列步驟: Google Cloud

  1. 找出要設為主專案的 Google Cloud 專案。 您可以使用現有專案,或建立新專案
  2. 找出要以服務專案形式附加至主專案的專案 Google Cloud 。您必須找出所有包含服務和工作負載的專案,並向 App Hub 應用程式註冊這些專案。App Hub 無法查看其他專案中的資源。服務專案應考量下列事項:

    • 服務專案必須與主專案位於同一個機構
    • 服務專案一次只能附加到一個主專案。
    • 主專案可做為自身的服務專案,管理自己的資源,但您無法將其附加至任何其他主專案做為服務專案。

必要的角色

如要取得將服務專案連結至主專案所需的權限,請要求管理員在主專案和要連結的每個服務專案中,授予您 App Hub 管理員 (roles/apphub.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

設定主專案

如要將專案設為主專案,請按照下列步驟操作:

主控台

  1. 在 Google Cloud 控制台的「Welcome」(歡迎使用) 頁面中,使用專案選擇工具選取要設為主專案的專案。

    前往「歡迎」頁面

  2. Enable the required API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 確認已安裝最新版本的 Google Cloud CLI:

    gcloud components update
    
  3. 找出要設為主專案的 Google Cloud 專案 ID

  4. 將主專案設為指令的預設專案:

    gcloud config set project HOST_PROJECT_ID
    

    HOST_PROJECT_ID 替換為要設為託管專案的專案 ID。

  5. 在主機專案中啟用 App Hub API

    gcloud services enable apphub.googleapis.com \
        --project=HOST_PROJECT_ID
    

附加服務專案

將包含要分組為 App Hub 應用程式的服務和工作負載的服務專案,附加到主專案:

主控台

  1. 在 Google Cloud 控制台的「Welcome」(歡迎使用)頁面中,使用專案選擇工具選取主專案。

    前往「歡迎」頁面

  2. 前往 App Hub 的「設定」頁面:

    前往「設定」

  3. 按一下「附加專案」

  4. 選取要附加至主專案的服務專案,方法如下:

    • 在專案清單中,勾選要附加為服務專案的專案核取方塊。
    • 篩選專案名稱,然後勾選核取方塊。
  5. 按一下「選取」

    「附加的服務專案」表格會顯示所選服務專案。

  6. 按一下 [關閉]

gcloud

  1. 找出每個要設為服務專案的 Google Cloud 專案 ID
  2. 附加每個服務專案:

    gcloud apphub service-projects add SERVICE_PROJECT_ID \
        --project=HOST_PROJECT_ID
    

    更改下列內容:

    • SERVICE_PROJECT_ID:要附加的服務專案 ID。
    • HOST_PROJECT_ID:主機專案的 ID。
  3. 針對要附加至主專案的每個服務專案,重複執行上述程序。

Terraform

如要使用 Terraform 將服務專案附加至主專案,請使用google_apphub_service_project_attachment 資源,例如:

resource "google_apphub_service_project_attachment" "example" {
    service_project_attachment_id = google_project.service_project.project_id
    depends_on = [time_sleep.wait_120s]
}

resource "google_project" "service_project" {
    project_id ="project-1"
    name = "Service Project"
    org_id = "123456789"
    deletion_policy = "DELETE"
}

resource "time_sleep" "wait_120s" {
    depends_on = [google_project.service_project]

    create_duration = "120s"
}

如要卸離服務專案,必須先移除附件。詳情請參閱「移除服務專案」。

指派 App Hub 角色和權限

請按照下列步驟,在主專案和服務專案中,將適當的 App Hub 角色和權限授予 App Hub 使用者:

主控台

  1. 在 Google Cloud 控制台的「Welcome」(歡迎使用)頁面中,使用專案選擇工具選取主專案。

    前往「歡迎」頁面

  2. 前往「IAM」(身分與存取權管理) 頁面:

    前往「身分與存取權管理」頁面

  3. 按一下「授予存取權」。 「授予存取權」窗格隨即開啟。

  4. 在「New principals」(新增主體) 欄位中,輸入要授予 App Hub 存取權的主體電子郵件地址。

  5. 按一下「選取角色」,然後在「篩選器」欄位中輸入「App Hub」

  6. 選取要指派給主體的「App Hub IAM role」(應用程式中樞 IAM 角色),然後按一下「Save」(儲存)

  7. 在附加至主專案的每個 App Hub 服務專案中,重複先前的程序,將相同角色授予相同使用者。

gcloud

  1. 找出您設定為主專案和服務專案的每個 Google Cloud 專案 ID

  2. 授予主專案中的主體存取權:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
        --member='user:EMAIL_ADDRESS' \
        --role='ROLE_NAME'
    

    更改下列內容:

    • HOST_PROJECT_ID:主機專案的 ID。
    • EMAIL_ADDRESS:必須在主機專案中取得 App Hub 存取權的負責人電子郵件地址。這個值必須採用 username@yourdomain 格式,例如 my.user@example.com
    • ROLE_NAME:要指派給主體的 App Hub IAM 角色,例如 roles/apphub.admin
  3. 在您附加至主專案的每個 App Hub 服務專案中,將相同角色授予相同使用者:

    gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \
        --member='user:EMAIL_ADDRESS' \
        --role='ROLE_NAME'
    

    SERVICE_PROJECT_ID 替換為要授予存取權的服務專案 ID。

設定 VPC Service Controls

如要使用 VPC Service Controls 範圍保護應用程式,請先將 App Hub 主機和服務專案新增至範圍,再建立應用程式。詳情請參閱「搭配使用 VPC Service Controls 與 App Hub」。

您現在可以將現有資源註冊至應用程式

選用:設定指標範圍

如要在 Cloud Monitoring 中查看主專案內應用程式的系統指標,請將附加的服務專案新增至主專案的指標範圍。主機專案可做為時間序列資料的範圍專案,方便您繪製資料圖表及監控資料。如需更多資訊和詳細設定說明,請參閱「設定指標範圍」和「使用 API 設定指標範圍」。

移除服務專案

您可以修改服務專案附件,讓不同服務和工作負載可供分組到應用程式中。您可以將更多服務專案附加至主專案,也可以按照下列步驟,從主專案中移除服務專案的附加項目:

主控台

  1. 在 Google Cloud 控制台的「Welcome」(歡迎使用)頁面中,使用專案選擇工具選取主專案。

    前往「歡迎」頁面

  2. 前往 App Hub 的「設定」頁面:

    前往「設定」

  3. 選取要從主專案中移除的服務專案核取方塊。

  4. 按一下「取消連結專案」

    「已附加的服務專案」表格會重新整理,只顯示仍附加至主專案的專案。

gcloud

  1. 找出要從託管專案中移除的每個服務專案 ID
  2. 移除每個服務專案:

    gcloud apphub service-projects remove SERVICE_PROJECT_ID \
        --project=HOST_PROJECT_ID
    

    更改下列內容:

    • SERVICE_PROJECT_ID:要移除的服務專案 ID。
    • HOST_PROJECT_ID:主機專案的 ID。
  3. 針對要從託管專案移除的每個服務專案,重複執行上述程序。

從主專案移除服務專案時,如果先前設定了指標範圍,請考慮也從主專案的指標範圍中移除服務專案。詳情請參閱「從指標範圍中移除專案」。

後續步驟