Python 2 標準環境的快速入門導覽課程

本快速入門導覽課程說明如何建立能夠顯示簡短訊息的小型 App Engine 應用程式。

費用

進行本指南說明的動作並不會產生任何費用,而且單獨執行這個範例應用程式也不會超過您的免費配額

事前準備

在進行本快速入門導覽課程中的執行及部署作業前,請先安裝 Cloud SDK,並設定 App Engine 專用的 GCP 專案:

  1. 下載並安裝 Cloud SDK:

    下載 SDK

    注意:如果您已安裝 Cloud SDK,請執行下列指令進行更新:

    gcloud components update
    
  2. 建立新專案:

    gcloud projects create [YOUR_PROJECT_ID] --set-as-default
    

    請確認專案已成功建立:

    gcloud projects describe [YOUR_PROJECT_ID]
    

    畫面上會顯示專案資訊,請參考以下的範例:

    createTime: year-month-hour
    lifecycleState: ACTIVE
    name: project-name
    parent:
    id: '433637338589'
    type: organization
    projectId: project-name-id
    projectNumber: 499227785679
    
  3. 使用您的專案將 App Engine 應用程式初始化,然後選擇地區:

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    收到系統提示時,選取 App Engine 應用程式的存放地區

  4. 安裝下列必要項目:

    • 執行下列指令來安裝包含 Python 2 專用 App Engine 擴充功能的 gcloud 元件

      gcloud components install app-engine-python
      
  5. 設定 Python 開發環境。我們建議您在系統中安裝最新版本的 Python、pipvirtualenv 及其他相關工具。如需操作說明,請參閱 Python 開發環境設定指南

App Engine 位置

App Engine 具有「地區性」,這表示執行應用程式的基礎架構位於特定地區,並由 Google 代管,可為該地區內的所有區域提供備援功能。

選擇應用程式的執行地區時,請將您在延遲時間、可用性和耐用性方面的要求,做為主要考量。一般而言,您可以選擇距離您應用程式使用者最近的地區,但也應該考慮應用程式使用的其他 GCP 產品和服務所處的位置。如果跨多個位置使用服務,可能會影響應用程式的延遲時間和定價

App Engine 可在下列地區使用:

  • northamerica-northeast1 (蒙特婁)
  • us-central (愛荷華州)
  • us-west2 (洛杉磯)
  • us-east1 (南卡羅來納州)
  • us-east4 (北維吉尼亞州)
  • southamerica-east1 (聖保羅)
  • europe-west (比利時)
  • europe-west2 (倫敦)
  • europe-west3 (法蘭克福)
  • europe-west6 (蘇黎世)
  • asia-northeast1 (東京)
  • asia-northeast2 (大阪)
  • asia-east2 (香港)
  • asia-south1 (孟買)
  • australia-southeast1 (雪梨)

應用程式的地區設定完成後即無法更改。

如果您已建立 App Engine 應用程式,即可透過執行 gcloud app describe 指令或開啟 GCP Console 中的 App Engine「Dashboard」(資訊主頁) 來查看地區。App Engine 應用程式的地區列於 http://[YOUR_PROJECT_ID].appspot.com

本快速入門導覽課程將示範如何將利用 Flask 網路架構編寫的簡易 Python 應用程式部署到 App Engine。雖然本範例使用 Flask,但您也可利用其他符合上述需求的網路架構。其他的架構包括 DjangoPyramidBottleweb.py

下載 Hello World 應用程式

我們建立了 Python 適用的簡易 Hello World 應用程式,讓您快速瞭解部署應用程式至 Google Cloud Platform 的流程。請依照下列步驟將 Hello World 下載到本機電腦。

  1. Hello World 範例應用程式存放區複製到本機電腦:

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples
    
  2. 變更為包含程式碼範例的目錄:

    cd python-docs-samples/appengine/standard/hello_world
    

您也可以下載 zip 格式的範例,然後解壓縮該檔案。

測試應用程式

使用 SDK 隨附的本機開發伺服器 dev_appserver.py 測試應用程式。

  1. 在應用程式 app.yaml 設定檔所在的 hello_world 目錄中,使用下列指令來啟動本機開發伺服器:

    dev_appserver.py app.yaml
    

    本機開發伺服器現已開始執行並聽取通訊埠 8080 的要求。發生問題?

    1. 使用網路瀏覽器前往 http://localhost:8080/ 查看應用程式。

執行本機開發伺服器 (dev_appserver.py)

如要執行本機開發伺服器,您可以指定完整的目錄路徑來執行 dev_appserver.py,或是將 dev_appserver.py 新增至 PATH 環境變數:

  • 如果您安裝的是原始 App Engine SDK,該工具位於以下路徑:

    [PATH_TO_APP_ENGINE_SDK]/dev_appserver.py
    
  • 如果您安裝的是 Google Cloud SDK,該工具位於以下路徑:

    [PATH_TO_CLOUD_SDK]/google-cloud-sdk/bin/dev_appserver.py
    

    提示:如要將 Google Cloud SDK 工具新增至您的 PATH 環境變數,並在殼層中啟用指令完成功能,您可以執行以下指令:

    [PATH_TO_CLOUD_SDK]/google-cloud-sdk/install.sh
    

如要進一步瞭解如何執行本機開發伺服器 (包括如何變更通訊埠編號),請參閱本機開發伺服器參考資料。

進行變更

在開發應用程式的同時,您可以讓開發伺服器保持運作。開發伺服器會監看來源檔案的變更情形,並在必要時重新載入檔案。

  1. 立即嘗試:讓開發伺服器保持運作,然後編輯 main.py,將 Hello, World! 改成其他內容。
  2. 重新載入 http://localhost:8080/ 以查看結果。

部署您的應用程式

如要將應用程式部署到 App Engine,請在 app.yaml 檔案所處的應用程式根目錄中執行以下指令:

gcloud app deploy

瞭解選用標記

常見的 gcloud 指令標記

  • 加上 --version 標記以指定專門用來辨識您應用程式版本的 ID;如未加入,將由系統自動產生。例如:--version [YOUR_VERSION_ID]
  • 加上 --project 標記以指定替代 GCP 專案 ID,而不使用您在 gcloud 工具中初始化為預設值的 ID。例如:--project [YOUR_PROJECT_ID]

範例:

gcloud app deploy --version pre-prod-5 --project my-sample-app

如要進一步瞭解透過指令列部署應用程式的方法,請參閱部署 Python 2 應用程式一文。如需指令標記的完整清單,請參閱 gcloud app deploy 參考資料。

查看您的應用程式

如要啟動瀏覽器並在 http://[YOUR_PROJECT_ID].appspot.com 查看應用程式,請執行以下指令:

gcloud app browse

恭喜!

您已完成本快速入門導覽課程。

請參閱下列各節,瞭解完成本快速入門導覽課程後所需進行的清除作業,以及您對於已部署的應用程式可採取的後續步驟連結。

如要進一步瞭解這個 Hello World 應用程式,請參閱 Hello World 程式碼總覽一節。

清除

如果已啟用計費功能,您可以刪除 GCP 專案以避免發生費用,這樣系統就會停止對該專案使用的所有資源收取費用。

  1. 前往 GCP 主控台的「Projects」(專案) 頁面。

    前往專案頁面

  2. 在專案清單中選取要刪除的專案,然後按一下 [Delete] (刪除)
  3. 在對話方塊中輸入專案 ID,按一下 [Shut down] (關閉) 即可刪除專案。

後續步驟

開發基本 Flask 應用程式

瞭解如何開發並部署在 Google App Engine 標準環境上執行的基本 Python 2.7 應用程式。如果您是初次使用 Google App Engine 及其相關服務,尤其是初次透過 Python 語言使用 App Engine,Flask 指南為每項工作提供的說明都比快速入門指南更為深入。詳情請參閱開始在 App Engine 標準環境中使用 Flask 一文。

使用自訂網域

您可以使用自訂網域提供 App Engine 應用程式,而不使用 appspot.com。詳情請參閱使用自訂網域和安全資料傳輸層 (SSL) 的說明。

Hello World 程式碼總覽

Hello World 是再簡單不過的 App Engine 應用程式,它只包含一項服務、只有一種版本,且所有程式碼都位於應用程式的根目錄中。本節將提供每個應用程式檔案的詳細說明。

main.py

這個 Python 指令碼會使用 HTTP 標頭和「Hello, World!」訊息來回應要求。

import webapp2

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('Hello, World!')

app = webapp2.WSGIApplication([
    ('/', MainPage),
], debug=True)

app.yaml

app.yaml 設定檔定義了應用程式的多個選項,並說明哪些網址應使用哪些處理常式指令碼。

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: main.app

這個設定檔會提供此應用程式的相關資訊,由上而下為:

  • 這個程式碼是在 python27 執行階段環境中執行 (API 版本為 1)。
  • 這個應用程式具備 threadsafe 特性,因此一個執行個體可以同時處理多項要求。Threadsafe (執行緒安全) 是一種先進的功能,如果應用程式的設計不符合執行緒安全的相關需求,就有可能產生錯誤行為。
  • 如果網址的路徑符合規則運算式 /.* (所有網址均適用),則提交至該網址的所有要求都應該由 main Python 模組中的 app 物件處理。

這個檔案的語法為 YAML。如需完整的設定選項清單,請參閱 app.yaml 參考資料

瞭解詳情

瞭解整個平台

現在您已瞭解如何開發及部署 App Engine 應用程式,接著可進一步瞭解 Google Cloud Platform 的其他部分。您可以建立使用整個平台 (而不只是 App Engine) 的應用程式;如需建立這類應用程式的逐步操作指南,請參閱建立留言板快速入門導覽課程。在這個快速入門導覽課程中,您將把這個簡易應用程式擴展成完善的留言板應用程式,讓經過驗證的 Google 帳戶在公開頁面中張貼訊息。

進一步瞭解 App Engine 標準環境

以下是一些可協助您進一步瞭解 App Engine 的主題。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Python 2 適用的 App Engine 標準環境