# Standard Environment介紹

AppEngine的標準環境(Standard Environment)是延續AppEngine一開始推出的版本持續加強各項功能的PaaS服務，目前支援Java, Python, PHP, Go等四種程式語言，透過Google管理的平台可以達到自動的橫向擴展。

## AppEngine標準環境的計費

在AppEngine標準執行環境中，提供每天28個instance hour(s)的免費額度，另外有許多以天為單位的免費額度優惠，讓開發者可以在免費的範圍內開發與測試自己的應用程式。

## 標準環境的支援工具

Google AppEngine預設幫開發者準備好開發、測試、部署用的SDK，讓開發者可以在沒有網路的情況下，也可以開發、測試您的應用程式。

* 安裝開發環境與工具：<https://console.cloud.google.com/code/tools>

除此之外，AppEngine另外幫開發者準備好許多好用的應用服務，可以直接透過SDK直接呼叫使用...

* 分散式儲存服務 - Datastore：具備高效能且高可用性的資料儲存體，支援key-value資料的儲存、查詢以及交易(Transaction)等操作。
* 自動化scale的能力：開發者可以透過簡單的幾個設定操控AppEngine做自動的scale，並且允許在服務流量下降時候，回收空閒的AppEngine主機。
* 非同步的TaskQueue服務：AppEngine內建專案內共用的TaskQueue服務，讓非同步的請求可以透過TaskQueue來暫存，並且任務支援自動與手動的執行。
* 排程服務：透過時間的定義，來執行排程呼叫，讓特定的Job也可以定時被執行。
* 與更多的Google API服務介接：Google服務各式各樣，AppEngine具備整合上的優勢，並且各API的SDK也完整的整合在AppEngine的開發工具中，讓開發者在開發上更加方便。

## 標準環境的限制

標準環境經過Google的優化，在開發時候必須遵循AppEngine標準環境的沙箱限制，限制包含：

* 不對本機檔案系統進行寫入：由於AppEngine是動態運作的環境，因此資料寫入到磁碟會有遺失的風險，因此限制資料檔案系統禁止寫入。如您有寫入資料的需求，可以考慮使用Google Cloud Storage(GCS)服務，作為永久儲存裝置，讓所有的instance都可以共同存取。
* 要求超過 60 秒即為逾時：AppEngine為PaaS服務，為了確保平台上所有使用者在存取網路的品質，因此限制前端存取時間需要在一分鐘之內，超過一分鐘的連線將會被終止。如果您有更長時間使用連線的需求，例如檔案的上傳或下載，可以透過GCS的Upload URL或Download URL來提供上下傳服務，即可避開連線逾時的問題。
* 第三方軟體的安裝限制：AppEngine的標準環境中，由於優化了執行環境以及安全性，因此限制了AppEngine開發者可以使用的套件，開發者必須遵循可使用的套件進行開發。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gdgcloud-taipei.gitbook.io/google-cloud-platform-in-practice/google-cloud-shang-de-yun-suan-fu-wu/app-engine/standard-environment-jie-shao.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
