本文說明如何在 App Hub 中設定託管專案。
主專案是舊版應用程式設定模型,適用於現有 App Hub 使用者。建議您為新導入作業設定已啟用應用程式的資料夾,定義資料夾層級的界線。資料夾層級的界線可提供完整的一組以應用程式為中心的 Google Cloud 功能存取權,例如 Application Design Center 和 Gemini Cloud Assist。如要比較應用程式管理適用的模型主要差異,請參閱選擇應用程式設定模型。
主專案和服務專案總覽
主專案是您附加其他專案的專案,這些專案包含要歸類為 App Hub 應用程式的服務和工作負載。 Google Cloud附加至主專案的專案稱為「服務專案」。
主專案可直接附加至自身,藉此管理自己的資源。不過,如果是單一專案設定,建議使用單一專案做法。
事前準備
將專案設為主專案並附加服務專案前,請先完成下列步驟: Google Cloud
- 找出要設為主專案的 Google Cloud 專案。 您可以使用現有專案,或建立新專案。
找出要以服務專案形式附加至主專案的專案 Google Cloud 。您必須找出所有包含服務和工作負載的專案,並向 App Hub 應用程式註冊這些專案。App Hub 無法查看其他專案中的資源。服務專案必須符合下列規定:
- 服務專案必須與主專案位於同一個機構。
- 服務專案一次只能附加到一個主專案。
- 主專案可做為自身的服務專案,管理自己的資源,但您無法將其附加至任何其他主專案做為服務專案。
必要的角色
如要取得將服務專案連結至主專案所需的權限,請要求管理員在主專案和要連結的每個服務專案中,授予您 App Hub 管理員 (roles/apphub.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
設定主專案
如要將 Google Cloud 專案設定為主專案,請按照下列步驟操作:
控制台
在 Google Cloud 控制台中,使用專案選擇工具選取要設為主專案的專案。
-
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.enablepermission. 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 控制台,使用專案選擇工具選取主專案。
前往「IAM」(身分與存取權管理) 頁面:
點按「 Grant access」(授予存取權)。「授予存取權」窗格隨即開啟。
在「New principals」(新增主體) 欄位中,輸入要授予 App Hub 存取權的主體電子郵件地址。
按一下「選取角色」,然後在「篩選器」欄位中輸入「App Hub」。
選取要指派給主體的 App Hub IAM 角色,然後按一下「儲存」。
在附加至主專案的每個 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:要指派給主體的應用程式中心 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。
針對要從託管專案中移除的每個服務專案,重複執行上述程序。
從主專案移除服務專案時,如果先前設定了指標範圍,請考慮也從主專案的指標範圍中移除服務專案。詳情請參閱「從指標範圍中移除專案」。