建立及管理 Apigee Spaces

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

本頁說明如何在 Apigee 機構中建立 Apigee Space,以便大規模管理 Apigee API 資源的身分與存取權管理 (IAM) 政策。

本指南將說明下列步驟:

如要進一步瞭解使用 Apigee Spaces 管理 API 資源的好處,請參閱「Apigee Spaces」。

事前準備

開始使用 Spaces 前,請注意下列事項:

  • 佈建 Apigee。確認您要使用的 Apigee 訂閱或即付即用機構已佈建完成。如要進一步瞭解佈建 Apigee 的必要步驟,請參閱佈建簡介
  • 取得驗證憑證。如要在指令列中執行指令來建立及管理聊天室,請先使用下列指令取得 gcloud 驗證憑證:
    export TOKEN=$(gcloud auth print-access-token)

必要角色和權限

請確認您在專案中具備下列角色: Apigee > Apigee 機構管理員

檢查角色

  1. 前往 Google Cloud 控制台的「IAM」頁面。

    前往「IAM」頁面
  2. 選取專案。
  3. 在「主體」欄中,找出所有識別您或您所屬群組的資料列。如要瞭解自己所屬的群組,請與管理員聯絡。

  4. 針對指定或包含您的所有列,請檢查「角色」欄,確認角色清單是否包含必要角色。

授予角色

  1. 前往 Google Cloud 控制台的「IAM」頁面。

    前往「IAM」頁面
  2. 選取專案。
  3. 按一下「Grant access」(授予存取權)
  4. 在「New principals」(新增主體) 欄位中,輸入您的使用者 ID。 這通常是指 Google 帳戶的電子郵件地址。

  5. 按一下「選取角色」,然後搜尋角色。
  6. 如要授予其他角色,請按一下「Add another role」(新增其他角色),然後新增其他角色。
  7. 按一下「Save」(儲存)

建立聊天室

如要執行這項工作,您需要 apigee.spaces.create 權限。 此權限包含在 Apigee Organization Admin 角色中。

使用 Apigee 控制台或 API,在 Apigee 機構中建立 Space,詳情請參閱下列章節。

Apigee 控制台

如要使用 Apigee UI 建立 Space,請按照下列步驟操作:

  1. Cloud 控制台的 Apigee UI 中,前往「Spaces」頁面。
    前往「Spaces」(即時通訊空間)
  2. 點按「Create」(建立)。「新增空間詳細資料」面板隨即開啟。
  3. 在「名稱」欄位中,輸入空間的專屬 ID。名稱長度不得超過 63 個字元,開頭須為小寫字母,且只能包含小寫字元。如需完整的命名規定,請參閱 AIP-122:資源名稱
  4. (選用) 在「顯示名稱」欄位中,輸入聊天室的易讀標籤。
  5. 按一下「新增」。

建立後,機構成員在建立 API 資源時,會看到「Space」做為可用參數。

Apigee API

如要在 Apigee 機構中建立 Space,請使用下列指令:

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces" \
    --data-raw '{
       "name":"SPACE_NAME",
       "displayName":"DISPLAY_NAME"
    }'

其中:

  • ORG_NAME 是 Apigee 機構的名稱。
  • SPACE_NAME 是 Space 的名稱和專屬 ID。名稱長度不得超過 63 個字元,開頭須為小寫字母,且只能包含小寫字元。如需完整的命名規定,請參閱 AIP-122:資源名稱
  • DISPLAY_NAME 是 Space 的易讀名稱,顯示在 Cloud 控制台的 Apigee UI 中。

管理聊天室中的成員和角色

建立 Space 後,您可以將團隊成員新增至 Space,並指派建立及管理 API 資源所需的 IAM 角色。

將機構成員新增至聊天室

如要執行這項工作,您需要 apigee.spaces.setIamPolicy 權限。

Apigee 控制台

如要使用 Apigee UI 授予成員聊天室存取權,請按照下列步驟操作:

  1. Cloud 控制台的 Apigee UI 中,前往「Spaces」頁面。
  2. 按一下要管理的聊天室名稱。
  3. 在「存取詳細資料」部分,按一下「授予存取權」
  4. 在「Add members」(新增成員) 欄位中,輸入要新增的使用者或群組電子郵件地址。
  5. 在「指派角色」下方,選取「內容編輯者」或「內容檢視者」
  6. 按一下「新增」。

Apigee API

如要將機構成員新增至 Space 並指派 IAM 角色,請使用下列指令:

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \
      '{
        "policy":{
          "bindings":[
            {
              "members": ["user:USER_EMAIL"],
              "role": "roles/IAM_ROLE"
            }
          ]
        }
      }'

其中:

  • ORG_NAME 是 Apigee 機構的名稱。
  • SPACE_NAME 是聊天室的名稱。
  • USER_EMAIL 是您要新增至 Space 的使用者電子郵件地址。如要新增 Google 群組而非單一使用者,請將前置字元從 user: 變更為 group:,並提供群組的電子郵件地址。
  • IAM_ROLE 是您要指派給成員的 IAM 角色名稱。

從聊天室中移除成員

如要執行這項工作,您需要 apigee.spaces.setIamPolicy 權限。

Apigee 控制台

如要使用 Apigee UI 從 Space 移除成員,請按照下列步驟操作:

  1. Cloud 控制台的 Apigee UI 中,前往「Spaces」頁面,然後按一下 Space 的名稱。
  2. 在「存取詳細資料」表格中,選取要移除的一或多位成員旁邊的核取方塊。
  3. 按一下 [移除存取權]
  4. 在確認對話方塊中,按一下「確認」

Apigee API

如要從 Space 移除成員,請使用 setIamPolicy 方法,為 Space 設定新的 IAM 政策,並提供修訂後的成員清單。使用這個方法會建立新的 IAM 政策,取代現有政策。

舉例來說,如要更新 blue 團隊 Space 的成員,可以先使用下列指令檢查目前的 IAM 政策:

curl -X GET -H "Authorization: Bearer $TOKEN" \
  "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:getIamPolicy"

指令輸出內容會傳回空間目前的 IAM 政策,應如下所示:

{
  "version": "0",
  "bindings": [
    {
      "role": "roles/apigee.spaceContentEditor",
      "members": [
        "group:blue-team@acme.com",
        "user:user-a@acme.com",
        "user:user-b@acme.com",
        "user:user-c@acme.com"
      ]
    }
  ]
}

如要從 Space 移除 user-b@acme.com,請使用下列指令:

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
  "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:setIamPolicy" -d \
    '{
      "policy":{
        "bindings":[
          {
            "members": [
              "group:blue-team@acme.com",
              "user:user-a@acme.com",
              "user:user-c@acme.com"
            ],
            "role": "roles/apigee.spaceContentEditor"
          }
        ]
      }
    }'

現在,該空間的新 IAM 政策不再包含 user-b@acme.com

如要從聊天室中移除群組成員,請先從群組中移除該成員,然後重新執行 setIamPolicy 指令,使用群組電子郵件別名的正確成員資格更新聊天室的 IAM 政策。

列出機構中的所有聊天室

如要執行這項工作,您需要 apigee.spaces.list 權限。

Apigee 控制台

如要查看所有 Space,請前往 Cloud 控制台的 Apigee UI 中的「Spaces」頁面。

前往「Spaces」(聊天室) 頁面

「聊天室」表格會列出貴機構中的所有聊天室,包括名稱顯示名稱成員總數。

Apigee API

如要列出 Apigee 機構中的所有 Space,請使用下列指令:

curl -X GET -H "Authorization: Bearer $TOKEN" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces"

其中:

  • ORG_NAME 是 Apigee 機構的名稱。

取得空間詳細資料

如要執行這項工作,您需要 apigee.spaces.get 權限。

Apigee 控制台

如要在 Apigee UI 中查看 Space 詳細資料,請按照下列步驟操作:

  1. Cloud 控制台的 Apigee UI 中,前往「Spaces」頁面。
  2. 按一下要查看的 Space 名稱。詳細資料頁面會顯示「名稱」、「顯示名稱」、存取詳細資料和「成員」清單。

Apigee API

如要取得 Space 的詳細資料,請使用下列指令:

curl -X GET -H "Authorization: Bearer $TOKEN" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"

其中:

  • ORG_NAME 是 Apigee 機構的名稱。
  • SPACE_NAME 是聊天室的名稱。

更新空間

如要執行這項工作,您需要 apigee.spaces.update 權限。

您可以修改現有空間的「顯示名稱」。 建立後即無法變更專屬名稱。

Apigee 控制台

如要在 Apigee UI 中更新 Space,請按照下列步驟操作:

  1. Cloud 控制台的 Apigee UI 中,前往「Spaces」頁面,然後按一下要更新的 Space 名稱。
  2. 按一下「聊天室詳細資料」標題旁邊的「編輯」按鈕 (鉛筆圖示)。
  3. 視需要修改「顯示名稱」
  4. 按一下 [儲存]

Apigee API

如要使用 API 更新 Space,請使用下列指令:

curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME" \
      --data-raw '{
        "displayName":"DISPLAY_NAME"
      }'

其中:

  • ORG_NAME 是 Apigee 機構的名稱。
  • SPACE_NAME 是聊天室的名稱。
  • DISPLAY_NAME 是新顯示名稱。

刪除 YouTube Spaces

如要執行這項工作,您需要 apigee.spaces.delete 權限。

Apigee 控制台

如要使用 Apigee UI 刪除 Space,請按照下列步驟操作:

  1. Cloud 控制台的 Apigee UI 中,前往「Spaces」頁面。
  2. 在要刪除的聊天室列中,按一下「刪除」
  3. 在確認對話方塊中,輸入確切的 Space 名稱來確認。
  4. 點選「刪除」。

Apigee API

使用 API 刪除 Space 前,請務必先刪除或移動 Space 中的所有資源。

curl -X DELETE -H "Authorization: Bearer $TOKEN" \
    "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"

其中:

  • ORG_NAME 是 Apigee 機構的名稱。
  • SPACE_NAME 是聊天室的名稱。

如果嘗試刪除仍含有有效資源的 Space,系統會傳回類似下列內容的回應,表示刪除作業失敗:

{
  "error": {
    "code": 400,
    "message": "Space \"red\" has resources associated with it. Please delete the resources before deleting the space.",
    "status": "FAILED_PRECONDITION"
  }
}

如要解決這個錯誤,請先刪除或移動空間中的所有資源,再嘗試刪除空間。

後續步驟