准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Enables the Cloud Run API and creates the App Engine app
/ 10
Deploy the backend service
/ 10
Create a service account for the Apigee API proxy
/ 10
Create the Apigee proxy
/ 10
Enable use of the Google Cloud Geocoding API
/ 20
Create a shared flow to call the Geocoding API
/ 20
Add the ATM's address when retrieving a single ATM
/ 20
透過 Google Cloud 的 Apigee API 平台,您可以在現有 API 中加入新功能,讓應用程式煥然一新。
在本實驗室中,您會在 Cloud Run 上部署後端服務。這項後端服務會實作 REST API,在 Firestore 資料庫中儲存及擷取銀行資料 (客戶、帳戶、ATM 和交易)。您建立的 Apigee API Proxy 會代理後端服務。您也會建立共用流程,從外部服務擷取及快取內容。接著,您從 API Proxy 呼叫共用流程,並使用 JavaScript 程式碼修改 API 回應。
在本實驗室中,您將瞭解如何執行下列工作:
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
如有必要,請將下方的 Username 貼到「登入」對話方塊。
您也可以在「Lab Details」窗格找到 Username。
點選「下一步」。
複製下方的 Password,並貼到「歡迎使用」對話方塊。
您也可以在「Lab Details」窗格找到 Password。
點選「下一步」。
按過後續的所有頁面:
Google Cloud 控制台稍後會在這個分頁開啟。
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 。
系統顯示視窗時,請按照下列步驟操作:
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
輸出內容:
輸出內容:
gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
在這項工作中,您會在 Cloud Run 上部署後端服務。
這項服務會為 SimpleBank 導入一個 API。這個 API 提供簡單的銀行資料展示系統,包括客戶、帳戶、交易和自動提款機。SimpleBank 服務是使用 Node.js 建構而成,資料則儲存在 Firestore 中。程式碼會封裝在 Docker 容器中,並部署至 Cloud Run。
如要複製包含 SimpleBank 服務程式碼的存放區,請在 Cloud Shell 中執行下列指令:
建立工作目錄的軟連結:
如要切換至包含 REST 後端的目錄,請執行下列指令:
如要在設定檔中更新區域,請執行下列指令:
專案初始化指令碼 init-project.sh 會在專案中啟用 API。部署 Cloud Run 服務時,必須啟用這些 API。
服務的資料庫將是原生模式的 Firestore。專案只能以原生模式或 Datastore 模式代管單一 Firestore 資料庫。這個指令碼會建立原生模式的 Firestore 資料庫。
如要查看 init-project.sh 執行的指令,請輸入下列指令:
指令碼會啟用 API,並建立原生模式的 Firestore 資料庫。
如要執行指令碼,請輸入下列指令:
按一下「Check my progress」,確認目標已達成。
服務初始化指令碼 init-service.sh 會建立服務帳戶 simplebank-rest。這個服務帳戶代表 Cloud Run 服務。服務帳戶會獲得 roles/datastore.user 角色,可讀取及更新 Firestore 中的資料。
最佳做法是為您的服務建立服務帳戶,並使用最小權限原則授予帳戶權限。根據這項原則,帳戶應只具備執行其獨特功能所需的必要權限。
如要查看 init-service.sh 執行的指令,請輸入下列指令:
指令碼會建立服務使用的服務帳戶,並將角色新增至服務帳戶。
如要執行指令碼,請輸入下列指令:
部署指令碼 deploy.sh 會使用目前目錄中的程式碼建構 simplebank 服務應用程式,並使用 simplebank-rest 服務帳戶將服務部署至 Cloud Run。每次更新應用程式程式碼時,部署指令碼都會執行。
服務的部署設定為僅允許經過驗證的存取,因此必須提供有效的 OpenID Connect 身分識別權杖,才能呼叫服務。
在 Cloud Shell 中,如要查看 deploy.sh 指令碼執行的內容,請輸入下列指令:
這個指令碼會建構 simplebank-grpc 服務,並部署至 Cloud Run。
如要將指令碼部署至 Cloud Run,請輸入下列指令:
按一下「Check my progress」,確認目標已達成。
如要確認服務正在執行,請發出 curl 要求來呼叫服務:
設定 RESTHOST 變數的指令,會使用 gcloud 擷取 simplebank-rest Cloud Run 服務的主機名稱。接著,變數會新增至 .bashrc 檔案,如果 Cloud Shell 重新啟動,系統就會重新載入 RESTHOST 變數。
GET /_status 指令只會傳回 JSON 回應,指出 API 正常運作。您在這項呼叫中使用了 gcloud auth print-identity-token,為登入 Cloud Shell 的使用者取得 OpenID Connect 身分識別權杖。您以專案擁有者角色身分登入,專案擁有者具備非常廣泛的權限。
如要確認服務可以寫入 Firestore,請發出會建立客戶的 curl 要求:
POST /customers 指令會建立客戶。lastName、firstName 和 email 參數皆為必填項目。電子郵件地址不得重複,且會做為客戶的 ID。客戶記錄會儲存在 Firestore 中。
如要確認服務可以從 Firestore 讀取資料,請發出 curl 要求,擷取您剛建立的客戶:
GET /customers/ 指令會從 Firestore 擷取客戶記錄。
如要將一些額外範例資料載入 Firestore,請輸入下列指令:
這項 gcloud 指令會使用 Firestore 匯入/匯出功能,將客戶、帳戶和 ATM 匯入資料庫。
如要擷取 ATM 清單,請執行下列 curl 指令:
如要擷取單一 ATM,請執行下列 curl 指令:
這項要求會依名稱擷取 ATM,而回應會包含 ATM 的經緯度,但不包含地址:
在後續工作中,您將使用 Apigee 和 Geocoding API,在擷取特定 ATM 時將地址新增至傳回的回應。
在這項工作中,您會建立 Apigee API Proxy,做為後端服務的門面元件。API Proxy 會透過服務帳戶,提供 OpenID Connect 身分識別權杖給 Cloud Run 服務。
如要建立 Apigee API 代理可使用的服務帳戶,請輸入下列指令:
gcloud 指令會建立服務帳戶 apigee-internal-access,Apigee Proxy 呼叫後端服務時將使用這個帳戶。
如要授予可存取服務的角色,請輸入下列指令:
這項 gcloud 指令會將服務帳戶 roles/run.invoker 角色授予 simplebank-rest Cloud Run 服務,允許服務帳戶叫用服務。
如要擷取後端服務的網址,請使用下列指令:
請儲存這個網址,建立 API Proxy 時會用到。
按一下「Check my progress」,確認目標已達成。系統可能需要一段時間才會偵測到授予的角色。
如要開啟 Apigee 控制台,請按照下列指示操作:
Apigee,然後點選搜尋結果中的「Apigee API 管理平台」。Apigee 控制台隨即開啟,到達網頁會顯示常用位置的快速連結。
這樣 Apigee 就會固定至導覽選單。
在導覽選單中,依序選取「Proxy 開發」>「API Proxy」。
如要使用 Proxy 精靈建立新的 Proxy,請按一下「+Create」。
您將為後端服務建立反向 Proxy。
針對「Proxy template」,選取「General template」>「Reverse proxyy (Most common)」。
指定「Proxy details」的下列項目:
| 屬性 | 值 |
|---|---|
| Proxy 名稱 | bank-v1 |
| 基本路徑 | /bank/v1 |
| 目標 (現有 API) | 後端網址 |
目標應為先前在這項工作中擷取的後端網址,看起來應如下所示:
點選「下一步」。
保留「部署 (選用)」設定的預設值,然後點選「建立」。
在 Cloud Shell 貼上並執行下列這組指令:
這一連串指令會使用 Apigee API,判斷 Apigee 執行階段執行個體是否建立完畢、eval 環境是否已附加。
等待執行個體準備就緒。
畫面上顯示「***ORG IS READY TO USE***」字樣時,表示執行個體準備就緒。Apigee 組織 (簡稱「組織」) 或許在實驗室啟動前就已建立,因此可能不必等待這個執行個體建立完畢。
等待組織準備就緒期間,歡迎進一步瞭解 Apigee、探索 Apigee X 架構,或學習 API 和 API Proxy 相關內容。
在導覽選單中,依序選取「Proxy 開發」>「API Proxy」,然後點選「bank-v1」。
按一下「部署」。
在「環境」部分,選取「評估」。
在「服務帳戶」部分,指定服務帳戶的電子郵件地址:
依序按一下「部署」>「確認」。
等待「評估」部署作業狀態顯示 Proxy 部署完畢。
您可使用主機名稱 eval.example.com 呼叫 Apigee 組織的 eval 環境。這個主機名稱的 DNS 項目已在專案中建立,會解析為 Apigee 執行階段執行個體的 IP 位址。這個 DNS 項目是在私人可用區建立,只會顯示於內部網路。
Cloud Shell 不位於內部網路,因此無法使用 Cloud Shell 指令解析這個 DNS 項目。專案中的虛擬機器 (VM) 可存取私人可用區 DNS。系統已自動建立虛擬機器 apigeex-test-vm,可用來呼叫 API Proxy。
在 Cloud Shell 開啟連至測試 VM 的 SSH 連線:
第一個 gcloud 指令會擷取測試 VM 的可用區,第二個指令則會開啟與 VM 的 SSH 連線。
如果系統要求您授權,請點按「授權」。
對於 Cloud Shell 中顯示的每個問題,按下 Enter 或 Return 鍵使用預設輸入內容。
您是以專案擁有者的身分登入,因此能透過 SSH 連至這個機器。
Cloud Shell 工作階段現在會在 VM 內執行。
在「評估」環境呼叫部署的 bank-v1 API Proxy:
-k 選項會告知 curl 略過 TLS 憑證驗證。本實驗室的 Apigee 執行階段使用的憑證為自行簽署,而非由信任的憑證授權單位 (CA) 建立。
-k 選項,在正式環境中略過憑證驗證。
系統會傳回 403 Forbidden 狀態碼,並顯示錯誤訊息,指出您的用戶端無權取得網址。由於用戶端未在要求中提供必要權杖,因此後端服務拒絕了要求。API Proxy 是以正確的身分執行,但您仍需強制將 OpenId Connect 身分權杖隨要求一起傳送。
返回 bank-v1 Proxy,然後按一下「開發」分頁。
在 Proxy 的左選單中,在「目標端點」>「預設」部分按一下「PreFlow」。
找出下列程式碼 (不同於您的網址):
在 HTTPTargetConnection 部分中,於網址下方新增「驗證」部分,如下所示:
將 AUDIENCE 替換為 HTTPTargetConnection 部分中已有的網址值。程式碼現在看起來應會如下方所示,只是 URL 和 Audience 元素要替換成實際網址:
依序點選「儲存」和「另存為新的修訂版本」。
按一下「部署」。
在「環境」部分,選擇「評估」。
在「服務帳戶」部分,指定服務帳戶的電子郵件地址:
依序按一下「部署」>「確認」。
按一下「總覽」分頁,並等待「評估」部署狀態顯示已部署新修訂版本。
按一下「Check my progress」,確認目標已達成。
如果 SSH 登入逾時,請在 Cloud Shell 中執行下列指令,重新建立連線:
在 VM 內重新執行狀態指令:
您應會看到類似下方內容的成功 (200) 回應:
這項回應表示 API Proxy 成功呼叫後端服務。
輸入 exit 指令,離開 SSH 工作階段並返回 Cloud Shell。
在這項工作中,您將啟用 Geocoding API。從 SimpleBank 服務擷取 ATM 時,可以在 API Proxy 中使用這項 API 將地址資訊新增至回應。
執行下列指令,在 Cloud Shell 啟用 Geocoding API:
接著,您將建立可存取 Geocoding API 的 API 金鑰。
如要建立 API 金鑰,請執行下列指令:
gcloud 指令會建立 API 金鑰,以便傳送要求至 Geocoding API。提供 --format 參數,即可選取回應中的 keyString 欄位,並儲存在 API_KEY 殼層變數中。接著,API_KEY 變數會儲存在 Cloud Shell 的 .bashrc 檔案中。
按一下「Check my progress」,確認目標已達成。
如要擷取特定經緯度的地理編碼資訊,請執行下列 curl 指令:
這項指令會呼叫 Geocoding API,並提供 API 金鑰和所需的經緯度。回應會包含結果陣列,每項結果都有格式化地址。在 API Proxy 中,您將使用第一項結果的格式化地址,在擷取單一 ATM 的詳細資料時,將地址新增至 API 回應。
在這項工作中,您會建立共用流程,用於呼叫 Google Geocoding API。透過共用流程,您可以將政策和資源組合成單一流程,供多個 API Proxy 或其他共用流程使用。
共用流程會使用以下模式:
資料庫中的 ATM 數量有限,且 ATM 的經緯度不會變。為避免過度呼叫 Geocoding API,系統會使用經緯度做為快取金鑰,以快取擷取的地址。如果指定經緯度的地址不在快取中,系統會呼叫 Geocoding API,並將傳回的地址儲存在快取中。
get-address-for-location,然後按一下「建立」。如果先前已快取地址,LookupCache 政策就會擷取地址。
在共用流程的左選單中,按一下「共用流程」部分中的「預設」。
在 sharedflows/default.xml 窗格中,按一下「新增政策步驟」圖示 ()。
選取「建立新政策」。
在「選取政策」 中,依序選取「流量管理」>「查詢快取」。
在「詳細資料」部分中,設定以下項目:
| 屬性 | 值 |
|---|---|
| 名稱 | LC-LookupAddress |
| 顯示名稱 | LC-LookupAddress |
依序按一下「新增」和「LC-LookupAddress」。
政策會新增至流程,且政策的設定 XML 會顯示在流程下方的窗格中。
確認窗格中是否有 LookupCache 設定,然後將該設定替換為以下內容:
這項政策會在 AddressesCache 中尋找符合指定經緯度的項目,並將找到的值指派給變數地址。
服務呼叫政策會呼叫 Google Geocoding API。
在共用流程的左選單中,按一下「共用流程」部分中的「預設」。
在 sharedflows/default.xml 窗格中,按一下「新增政策步驟」圖示 ()。
選取「建立新政策」。
在「選取政策」中,依序選取「擴充功能」>「服務呼叫」。
在「詳細資料」部分中,設定以下項目:
| 屬性 | 值 |
|---|---|
| 名稱 | SC-GoogleGeocode |
| 顯示名稱 | SC-GoogleGeocode |
「HTTP 目標」欄位維持不變,依序按一下「新增」和「SC-GoogleGeocode」。
確認窗格中是否有 ServiceCallout 設定,然後將該設定替換為以下內容:
這項政策會使用 geocoding.latitude、geocoding.longitude 和 geocoding.apikey 變數,來呼叫 Geocoding API。API 呼叫回應會儲存在 calloutResponse 變數中。
ExtractVariables 政策會從 Google Geocoding API 回應中擷取格式化地址。
在共用流程的左選單中,按一下「共用流程」部分中的「預設」。
在 sharedflows/default.xml 窗格中,按一下「新增政策步驟」圖示 ()。
選取「建立新政策」。
在「選取政策」中,依序選取「調節」>「擷取變數」。
在「詳細資料」部分中,設定以下項目:
| 屬性 | 值 |
|---|---|
| 名稱 | EV-ExtractAddress |
| 顯示名稱 | EV-ExtractAddress |
依序按一下「新增」和「EV-ExtractAddress」。
確認窗格中是否有 ExtractVariables 設定,然後將該設定替換以下內容:
這項政策會使用 JSONPath,從 calloutResponse 訊息 JSON 酬載的第一個結果中,擷取 formatted_address。地址會儲存在 geocoding.address 變數中。
PopulateCache 政策會將地址儲存在快取中。
在共用流程的左選單中,按一下「共用流程」部分中的「預設」。
在 sharedflows/default.xml 窗格中,按一下「新增政策步驟」圖示 ()。
選取「建立新政策」。
在「選取政策」中,依序選取「流量管理」>「PopulateCache」。
在「詳細資料」部分中,設定以下項目:
| 屬性 | 值 |
|---|---|
| 名稱 | PC-StoreAddress |
| 顯示名稱 | PC-StoreAddress |
依序按一下「新增」和「PC-StoreAddress」。
確認窗格中是否有 PopulateCache 設定,然後將該設定替換為以下內容:
這項政策會使用與 LookupCache 政策相同的經緯度金鑰片段,以相同順序將 address 變數中的值儲存至 AddressesCache。ExpirySettings/TimeoutInSec 設定指定儲存的資料將快取 3600 秒,也就是 1 小時。
如果系統在特定經緯度的快取中找到地址 (快取命中),則不需要 ServiceCallout、ExtractVariables 和 PopulateCache 政策,應予以略過。
在共用流程的左選單中,按一下「共用流程」部分中的「預設」。
「程式碼」窗格包含「預設流程」,其中列出已附加的四項政策:
每個 Step 都會指定已附加的政策,Name 則用於指定附加政策的名稱。您還可以新增 Condition 元素,指定用於決定政策是否應執行的布林值條件。
回顧工作一開始的共用流程模式。如果地址查詢成功,就不需要呼叫服務或將資料存回快取。在這種情況下,請略過政策步驟 2 到 4。
LookupCache 政策會設定變數,指出項目是否在快取中找到。如果變數 lookupcache.{policyName}.cachehit 為 false,表示系統找不到項目。僅在沒有快取命中時,才應執行第 2 步到第 4 步的政策。
從第 2 步到第 4 步,在 Step 元素內加入下列條件:
全部新增完畢後,共用流程應如下所示:
按一下「儲存」。
按一下「部署」。
在「環境」部分,選擇「評估」。
將「服務帳戶」留白,然後依序按一下「部署」和「確認」。
共用流程會使用 API 金鑰呼叫 Geocoding API,因此不需要服務帳戶。
如要測試共用流程,只能從 API Proxy 呼叫。
按一下「Check my progress」,確認目標已達成。
在這項工作中,您會將 FlowCallout 政策新增至 API Proxy,以呼叫剛建立的共用流程。擷取特定 ATM 時,API Proxy 必須從 Cloud Run 服務回應中擷取經緯度,並呼叫共用流程來擷取對應地址。接著,JavaScript 政策會將地址新增至 API 回應。
屬性集可用於儲存不會過期的資料,這份資料能輕鬆自 API Proxy 存取。屬性集值會保留 API 金鑰。
在左側導覽選單中,依序選取「Proxy 開發」>「API Proxy」。
按一下「bank-v1」,然後選取「Develop」分頁。
在 Proxy 的左選單中,按一下「資源」部分中的「新增資源」 ()。
在「資源類型」下拉式選單中,選取「屬性集」。
在「資源名稱」中指定 geocoding.properties,然後按一下「新增」。
在 geocoding.properties 窗格中,新增下列屬性:
將 <APIKEY> 替換為您在工作 3 中建立的 API_KEY。
您可以在 Cloud Shell 中使用下列指令擷取 API_KEY:
您的 geocoding.properties 檔案應大致如下所示:
在 Proxy 的左選單中,按一下「Proxy 端點」部分中的「預設」。
在 proxy-endpoints/default.xml 窗格中,按一下「Proxy 端點:預設」旁的「新增條件式流程」 ()。
在「新增條件式流程」對話方塊中,指定下列值:
| 屬性 | 值 |
|---|---|
| 流程名稱 | GetATM |
| 說明 | 擷取單一 ATM |
| 條件類型 | 選取「路徑和動詞」 |
| 路徑 | /atms/{name} |
| 動詞 | 選取 GET |
將「目標網址」留空。
按一下「新增」。
API Proxy 由許多流程組成,每個流程都有提供以步驟形式附加政策的位置。以下是 API Proxy 的圖表:
只有在條件為 true 時,系統才會執行條件式流程設定。在這個條件式流程中,proxy.pathsuffix 變數必須符合 /atms/{name} 格式,且 request.verb 變數必須為 GET。
請將一些政策附加至 GetATM 條件式流程,即可只針對 GET /atms/{name} 要求執行政策。政策必須在呼叫後端服務後執行,因此必須附加至「Proxy 端點回應」條件式流程。
在「Proxy 端點:預設」流程的「回應」部分,按一下「GetATM」右側的「新增流程步驟」 ()。
選取「建立新政策」。
在「選取政策」中,依序選取「調節」>「擷取變數」。
在「詳細資料」部分中,設定以下項目:
| 屬性 | 值 |
|---|---|
| 名稱 | EV-ExtractLatLng |
| 顯示名稱 | EV-ExtractLatLng |
依序按一下「新增」和「EV-ExtractLatLng」。
確認窗格中是否有 ExtractVariables 設定,然後將該設定替換以下內容:
這項政策會從後端服務的 GET /atms/{name} JSON 回應中,擷取「經度」和「經度」。IgnoreUnresolvedVariables 元素設為 true,表示即使在回應中找不到緯度和經度,系統仍會繼續處理。
在「Proxy 端點:預設」流程的「回應」部分,按一下「GetATM」右側的「新增流程步驟」 ()。
選取「建立新政策」。
在「選取政策」部分,依序選取「擴充功能」>「流程呼叫」。
在「詳細資料」部分中,設定以下項目:
| 屬性 | 值 |
|---|---|
| 名稱 | FC-GetAddress |
| 顯示名稱 | FC-GetAddress |
| 共用流程 | 選取 get-address-for-location |
| 條件 | latitude != null AND longitude != null |
如果系統未擷取 ATM 的經緯度,就無法判斷地址,因此會略過政策步驟。
依序按一下「新增」和「FC-GetAddress」。
確認窗格中是否有 FlowCallout 設定,然後將該設定替換為以下內容:
這項政策會將經緯度和 apikey 變數設為共用流程參數,並呼叫共用流程。共用流程會設定 geocoding.address 變數。
在「Proxy 端點:預設」流程的「回應」部分,按一下「GetATM」右側的「新增流程步驟」 ()。
選取「建立新政策」。
在「選取政策」部分,選取「擴充功能」>「JavaScript」。
在「詳細資料」部分中,設定以下項目:
| 屬性 | 值 |
|---|---|
| 名稱 | JS-AddAddress |
| 顯示名稱 | JS-AddAddress |
| JavaScript 檔案 | 選取「建立新資源」 |
在「新增資源」部分,指定下列項目:
| 屬性 | 值 |
|---|---|
| 來源 | 選取「建立新檔案」 |
| 資源名稱 | addAddress.js |
依序按一下「新增」和「addAddress.js」。
將「條件」指定為 latitude != null AND longitude != null。
依序按一下「新增」和「JS-AddAddress」。
在 Proxy 的左選單中,按一下「資源 > jsc」部分中的「addAddress.js」。
addAddress.js 程式碼的窗格為空白。
新增下列 JavaScript 程式碼,將地址加入回應:
這段程式碼會將 JSON 回應酬載剖析為物件、在物件中新增地址欄位、將物件轉換回 JSON 字串,然後儲存在回應中。
使用 try/catch 模塊,避免例外狀況從 JavaScript 政策中擲回。如果未捕捉到例外狀況,系統會引發錯誤,導致 API Proxy 處理作業取消。
在 Proxy 的左選單中,按一下「Proxy 端點 > 預設」部分中的「GetATM」。
「程式碼」窗格包含 Get ATM 流程,其中列出已附加的三項政策,以及第二和第三項政策的條件:
依序點選「儲存」和「另存為新的修訂版本」。
按一下「部署」。
在「環境」部分,選擇「評估」。
在「服務帳戶」部分,指定服務帳戶的電子郵件地址:
依序按一下「部署」>「確認」。
按一下「總覽」分頁,並等待「評估」部署狀態顯示已部署新修訂版本。
按一下「Check my progress」,確認目標已達成。
在 Cloud Shell 開啟連至測試 VM 的 SSH 連線:
使用下列指令呼叫 bank-v1 Proxy,並擷取所有 ATM:
由於要求未使用 GET /atms/{name} 流程,因此回應不含地址。
擷取單一 ATM:
回應現在包含 API Proxy 中新增的地址:
在本實驗室中,您已成功在 Cloud Run 上部署後端服務,並建立 Apigee API Proxy 將要求轉傳到後端服務。您建立的共用流程會從外部服務擷取內容並快取。接著,您從 API Proxy 呼叫共用流程,並使用 JavaScript 程式碼修改 API 回應。
使用手冊上次更新日期:2024 年 7 月 16 日
實驗室上次測試日期:2024 年 7 月 16 日
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验