本文說明如何在 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 無法查看其他專案中的資源。服務專案必須符合下列規定:
- 服務專案必須與主專案位於同一個機構。
- 服務專案一次只能附加到一個主專案。
- 主專案可做為自身的服務專案,管理自己的資源,但您無法將其附加為任何其他主專案的服務專案。
必要的角色
如要取得將服務專案連結至主專案所需的權限,請要求管理員在主專案和要連結的每個服務專案中,授予您「應用程式中樞管理員 」(roles/apphub.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
設定主專案
如要將 Google Cloud 專案設定為主專案,請按照下列步驟操作:
控制台
在 Google Cloud 控制台,使用專案選擇工具選取專案。
從 App Hub 前往「總覽」頁面:
按一下「設定應用程式中心」。
在「啟用 App Hub」頁面中,選擇「完整設定」,建立多專案邊界。
記下專案名稱和 ID。這項資訊會識別主機專案,您將使用這些值授予存取權。
查看待啟用的 API 清單。 部分 API 會產生相關費用。 進一步瞭解 API 的費用 或是點選個別 API 來查看相關聯的費用。
按一下「繼續」。
在「定義邊界」分頁中,確認專案資訊。
按一下「新增專案」,將服務專案新增至邊界,或稍後再新增。
按一下「繼續」。
在「授予存取權」分頁中,為專案管理員選擇適當的 IAM 角色和權限。如需各項產品建議使用的以應用程式為核心的角色清單,請參閱「授予使用者以應用程式為核心的角色」。Google Cloud
在「New principals」(新增主體) 方塊中,輸入應具備專案中以應用程式為中心工作管理員存取權的使用者、群組或服務帳戶。
依序點選「授予角色」和「完成」。
稍後,您可以透過「IAM」頁面,將其他 IAM 角色授予主體。詳情請參閱「使用 Google Cloud 控制台授予 IAM 角色」。
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
新增服務專案
將服務專案附加至主專案,即可將其新增至應用程式管理邊界。
如要將服務專案附加至主專案,並建立多專案界線,請按照下列步驟操作:
控制台
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」(身分與存取權管理) 頁面:
點選 「授予存取權」。「授予存取權」窗格隨即開啟。
在「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。
針對要從託管專案移除的每個服務專案,重複執行上述程序。
從主專案移除服務專案時,如果先前設定了指標範圍,請考慮也從主專案的指標範圍中移除服務專案。詳情請參閱「從指標範圍中移除專案」。