本頁內容適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
本主題說明如何在 Space 中建立及管理 API 資源。您可以在空間中建立 API Proxy、共用流程和 API 產品。在空間中建立的資源會沿用空間的權限。
在 Space 中建立資源與在 Apigee 機構下建立資源相同,但建立資源時可以選取 Space。您可以使用 Apigee API 從指令列建立 API 資源,也可以使用 Apigee UI 建立。
本指南將說明下列步驟:
如要瞭解 Apigee Spaces 總覽,請參閱「Apigee Spaces」。
如要進一步瞭解 Apigee API 資源類型,請參閱:
事前準備
開始在 Apigee Spaces 中建立 API 資源之前,請務必完成下列工作:
- 佈建 Apigee 訂閱或即付即用機構。 如要進一步瞭解佈建 Apigee 的必要步驟,請參閱「設定 Apigee」。
- 在 Apigee 機構中建立 Space。詳情請參閱「 建立 Apigee Spaces」。
- 將成員指派給聊天室。詳情請參閱「 管理聊天室中的成員和角色」。
必要角色和權限
隨著 Apigee Spaces 的推出,IAM 檢查 API 資源上執行某些作業所需權限的方式也隨之改變。 如果 API 資源位於 Space 中,IAM 會檢查執行作業的 Space 成員是否具備適當的 Space 層級權限。詳情請參閱「 Apigee Spaces 角色和權限」和「 Apigee Spaces 的 IAM 權限階層」。
為聊天室成員指派角色和權限
聊天室成員可使用三種自訂角色:
apigee.spaceContentEditor:可完整存取能與空間建立關聯的資源。這個角色應在空間層級授予。apigee.spaceContentViewer:提供能與空間建立關聯的資源唯讀存取權。 這個角色應在空間層級授予。apigee.spaceConsoleUser:提供透過 Google Cloud 控制台管理空間資源所需的最低權限。 應在 Google Cloud 專案層級授予這個角色,讓使用者存取該空間中的資源。
本節所述的自訂角色無法讓 Space 成員部署或取消部署 API Proxy 或共用流程。如要允許聊天室成員管理部署作業,請在 Apigee 環境或 Google Cloud 專案層級設定 IAM 政策,將 apigee.environment.admin 角色授予聊天室成員。
你可以使用下列任一方法,為即時通訊空間成員指派一或多個角色:
- 使用 API 將
apigee.spaceContentEditor角色新增至 Space ,並使用 API 將apigee.environmentAdmin角色新增至目標環境 。 - 使用 IAM 使用者介面將角色新增至專案。
如要檢查 Google Cloud 專案層級的角色,請執行下列操作:
-
前往 Google Cloud 控制台的「IAM」頁面。
前往「IAM」頁面 - 選取專案。
-
在「主體」欄中,找出所有識別您或您所屬群組的資料列。如要瞭解自己所屬的群組,請與管理員聯絡。
- 針對指定或包含您的所有資料列,請檢查「角色」欄,確認角色清單是否包含必要角色。
如何授予角色
-
前往 Google Cloud 控制台的「IAM」頁面。
前往 IAM - 選取專案。
- 點按「 Grant access」(授予存取權)。
-
在「New principals」(新增主體) 欄位中,輸入您的使用者 ID。 這通常是指 Google 帳戶的電子郵件地址。
- 在「Select a role」(選取角色) 清單中,選取角色。
- 如要授予其他角色,請按一下「Add another role」(新增其他角色),然後新增其他角色。
- 按一下「儲存」。
如要查看在聊天室層級套用的 IAM 政策,請參閱「 管理聊天室中的成員和角色」。
在空間中管理 API Proxy
指派給 Space 的 Apigee 機構成員可以建立 API Proxy 做為 Space 資源。如果成員只獲派其他工作區,就無法存取或管理這些 Proxy。
使用 Apigee UI 或 API,以 Space 資源的形式建立 API Proxy,詳情請參閱下列各節。
Apigee UI
如要使用 Apigee UI 建立 API Proxy 做為 Space 資源,請按照下列步驟操作:
- 請按照「建立 API Proxy」一文提供的步驟操作。
- 在步驟 5 中,您會在「Proxy details」(Proxy 詳細資料) 下方看到額外欄位,可為 API Proxy 選取「Space」(空間)。從清單方塊中選取所需空間。如果不想將 API Proxy 指派給空間,可以略過這個欄位。
- 按一下「下一步」,即可繼續執行 Proxy 建立作業的選用部署步驟,或按一下「建立」,即可建立 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 的 Space 名稱。
- PROXY_BUNDLE 是 API Proxy 套件檔案的名稱。
舉例來說,使用下列指令時,red 團隊成員會使用 proxy-bundle.zip 檔案,在 acme 機構中建立名為 proxy-1 的 API 代理伺服器,做為 red Space 資源:
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": ...
}以聊天室資源身分管理共用流程
指派給聊天室的成員也可以建立共用流程,做為聊天室資源。其他工作區的成員無法存取或管理這些共用流程。
請按照下列各節所述,使用 Apigee 使用者介面或 API,將共用流程建立為 Space 資源。
Apigee UI
如要使用 Apigee UI 建立共用流程做為 Space 資源,請按照下列步驟操作:- 按照「在 Apigee UI 中建立共用流程」一文中的步驟操作,從頭建立新的共用流程,或上傳現有流程套件。
- 在步驟 4 中,您會在「建立共用流程」對話方塊中看到額外欄位,可為 API Proxy 選取「空間」。從清單方塊中選取所需空間。如果不想將 API 代理伺服器指派給空間,可以略過這個欄位。
- 按一下「建立」,建立共用流程。
Apigee API
如要使用 Apigee API 將共用流程建立為 Space 資源,請使用下列指令:
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 是您要建立共用流程的 Space 名稱。
- SHARED_FLOW_BUNDLE 是共用流程套件檔案的名稱。
舉例來說,使用下列指令時,red 團隊成員會在 acme 機構中,建立與 red 空間相關聯的共用流程,並將該流程命名為 flow-1:
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 產品視為 Space 資源進行管理
指派給 Space 的成員可以建立 API 產品,以便整合 API Proxy。 建立 API 產品時,聊天室成員可以選取任何可存取的 API Proxy,包括直接在機構下建立的 Proxy,以及在成員所屬聊天室中建立的 Proxy。其他工作區的成員無法存取或管理這些 API 產品。
使用 Apigee UI 或 API 建立 API 產品做為 Space 資源,詳情請參閱下列章節。
Apigee UI
如要使用 Apigee UI 建立 API 產品做為 Space 資源,請按照下列步驟操作:
- 按照「建立 API 產品」一文中的步驟操作。
- 在步驟 4 中,您會在「產品詳細資料」頁面看到額外欄位,可為 API 產品選取「空間」。從清單方塊中選取所需空間。如不想將 API 產品指派給空間,可以略過這個欄位。
- 填寫其餘設定資訊,然後按一下「儲存」。
Apigee API
如要使用 API 建立 API 產品做為 Space 資源,請對 apiproducts/create 端點發出要求,並新增 space 屬性。
舉例來說,下列指令會在 acme 機構中建立名為 product-1 的 API 產品,並與 red Space 建立關聯:
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 功能時,指派給 Space 的 API 資源 list 作業結果,僅限於主體可存取的 Space 結果。舉例來說,如果 acme-team@acme.com 獲得 red Space 的 apigee.spaceContentEditor 角色,團隊 acme-team 成員使用 list 作業時,只會看到與 red Space 相關聯的 API Proxy,而不會看到機構中的所有 API Proxy。
如要執行這項工作,您必須具備 apigee.apiResources.list 權限。此權限包含在 Apigee > Apigee Organization Admin 角色中。
列出與特定空間相關聯的 API 資源
在 Apigee UI 中列出與特定空間相關聯的所有 API 資源,或使用 API (如下節所述)。
Apigee UI
如要在 Apigee UI 中列出與特定 Space 相關聯的所有 API 資源,請開啟相關資源類型 (API Proxy、共用流程或 API 產品) 的總覽頁面。在「篩選器」方塊中,從清單選取「空間」選項,然後輸入空間名稱。系統會顯示指派給該空間的資源清單。請注意,系統只會顯示與使用者所屬 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 是您要列出的資源類型。有效值包括:
apissharedFlowsapiProducts
- SPACE_NAME 是列出資源的 Space 名稱。
舉例來說,red 團隊成員可使用下列指令,列出與 acme 機構中 red Space 相關聯的所有 API Proxy:
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": ...,
....
}
]
}列出 API 資源,但不指定 Space
如要列出所有 API 資源,請勿在 Apigee 使用者介面中指定「空間」,或使用 API,詳情請參閱下列章節。
Apigee UI
如要在 Apigee 使用者介面中查看特定類型 (API Proxy、共用流程或 API 產品) 的所有 API 資源清單,不論是否與 Space 相關聯,請開啟相關資源類型的總覽頁面。系統會顯示所有可用資源的清單。請注意,系統只會顯示使用者有權查看的資源。包括與使用者所屬聊天室相關聯的資源,或與聊天室無關的資源。
Apigee API
您也可以使用下列指令列出 API 資源,而不必指定空間:
curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE"
其中:
- ORG_NAME 是 Apigee 機構的名稱。
- RESOURCE_TYPE 是您要列出的資源類型。有效值包括:
apissharedFlowsapiProducts
舉例來說,如果使用者有權存取所有機構資源,可以使用下列指令列出 acme 機構中的所有 API Proxy:Organization Admin
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": ...,
....
}
]
}如果另一個使用者只對空間 red 中的資源具有 apiAdmin 存取權,並使用相同指令,則該指令只會傳回 proxy-1 的詳細資料。回應內容如下:
{
"proxies": [
{
"basepaths": "/proxy-1",
"revision": "1",
"apiProxyId": "proxy-1",
"resourceName": "organizations/acme/apis/proxy-1/revisions/1",
"space": "red",
"createTime": ...,
....
}
]
}