快速入門導覽課程:建構 PHP 網頁應用程式並部署至 Cloud Run
瞭解如何 Google Cloud在 Cloud Run 使用單一指令,依據程式碼範例建構及部署「Hello World」網頁應用程式。
按照本快速入門導覽課程的步驟操作時,Cloud Run 會在您從原始碼部署時,自動為您建構 Dockerfile。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自體驗產品的實際應用成效。新客戶還能獲得價值 $300 美元的免費抵免額,能用於執行、測試及部署工作負載。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
-
建立專案:如要建立專案,您必須具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
-
如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
-
建立專案:如要建立專案,您必須具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
-
如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。
- 如要為 Cloud Run 服務設定預設專案,請按照下列步驟操作:
將 PROJECT_ID 替換為您的 Google Cloud 專案 ID。gcloud config set project PROJECT_ID
如果您的專案受到網域限制組織政策限制,無法進行未經驗證的叫用,則必須按照「測試私人服務」一節所述的方式存取已部署的服務。
-
啟用 Cloud Run Admin API 和 Cloud Build API (如果尚未啟用):
啟用 API 所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable run.googleapis.com
cloudbuild.googleapis.com 啟用 Cloud Run Admin API 後,系統會自動建立 Compute Engine 預設服務帳戶。
- 查看 Cloud Run 定價,或使用 Pricing Calculator 估算費用。
必要的角色
如要取得完成本快速入門導覽課程所需的權限,請要求管理員授予您下列 IAM 角色:
- 專案的 Cloud Run 管理員 (
roles/run.admin) - 專案的 Cloud Run 原始碼開發人員 (
roles/run.sourceDeveloper) - 服務身分的服務帳戶使用者 (
roles/iam.serviceAccountUser) - 專案的記錄檢視器 (
roles/logging.viewer)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
授予 Cloud Build 服務帳戶專案存取權
除非您覆寫這項行為,否則 Cloud Build 會自動使用 Compute Engine 預設服務帳戶做為預設的 Cloud Build 服務帳戶,以建構原始碼和 Cloud Run 資源。
如要讓 Cloud Build 建構來源,請將專案的 Cloud Run 建構者 (roles/run.builder) 角色授予 Cloud Build 服務帳戶:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
將 PROJECT_ID 替換為您的 Google Cloud專案 ID,並將 SERVICE_ACCOUNT_EMAIL_ADDRESS 替換為 Cloud Build 服務帳戶的電子郵件地址。如果您使用 Compute Engine 預設服務帳戶做為 Cloud Build 服務帳戶,請使用下列格式的服務帳戶電子郵件地址:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
將 PROJECT_NUMBER 替換為您的 Google Cloud專案編號。
如要進一步瞭解如何找出專案 ID 和專案編號,請參閱「建立及管理專案」。
授予 Cloud Run 建構工具角色後,需要幾分鐘的時間才會生效。
編寫範例應用程式
如要使用 PHP 編寫應用程式,請按照下列步驟操作:
建立名為
helloworld-php的新目錄,然後切換至該目錄:mkdir helloworld-php cd helloworld-php建立名為
index.php的檔案,然後將下列程式碼貼入該檔案:這段程式碼會以「Hello World」問候語回應要求。HTTP 處理作業是由容器中的 Apache 網路伺服器完成。
在來源檔案所在的目錄中,建立名為
Dockerfile的新檔案。PHP Dockerfile 會啟動 Apache 網路伺服器,監聽PORT環境變數定義的通訊埠:新增
.dockerignore檔案,從容器映像檔排除檔案。
應用程式已完成,可以部署。
從來源部署至 Cloud Run
從來源部署功能會自動從原始碼建構容器映像檔,並進行部署。
如要從來源部署:
在原始碼目錄中,使用下列指令部署目前資料夾:
gcloud run deploy --source .
系統提示您輸入服務名稱時,請按下 Enter 鍵接受預設名稱,例如
helloworld。如果系統提示您在專案中啟用其他 API (例如 Artifact Registry API),請按下
y回應。系統提示您選擇區域時,請選取偏好的區域,例如
europe-west1。如果系統提示您在指定區域建立存放區,請按下
y回應。如果系統提示您允許公開存取,請回覆
y。如果組織政策限制網域,可能就不會看到這個提示。詳情請參閱「事前準備」一節。
然後稍等片刻,等待部署成功。成功完成後,指令列會顯示服務網址。
在網路瀏覽器中開啟服務網址,即可造訪已部署的服務。
Cloud Run 位置
Cloud Run 具有區域性,這表示執行 Cloud Run 服務的基礎架構位於特定區域,並由 Google 負責管理,實現該區域內所有可用區之間的備援可用性。
選擇執行 Cloud Run 服務的區域時,主要考量重點在於延遲時間、可用性或耐用性需求。原則上可以選擇距離使用者最近的區域,但也應考慮 Cloud Run 服務所用其他 Google Cloud產品的位置。如果跨多個位置一起使用產品,可能會影響服務的延遲時間和成本。 Google Cloud
Cloud Run 可在下列地區使用:
採用級別 1 定價
asia-east1(臺灣)asia-northeast1(東京)asia-northeast2(大阪) <asia-south1(印度孟買)asia-southeast3(曼谷) <0x0Aeurope-north1(芬蘭)低二氧化碳排放2
europe-north2(斯德哥爾摩)低二氧化碳排放
europe-southwest1(馬德里)低二氧化碳排放2
europe-west1(比利時)低二氧化碳排放2
europe-west4(荷蘭)低二氧化碳排放2
europe-west8(米蘭)低二氧化碳排放2
europe-west9(巴黎)低二氧化碳排放
me-west1(特拉維夫) <0xnorthamerica-south1(墨西哥) <us-central1(愛荷華州)低二氧化碳排放2
us-east1(南卡羅來納州) <us-east4(北維吉尼亞州)us-east5(哥倫布)us-south1(達拉斯)低二氧化碳排放
us-west1(奧勒岡州)低二氧化碳排放2
採用級別 2 定價
africa-south1(約翰尼斯堡) <0xasia-east2(香港)asia-northeast3(韓國首爾)asia-southeast1(新加坡) <asia-southeast2(雅加達) <0x0asia-south2(印度德里)australia-southeast1(雪梨) <0x0Aaustralia-southeast2(墨爾本) <0x0europe-central2(波蘭華沙)低二氧化碳2
europe-west10(柏林) <0x0Aeurope-west12(杜林)低二氧化碳排放
europe-west2(英國倫敦)低二氧化碳排放2
europe-west3(德國法蘭克福)europe-west6(瑞士蘇黎世)低二氧化碳2
me-central1(杜哈) <0x0Ame-central2(達曼)northamerica-northeast1(蒙特婁)低二氧化碳排放2
northamerica-northeast2(多倫多)低二氧化碳排放2
southamerica-east1(巴西聖保羅)低二氧化碳排放2
southamerica-west1(智利聖地牙哥)低二氧化碳排放2
us-west2(洛杉磯) <0x0us-west3(鹽湖城)us-west4(拉斯維加斯) <0x
如果您已建立 Cloud Run 服務,可以在Google Cloud 控制台的 Cloud Run 資訊主頁中查看區域。
清除所用資源
為避免系統向您的 Google Cloud 帳戶收取額外費用,請刪除您透過本快速入門導覽課程部署的所有資源。
刪除存放區
Cloud Run 不會針對未使用的已部署服務收費。不過,您可能仍須支付將容器映像檔儲存至 Artifact Registry 的費用。如要刪除 Artifact Registry 存放區,請按照 Artifact Registry 說明文件中的「刪除存放區」一節操作。
刪除服務
Cloud Run 服務收到要求後才會產生費用。 如要刪除 Cloud Run 服務,請按照下列其中一個步驟操作:
控制台
如要刪除服務:
前往 Google Cloud 控制台的 Cloud Run「Services」(服務) 頁面:
在服務清單中找出您要刪除的服務,然後按一下核取方塊來選取。
按一下「Delete」(刪除)。這項操作會刪除服務的所有修訂版本。
gcloud
如要刪除服務,請執行下列指令:
gcloud run services delete SERVICE --region REGION
更改下列內容:
- SERVICE:服務名稱。
- REGION:服務的 Google Cloud 區域。
刪除測試專案
刪除 Google Cloud 專案後,系統會停止對該專案中的所有資源計費。如要釋出專案中的所有 Google Cloud 資源,請按照下列步驟操作:
刪除 Google Cloud 專案:
gcloud projects delete PROJECT_ID
後續步驟
如要進一步瞭解如何從程式碼來源建構容器,並推送至存放區,請參閱: