透過 HTTPS 要求叫用

建立服務或函式後,Cloud Run 會提供服務的 HTTPS 端點。您可以啟用這項服務,以便回應 HTTPS 要求。

所有 Cloud Run 服務都有固定的 HTTPS 網址,代表服務的預設 HTTPS 端點,但您也可以設定自訂網域

部分用途包括:

  • 自訂 RESTful Web API
  • 私有微服務
  • 網頁應用程式的 HTTP 中介軟體或反向 Proxy
  • 預先封裝的網頁應用程式

建立公開服務

如要在 Cloud Run 上建立公開服務,必須符合下列條件:

  • 從公開網際網路存取服務
  • 供公開使用的網址

如要公開服務,請在部署服務時,或部署服務後,將服務設為允許未經驗證 (公開) 的存取權。

服務網址

Cloud Run 會為所有服務指派以雜湊為基礎的非確定性網址。如果服務名稱長度允許,Cloud Run 也會為服務指派確定性網址

您可以停用這些預設 run.app 網址

如要擷取服務的網址,請在Google Cloud 控制台中按一下服務名稱,或在 gcloud CLI 中執行下列指令:

gcloud run services describe SERVICE --format 'value(status.url)'

顯示時,系統會優先採用確定性網址。

如果 Cloud Run 服務是使用 Cloud Functions v2 API 建立的函式,系統也會為該服務指派 cloudfunctions.net 網址。

確定性網址

確定性網址可讓您在建立服務前預測服務網址,這對服務間的通訊很有幫助。

確定性網址僅適用於 63 個字元以下的 DNS 區隔。DNS 區段包含服務名稱、專案編號,以及任何流量標記。

Cloud Run 服務的確定性網址格式如下:

https://[TAG---]SERVICE_NAME-PROJECT_NUMBER.REGION.run.app

其中:

  • TAG 是您要求修訂版本的選用流量標記
  • PROJECT_NUMBER 是 Google Cloud 專案編號
  • SERVICE_NAME 是 Cloud Run 服務的名稱。
  • REGION 是區域名稱,例如 europe-west1

非確定性網址

非絕對網址沒有絕對格式,也就是說,由於網址的第二個欄位是隨機雜湊,因此您無法在部署服務前預測完整網址。不過,服務部署完成後,網址就會保持穩定。

Cloud Run 服務的不確定性網址格式為 https://[TAG---]SERVICE_IDENTIFIER.run.app,其中 TAG 是您要求修訂版本的選用流量標記SERVICE_IDENTIFIER 則是 Cloud Run 服務的穩定且專屬的 ID。請勿剖析 SERVICE_IDENTIFIER,因為該值沒有固定格式,且 SERVICE_IDENTIFIER 的產生邏輯可能會變更。

逐句顯示回覆

Cloud Run 支援串流 HTTP 回應。啟用這項功能時,不需要進行任何設定。伺服器必須以 Transfer-Encoding: chunked 回應標頭回應。

從 HTTP 重新導向至 HTTPS

Cloud Run 會將所有 HTTP 要求重新導向至 HTTPS,但會在要求抵達網路服務前終止 TLS。如果服務產生的網頁資源參照其他網頁資源,但使用不安全的網址 (http://),網頁可能會出現混合內容警告或錯誤。針對 HTTP 要求中的所有參照網頁 URI 或帳戶,使用 https 通訊協定 (例如 X-Forwarded-Proto HTTP 標頭)。

HTTP 和 HTTP/2

在預設情況下,Cloud Run 會將 HTTP/2 要求降級為 HTTP/1,再傳送至容器。如要明確設定服務使用 HTTP/2 端對端,請參閱「使用 HTTP/2」。

建立私人服務

在 Cloud Run 上建立私人服務時,您必須運用 IAM 叫用者權限,限制服務的存取權。

您也可以使用應用程式層級的授權和驗證機制 (例如 Identity Platform),限制服務存取權。

測試私人服務

如要測試私人服務,最簡單的方式是使用 Google Cloud CLI 中的 Cloud Run Proxy。這會將私有服務代理至 http://localhost:8080 (或以 --port 指定的連接埠),並提供有效帳戶的權杖或您指定的其他權杖。這樣您就能使用網路瀏覽器或 curl 等工具。建議您使用這種方式,在瀏覽器中私下測試網站或 API。

您可以在 Linux、macOS、WSL (建議)cygwin 環境中,使用下列指令列在本機 Proxy 服務:

gcloud run services proxy SERVICE --project PROJECT-ID

您也可以使用 curl 等工具測試私人服務,而不使用 Proxy,方法是在 Authorization 標頭中傳遞驗證權杖:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL

服務對服務的私人連線

Cloud Run 服務可透過服務對服務驗證呼叫其他 Cloud Run 服務。

叫用私人服務的程式碼範例

如需程式碼範例,瞭解如何取得 ID 權杖並向私人服務發出 HTTP 要求,請參閱「服務對服務驗證」主題。

使用中介軟體提升服務品質

HTTPS Proxy 可從 HTTP 服務卸載常見功能,例如快取、要求驗證或授權。對於微服務,許多 HTTP 代理伺服器是 API 閘道解決方案或服務網格 (例如 Istio) 的一部分。

Google Cloud 可提升 Cloud Run 服務效能的產品包括: