使用 Admin API 建構 App Engine 應用程式

在新的 Google Cloud Platform 專案中使用 Google App Engine Admin API,透過程式建構 App Engine 應用程式。只要搭配使用 Admin API 和 Cloud Resource Manager API,即可透過程式管理 GCP 專案和 App Engine 應用程式。

在您建構 App Engine 應用程式時,系統會為指定位置中的目標 GCP 專案建立 Application 資源

如要在 GCP 專案中手動建構 App Engine 應用程式,請參閱標準環境彈性環境中相應程式語言的「管理專案、應用程式和帳單」主題。

事前準備

您必須符合下列必要條件,才能使用 Admin API 建構 App Engine 應用程式:

  • 您必須建立一個 GCP 專案,或使用現有的專案。
  • 您必須是目標 GCP 專案的擁有者
  • 您必須能夠存取 Admin API

GCP 專案擁有者必須先建立 Application 資源,其他使用者帳戶才能對該 App Engine 應用程式執行工作。舉例來說,您必須建構 App Engine 應用程式,具備 App Engine 部署者角色的使用者帳戶才能使用服務帳戶來部署應用程式。

如要建立 GCP 專案,請按照下列指示操作:

API

如要透過程式建立 GCP 專案,您可以使用 Cloud Resource Manager API。詳情請參閱建立新專案的相關說明。 查看簡短範例。

主控台

使用 GCP 主控台建立 GCP 專案的方法如下:

前往「Project」(專案) 頁面

gcloud

安裝 Google Cloud SDK 之後,您可以執行下列 gcloud 工具指令來建立 GCP 專案:

gcloud projects create

如果您選擇使用現有 GCP 專案,就必須確保專案尚未含有 Application 資源,因為專案僅支援一個 App Engine 應用程式。如要確認 GCP 專案是否已有 Application 資源,您可以使用 apps.get 方法或執行 gcloud app describe 指令。

建構 App Engine 應用程式

如要使用 Admin API 建構 App Engine 應用程式,請按照下列指示操作:

  1. 授權 HTTP 要求,例如取得存取憑證。

    視您的 API 應用程式需求而定,您可以透過多項 OAuth 流程授予 Admin API 的存取權限。詳情請參閱存取 API 的相關說明。

  2. 使用存取憑證傳送 HTTP POST 要求,並透過 Admin API 建構 App Engine 應用程式。

    您可以在 HTTP POST 要求中定義 Application 資源和目標 GCP 專案。範例如下:

    POST https://appengine.googleapis.com/v1/apps { "id": "[MY_PROJECT_ID]", "locationId": "[MY_APP_LOCATION]" }
    

    必要的 HTTP 要求欄位:

    • id:您想在其中建構 App Engine 應用程式的目標 GCP 專案 ID。

    • locationId:App Engine 應用程式所在地理地區的名稱,如 App Engine 位置一文中所列,例如 us-east1

      如需系統支援位置的完整清單,請使用 apps.locations.list 方法。

      範例:在 APIs Explorer 中授權並執行這項範例要求,以便查看系統目前支援的位置清單。

    如需欄位選項的完整清單,請參閱 Application 資源

    cURL 指令範例:

    curl -X POST -d "{ 'id': '[MY_PROJECT_ID]', 'locationId': '[MY_APP_LOCATION]' }" -H "Content-Type: application/json" -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps
    

    其中:

    • [MY_PROJECT_ID] 是您要建構 App Engine 應用程式的目標專案 ID。
    • [MY_APP_LOCATION] 是您要建構 App Engine 應用程式的位置。
    • [MY_ACCESS_TOKEN] 是您取得並用於授權 HTTP 要求的存取憑證。

    回應範例:

    {
      "name": "apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f",
      "metadata": {
        "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1",
        "method": "google.appengine.v1.Applications.CreateApplication",
        "insertTime": "2016-10-03T20:48:02.099Z",
        "user": "me@example.com",
        "target": "apps/[MY_PROJECT_ID]"
      }
    }
    
  3. 確認您是否已建構 App Engine 應用程式:

    1. 查看實際建立作業的狀態:

      您在上一個步驟中使用的 HTTP POST 要求已透過 name 欄位傳回作業名稱,您可以在 apps.operations 集合GET 方法中使用這個名稱來查看建立作業狀態。

      舉例來說,如果回應中的 name 欄位如下所示:

      "name": "apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f"
      

      您傳送的 HTTP GET 要求就會如下所示:

      GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f
      

      cURL 指令範例:

      curl -X GET -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f
      

      其中的 [MY_ACCESS_TOKEN] 是存取憑證,[MY_PROJECT_ID] 則為目標專案的 ID。

      回應範例:

      {
        "name": "apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f",
        "metadata": {
          "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1",
          "method": "google.appengine.v1.Applications.CreateApplication",
          "insertTime": "2016-10-03T20:48:02.099Z",
          "endTime": "2016-10-03T20:48:18.272Z",
          "user": "me@example.com",
          "target": "apps/[MY_PROJECT_ID]"
        },
        "done": true,
        "response": {
          "@type": "type.googleapis.com/google.appengine.v1.Application",
          "id": "[MY_PROJECT_ID]",
          "locationId": "[MY_APP_LOCATION]"
        }
      }
      
    2. 確認您是否已在專案中建構 App Engine 應用程式:

      如要查看版本詳細資料,您可以使用 apps 集合中的 GET 方法。您必須指定先前在 HTTP GET 要求中部署的專案。範例如下:

      GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]
      

      cURL 指令範例:

      curl -X GET -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/
      

      其中的 [MY_ACCESS_TOKEN] 是存取憑證,[MY_PROJECT_ID] 則為目標專案的 ID。

      回應範例:

      {
        "name": "apps/[MY_PROJECT_ID]",
        "id": "[MY_PROJECT_ID]",
        "authDomain": "gmail.com",
        "locationId": "us-central",
        "defaultHostname": "[MY_PROJECT_ID].appspot.com",
        "defaultBucket": "[MY_PROJECT_ID].appspot.com"
      }
      

後續步驟

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

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

這個網頁
App Engine Admin API