本頁說明如何設定主機專案,將服務和工作負載分組為 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
- 找出要設為主專案的 Google Cloud 專案。 您可以使用現有專案,或建立新專案。
找出要以服務專案形式附加至主專案的專案 Google Cloud 。您必須找出所有包含服務和工作負載的專案,並向 App Hub 應用程式註冊這些專案。App Hub 無法查看其他專案中的資源。服務專案應考量下列事項:
- 服務專案必須與主專案位於同一個機構。
- 服務專案一次只能附加到一個主專案。
- 主專案可做為自身的服務專案,管理自己的資源,但您無法將其附加至任何其他主專案做為服務專案。
必要的角色
如要取得將服務專案連結至主專案所需的權限,請要求管理員在主專案和要連結的每個服務專案中,授予您 App Hub 管理員 (roles/apphub.admin
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
設定主專案
如要將專案設為主專案,請按照下列步驟操作:
主控台
在 Google Cloud 控制台的「Welcome」(歡迎使用) 頁面中,使用專案選擇工具選取要設為主專案的專案。
-
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 theserviceusage.services.enable
permission. Learn how to grant roles.
gcloud
-
In the Google Cloud console, 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.
確認已安裝最新版本的 Google Cloud CLI:
gcloud components update
將主專案設為指令的預設專案:
gcloud config set project HOST_PROJECT_ID
將
HOST_PROJECT_ID
替換為要設為託管專案的專案 ID。在主機專案中啟用 App Hub API:
gcloud services enable apphub.googleapis.com \ --project=HOST_PROJECT_ID
附加服務專案
將包含要分組為 App Hub 應用程式的服務和工作負載的服務專案,附加到主專案:
主控台
gcloud
- 找出每個要設為服務專案的 Google Cloud 專案 ID。
附加每個服務專案:
gcloud apphub service-projects add SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
更改下列內容:
SERVICE_PROJECT_ID
:要附加的服務專案 ID。HOST_PROJECT_ID
:主機專案的 ID。
針對要附加至主專案的每個服務專案,重複執行上述程序。
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 使用者:
主控台
在 Google Cloud 控制台的「Welcome」(歡迎使用)頁面中,使用專案選擇工具選取主專案。
前往「IAM」(身分與存取權管理) 頁面:
按一下「授予存取權」
。 「授予存取權」窗格隨即開啟。在「New principals」(新增主體) 欄位中,輸入要授予 App Hub 存取權的主體電子郵件地址。
按一下「選取角色」,然後在「篩選器」欄位中輸入「App Hub」。
在附加至主專案的每個 App Hub 服務專案中,重複先前的程序,將相同角色授予相同使用者。
gcloud
授予主專案中的主體存取權:
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
。
在您附加至主專案的每個 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 設定指標範圍」。
移除服務專案
您可以修改服務專案附件,讓不同服務和工作負載可供分組到應用程式中。您可以將更多服務專案附加至主專案,也可以按照下列步驟,從主專案中移除服務專案的附加項目:
主控台
gcloud
- 找出要從託管專案中移除的每個服務專案 ID。
移除每個服務專案:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
更改下列內容:
SERVICE_PROJECT_ID
:要移除的服務專案 ID。HOST_PROJECT_ID
:主機專案的 ID。
針對要從託管專案移除的每個服務專案,重複執行上述程序。
從主專案移除服務專案時,如果先前設定了指標範圍,請考慮也從主專案的指標範圍中移除服務專案。詳情請參閱「從指標範圍中移除專案」。