本頁適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
本主題說明如何在工作區中建立及管理 API 資源。您可以在聊天室中建立 API Proxy、共用流程和 API 產品。在聊天室中建立的資源會繼承聊天室的權限。
在聊天室中建立資源的做法與在 Apigee 機構下建立資源相同,唯一的差異是您可以在建立資源時選取聊天室。您可以使用 Apigee API 透過指令列建立 API 資源,也可以使用 Apigee 在 Cloud 控制台。
本指南將概述下列步驟:
如要瞭解 Apigee Spaces,請參閱「Apigee Spaces」。
如要進一步瞭解 Apigee API 資源類型,請參閱:
事前準備
開始在 Apigee Spaces 中建立 API 資源前,請務必完成下列工作:
- 佈建 Apigee 訂閱或即付即用機構。如要進一步瞭解 Apigee 的佈建步驟,請參閱「設定 Apigee」一文。
- 在 Apigee 機構中建立 Space。詳情請參閱「 建立 Apigee Spaces」。
- 將成員指派給聊天室。詳情請參閱「管理聊天室成員和角色」。
必要角色和權限
隨著 Apigee Spaces 的推出,IAM 檢查對 API 資源執行某些作業所需權限的方式已有所變更。如果 API 資源位於聊天室中,IAM 會檢查聊天室成員執行該項作業時,是否具備適當的聊天室層級權限。如需更多資訊,請參閱「 Apigee Spaces 的角色和權限」和「 Apigee Spaces 的 IAM 權限階層」。
為聊天室成員指派角色和權限
聊天室成員可使用的自訂角色有三種:
apigee.spaceContentEditor
:可完整存取能與空間建立關聯的資源。這個角色應在空間層級授予。apigee.spaceContentViewer
:可讀取能與空間建立關聯的資源。這個角色應在空間層級授予。apigee.spaceConsoleUser
:提供使用 Google Cloud 控制台管理空間資源所需的最低權限。這個角色應在 Google Cloud 專案層級授予給有權存取該空間資源的使用者。
本節所述的自訂角色不會授予聊天室成員部署或取消部署 API Proxy 或共用流程的權限。如果您想允許聊天室成員管理部署作業,請在 Apigee 環境或 Google Cloud 專案層級設定 IAM 政策,將 apigee.environment.admin
角色授予聊天室成員。
你可以使用下列任一方法,為聊天室成員指派一個或多個角色:
-
使用 API將
apigee.spaceContentEditor
角色新增至工作區,並使用 API將apigee.environmentAdmin
角色新增至目標環境。 - 使用 IAM 使用者介面將角色新增至專案。
如要檢查 Google Cloud 專案層級的角色,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「IAM」頁面。
前往「身分與存取權管理」頁面 - 選取專案。
-
在「Principal」欄中,找出所有標示您或您所屬群組的資料列。如要瞭解您加入了哪些群組,請與管理員聯絡。
- 針對所有指定或包含您的資料列,檢查「角色」欄,確認角色清單是否包含必要的角色。
如何授予角色
-
前往 Google Cloud 控制台的「IAM」頁面。
前往「IAM」頁面 - 選取專案。
- 按一下 「授予存取權」。
-
在「New principals」(新增主體) 欄位中輸入使用者 ID。 通常是 Google 帳戶的電子郵件地址。
- 在「請選擇角色」清單中,選取角色。
- 如要授予其他角色,請按一下 「Add another role」(新增其他角色),然後新增其他角色。
- 按一下「儲存」。
如要查看在聊天室層級套用的 IAM 政策,請參閱「 管理聊天室中的成員和角色」。
管理聊天室中的 API Proxy
指派給聊天室的 Apigee 機構成員可以建立 API Proxy 做為聊天室資源。僅指派至其他工作區的成員將無法存取或管理這些 Proxy。
如要將 API 代理程式設為 Space 資源,請使用 Cloud 控制台中的 Apigee 或 API,如以下各節所述。
Cloud 控制台中的 Apigee
如要使用 Cloud 控制台中的 Apigee 建立 API Proxy 做為 Space 資源,請按照下列步驟操作:
- 請按照「建立 API Proxy」一文中的步驟操作。
- 在步驟 5中,您會在「Proxy details」下方看到額外的欄位,可為 API Proxy 選取「Space」。從清單方塊中選取一個聊天室。如果不想將 API 代理程式指派給聊天室,可以略過這個欄位。
- 按一下「Next」即可繼續執行 Proxy 建立作業的選用部署步驟,或按一下「Create」即可建立 Proxy 而無須部署。
Apigee API
如要使用 Apigee API 建立 API Proxy 做為 Space 資源,請使用下列指令:
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/apis?name=PROXY_NAME&space=SPACE_NAME&action=import" \ -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-type: multipart/form-data" \ -F "file=@PROXY_BUNDLE"
其中:
- ORG_NAME 是 Apigee 機構的名稱。
- PROXY_NAME 是您要建立的 API Proxy 名稱。名稱必須在全域範圍內不重複,而非僅在聊天室中不重複。
- SPACE_NAME 是您要建立 API Proxy 的聊天室名稱。
- PROXY_BUNDLE 是 API Proxy 套件檔案的名稱。
舉例來說,red 團隊成員可使用以下指令,將名為 proxy-1 的 API Proxy 設為 red 團隊資源,並儲存在 acme 組織中,使用 proxy-bundle.zip 檔案:
curl "https://apigee.googleapis.com/v1/organizations/acme/apis?name=proxy-1&space=red&action=import" \ -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-type: multipart/form-data \ -F "file=@proxy-bundle.zip"
以下範例顯示指令的回應:
{ "basepaths": ["/proxy-1"], "revision": 1, "apiProxyId": "proxy-1", "resourceName": "organizations/acme/apis/proxy-1/revisions/1", "space": "red", "createTime": ..., "updateTime": ... }
以聊天室資源管理共用流程
指派至聊天室的成員也可以建立共用流程,做為聊天室資源。其他工作區的成員將無法存取或管理這些共用流程。
請使用 Cloud 控制台中的 Apigee 或 API,建立共用流程做為 Space 資源,詳情請參閱下文。
Cloud 控制台中的 Apigee
如要使用 Cloud 控制台中的 Apigee 建立共用流程做為空間資源,請按照下列步驟操作:- 請按照「在 Apigee UI 中建立共用流程」一文中列出的步驟,從頭建立新的共用流程,或上傳現有的流程套件。
- 在步驟 4 中,您會在「建立共用流程」對話方塊中看到額外的欄位,可為 API Proxy 選取聊天室。從清單方塊中選取一個聊天室。如果不想將 API 代理程式指派給聊天室,可以略過這個欄位。
- 按一下「建立」,建立共用流程。
Apigee API
如要使用 Apigee API 將共用資料流設為聊天室資源,請使用下列指令:
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/sharedflows?name=FLOW_NAME&space=SPACE_NAME&action=import" \ -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-type: multipart/form-data" \ -F "file=@SHARED_FLOW_BUNDLE"
其中:
- ORG_NAME 是 Apigee 機構的名稱。
- FLOW_NAME 是您要建立的共用動態資訊卡名稱。名稱必須在全域範圍內不重複,而非僅在聊天室中不重複。
- SPACE_NAME 是建立共用流程的空間名稱。
- SHARED_FLOW_BUNDLE 是共用流程套件檔案的名稱。
舉例來說,red 團隊成員可以使用下列指令,建立名為 flow-1 的共用流程,並與 acme 機構中的 red 工作區相關聯:
curl "https://apigee.googleapis.com/v1/organizations/acme/sharedflows?name=flow-1&space=red&action=import" \ -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-type: multipart/form-data" \ -F "file=@sharedflow-bundle.zip"
以下範例顯示指令的回應:
{ "name": "organizations/acme/sharedflows/flow-1", "revision": 1, "sharedFlowId": "flow-1", "space": "red", "createTime": ..., "updateTime": ... }
將 API 產品視為聊天室資源進行管理
指派至聊天室的成員可以建立 API 產品,將 API Proxy 整合在一起。建立 API 產品時,聊天室成員可以選取任何可存取的 API 代理程式,包括直接在機構下方建立的代理程式,以及在他們擁有成員資格的聊天室中,做為資源建立的 API 代理程式。其他聊天室的成員將無法存取或管理這些 API 產品。
如要將 API 產品做為 Space 資源,請使用 Cloud 控制台中的 Apigee 或 API 建立,詳情請參閱下列各節。
Cloud 控制台中的 Apigee
如要使用 Cloud 控制台中的 Apigee 建立 API 產品做為 Space 資源,請按照下列步驟操作:
- 請按照「建立 API 產品」中的步驟操作。
- 在步驟 4中,您會在「產品詳細資料」頁面中看到額外的欄位,可為 API 產品選取空間。從清單方塊中選取一個聊天室。如果不想將 API 產品指派至聊天室,可以略過這個欄位。
- 填寫其餘設定資訊,然後按一下「儲存」。
Apigee API
如要使用 API 將 API 產品建立為 Space 資源,請傳送要求至 apiproducts/create
端點,並新增 space
屬性。
舉例來說,下列指令會在 acme
組織中建立名為 product-1 的 API 產品,並與「紅色」工作區建立關聯:
curl -X POST "https://apigee.googleapis.com/v1/organizations/acme/apiproducts" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-type: application/json" -d \ `{ "name": "product-1", "displayName": "product-1", "approvalType": "auto", "attributes": [ { "name": "access", "value": "internal" } ], "environments": [ "test" ], "operationGroup": { "operationConfigs": [ { "apiSource": "proxy-1", "operations": [ { "resource": "/", "methods": [ "GET" ] } ] } ], "operationConfigType": "proxy" }, "space": "red" }'
以下範例顯示指令的回應:
{ "name": "product-1", "displayName": "product-1", "approvalType": "auto", "attributes": [ { "name": "access", "value": "internal" } ], "environments": [ "test" ], "createdAt": "1741977778448", "lastModifiedAt": "1741977778448", "operationGroup": { "operationConfigs": [ { "apiSource": "proxy-1", "operations": [ { "resource": "/", "methods": [ "GET" ] } ] } ], "operationConfigType": "proxy" }, "space": "red" }
列出與空間相關聯的所有 API 資源
對於所有清單作業 (包括 ListApiProxies
、ListSharedFlows
和 ListApiProducts
),您可以指定聊天室名稱,列出與該聊天室相關聯的所有資源。如果您未指定聊天室名稱,清單作業會傳回您有權存取的機構內所有資源,無論這些資源是否與聊天室相關聯皆可。
請注意,使用 Apigee Spaces 功能時,指派給空間的 API 資源 list
作業結果,僅限於主要對象可存取的空間結果。舉例來說,如果 acme-team@acme.com
獲得 red 空間的 apigee.spaceContentEditor
角色,使用 list
作業的團隊 acme-team
成員就只會看到與 red 空間相關聯的 API 代理程式,而不會看到組織中的所有 API #proxy。
如要執行這項工作,您必須具備 apigee.apiResources.list
權限。此權限包含在 Apigee > Apigee Organization Admin
角色中。
列出與特定工作區相關聯的 API 資源
在 Cloud 控制台的 Apigee 中列出與特定工作區相關聯的所有 API 資源,或使用 API 列出這些資源,詳情請參閱下文。
Cloud 控制台中的 Apigee
如要列出與 Cloud 控制台 Apigee 中特定工作區相關聯的所有 API 資源,請開啟相關資源類型 (API Proxy、共用流程或 API 產品) 的總覽頁面。在「Filter」方塊中,從清單中選取「Space」選項,然後輸入聊天室名稱。系統會顯示指派給該聊天室的資源清單。請注意,系統只會顯示與使用者所屬聊天室相關聯的資源。
Apigee API
如要列出與指定工作區相關聯的所有 API 資源,請使用下列指令:
curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE?space=SPACE_NAME"
其中:
- ORG_NAME 是 Apigee 機構的名稱。
- RESOURCE_TYPE 是您要列出的資源類型。有效值包括:
apis
sharedFlows
apiProducts
- SPACE_NAME 是您要列出資源的聊天室名稱。
舉例來說,red 團隊成員可使用下列指令,列出與 acme 組織中的 red 工作區相關聯的所有 API 代理程式:
curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/acme/apis?space=red"
以下範例顯示指令的回應:
{ "proxies": [ { "basepaths": "/proxy-1", "revision": "1", "apiProxyId": "proxy-1", "resourceName": "organizations/acme/apis/proxy-1/revisions/1", "space": "red", "createTime": ..., .... } ] }
不指定 Space 就列出 API 資源
在 Cloud 控制台的 Apigee 中列出所有 API 資源,但不指定空間,或使用 API,如以下各節所述。
Cloud 控制台中的 Apigee
如要查看 Cloud 控制台中 Apigee 中特定類型的所有 API 資源清單 (不論是否已與工作區建立關聯),請開啟相關資源類型 (API 代理程式、共用流程或 API 產品) 的總覽頁面。系統會顯示所有可用資源的清單。請注意,系統只會顯示使用者有權查看的資源。這包括與使用者所屬聊天室或聊天室相關聯的資源,或是與聊天室無關的資源。
Apigee API
您也可以使用下列指令,不指定工作區就能列出 API 資源:
curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE"
其中:
- ORG_NAME 是 Apigee 機構的名稱。
- RESOURCE_TYPE 是您要列出的資源類型。有效值包括:
apis
sharedFlows
apiProducts
舉例來說,如果使用者擁有 Organization Admin
存取權,可以使用下列指令列出 acme 機構中的所有 API Proxy:
curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/acme/apis"
如果 acme 機構有三個 Proxy,這個指令會傳回所有三個 Proxy 的詳細資料。例如:
{ "proxies": [ { "basepaths": "/proxy-1", "revision": "1", "apiProxyId": "proxy-1", "resourceName": "organizations/acme/apis/proxy-1/revisions/1", "space": "red", "createTime": ..., .... }, { "basepaths": "/proxy-2", "revision": "1", "apiProxyId": "proxy-2", "resourceName": "organizations/acme/apis/proxy-2/revisions/1", "space": "blue", "createTime": ..., .... }, { "basepaths": "/proxy-3", "revision": "1", "apiProxyId": "proxy-3", "resourceName": "organizations/acme/apis/proxy-3/revisions/1", "space": "green", "createTime": ..., .... } ] }
如果其他使用者只具備 apiAdmin
對 red 空間資源的存取權,並使用相同指令,則該指令只會傳回 proxy-1 的詳細資料。回應如下所示:
{ "proxies": [ { "basepaths": "/proxy-1", "revision": "1", "apiProxyId": "proxy-1", "resourceName": "organizations/acme/apis/proxy-1/revisions/1", "space": "red", "createTime": ..., .... } ] }
後續步驟
- 進一步瞭解 Apigee Spaces。
- 瞭解如何建立及管理 Apigee 聊天室。
- 詳閱 Identity and Access Management (IAM) 說明文件。