1. 總覽
這一系列的程式碼研究室 (自學式實作教學課程) 旨在協助開發人員瞭解部署應用程式時的各種選項。您將瞭解如何在簡單的網路應用程式中使用 Google Cloud Translation API。這個應用程式可以在本機執行,也可以部署至 Cloud 無伺服器運算平台 (App Engine、Cloud Functions 或 Cloud Run)。
您將使用 Express.js 網路架構,透過 Node.js 完成這項 JavaScript 教學課程。您也會瞭解如何從無伺服器平台存取 Google Cloud API。這個應用程式的所有版本都來自「nebulous serverless」開放原始碼存放區,其中包含這個應用程式的 Python 版本和獨立的程式碼研究室。這個存放區也提供類似的應用程式,向開發人員展示如何從無伺服器平台存取非 Cloud Google API。
本程式碼研究室著重於將這個應用程式部署至上述粗體平台。
課程內容
- 使用 Google Cloud API,特別是 Cloud Translation API (進階/v3)
- 在本機執行基本網頁應用程式,或部署至 Cloud 無伺服器運算平台
軟硬體需求
- Google Cloud 專案,並啟用 Cloud Billing 帳戶
- 安裝用於在本機執行的網路架構 ( 如果是 Python 教學課程,請安裝 Flask;如果是 JavaScript/Node.js 教學課程,請安裝 Express)
- 至少啟用一個無伺服器運算平台,用於 Google Cloud 部署作業
- 基本程式設計技巧 (Python 或 JavaScript/Node.js)
- 熟悉基本作業系統指令
問卷調查
您會如何使用本教學課程?
您對使用 Python 或 Node.js 開發的體驗有何評價?
您對使用 Google Cloud 服務的體驗滿意嗎?
2. 設定和需求條件
自修實驗室環境設定
- 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果沒有 Gmail 或 Google Workspace 帳戶,請先建立帳戶。



- 專案名稱是這個專案參與者的顯示名稱。這是 Google API 未使用的字元字串,您隨時可以更新。
- 專案 ID 在所有 Google Cloud 專案中不得重複,且設定後即無法變更。Cloud 控制台會自動產生專屬字串,通常您不需要在意該字串為何。在大多數程式碼研究室中,您需要參照專案 ID (通常會標示為
PROJECT_ID),因此如果您不喜歡該字串,可以產生另一個隨機字串,或是嘗試使用自己的字串,看看是否可用。專案建立後,系統就會「凍結」該值。 - 還有第三個值,也就是部分 API 使用的「專案編號」。如要進一步瞭解這三種值,請參閱說明文件。
- 接著,您需要在 Cloud 控制台中啟用帳單,才能使用 Cloud 資源/API。完成本程式碼研究室的費用應該不高,甚至完全免費。如要停用資源,避免在本教學課程結束後繼續產生帳單費用,請按照程式碼研究室結尾的「清除」操作說明操作。Google Cloud 新使用者可參加價值$300 美元的免費試用計畫。
3. 啟用 Translation API
本節將說明如何啟用 Google API。在範例應用程式中,您將啟用 Cloud Translation API。此外,您也會啟用 App Engine、Cloud Functions 和/或 Cloud Run (以及 Cloud Artifact Registry),視您要將範例應用程式部署至哪個平台而定。
啟用 Google API
簡介
無論您要在應用程式中使用哪個 Google API,都必須啟用。您可以從指令列或 Cloud 控制台啟用 API。啟用 API 的程序相同,因此啟用一個 API 後,您就能以相同方式啟用其他 API。
選項 1:gcloud 指令列介面 (Cloud Shell 或本機環境)
雖然透過 Cloud 控制台啟用 API 是較常見的做法,但有些開發人員偏好透過指令列完成所有作業。如要這麼做,您需要查詢 API 的「服務名稱」。這看起來像是網址:SERVICE_NAME.googleapis.com。您可以在「支援的產品圖表」中找到這些項目,也可以使用 Google Discovery API 以程式輔助方式查詢。
取得這項資訊後,您可以使用 Cloud Shell (或已安裝 gcloud 指令列工具的本機開發環境) 啟用 API,方法如下:
gcloud services enable SERVICE_NAME.googleapis.com
範例 1:啟用 Cloud Vision API
gcloud services enable vision.googleapis.com
範例 2:啟用 Google App Engine
gcloud services enable appengine.googleapis.com
範例 3:透過單一要求啟用多個 API。舉例來說,如果本程式碼研究室的觀眾要使用 Cloud Translation API 將應用程式部署至 App Engine、Cloud Functions 和 Cloud Run,指令列會是:
gcloud services enable appengine.googleapis.com cloudfunctions.googleapis.com artifactregistry.googleapis.com run.googleapis.com translate.googleapis.com
這項指令會啟用 App Engine、Cloud Functions、Cloud Run 和 Cloud Translation API。此外,這項作業也會啟用 Cloud Artifact Registry,因為 Cloud Build 系統必須在該處註冊容器映像檔,才能部署至 Cloud Run。
選項 2:Cloud Console
您也可以在 API 管理工具中啟用 Google API。在 Cloud 控制台中,前往 API 管理工具,然後選取「程式庫」。

在搜尋列中輸入 API 名稱,即可查看相符的結果:

選取要啟用的 API,然後按一下「啟用」按鈕:

無論要使用哪個 Google API,啟用所有 API 的程序都差不多。
費用
許多 Google API 都能免費使用,但使用大部分 Google Cloud 產品和 API 時,則會產生費用。啟用 Cloud API 時,系統可能會要求您提供有效的帳單帳戶。不過,部分 Google Cloud 產品提供「一律免費」方案,您必須超出方案限制,才會產生帳單費用。
新加入 GCP 的使用者符合免費試用資格,目前可獲得價值 $300 美元的抵免額,在前 90 天內使用。Codelabs 通常不會產生任何費用,因此建議您先不要使用免費試用方案,等到真正準備好要試用時再啟用,因為這是一次性優惠。免費方案配額不會過期,無論是否使用免費試用方案,都適用這項配額。
啟用任何 API 前,使用者應先參考價格資訊 (例如:Cloud Vision API 價格 頁面),特別是注意是否有免費層級,以及免費層級的內容。只要您在指定每日或每月總計限制內,就不會產生任何費用。Google 產品群組 API 的價格和免費層級各不相同。範例:
- Google Cloud/GCP:各項產品的計費方式不同,一般是依用量付費;詳情請參閱上方的免費方案資訊。
- Google 地圖:提供一系列 API,使用者每月可獲得 $200 美元的免費額度。
- Google Workspace (舊稱 G Suite) API:提供涵蓋在每月 Workspace 訂閱費用內的用量 (上限為特定限制),因此使用 Gmail、Google 雲端硬碟、日曆、文件、試算表或簡報等應用程式的 API 時,不會直接產生費用。
不同 Google 產品的計費方式不同,請務必參閱相關說明文件瞭解詳情。
確認已啟用所需服務
如上所述,請確認 API 管理工具中的 Cloud Translation API。如果您未從指令列啟用無伺服器平台,可以透過 Cloud Console 中各平台的專屬資訊主頁啟用:App Engine、Cloud Functions、Cloud Run。
雖然從 Cloud Console 啟用 API 具有視覺上的資訊性,但使用 gcloud 工具會更快,啟用所有服務只需幾秒鐘:
$ gcloud services enable appengine.googleapis.com \ cloudfunctions.googleapis.com artifactregistry.googleapis.com \ run.googleapis.com translate.googleapis.com Operation "operations/acf.p2-xxxxxx035451-704918f2-5470-4436-9bdd-c3b204yyyyyy" finished successfully.
進一步瞭解費用
上述費用部分適用於所有 Google API。讓我們在本教學課程中深入瞭解相關細節。雖然整體「永久免費」方案摘要頁面未列出每月配額,但Translation API 的價格頁面指出,所有使用者每月都可翻譯固定數量的字元。只要不超過該門檻,就不會產生任何 API 費用。如要進一步瞭解使用 Google Cloud 無伺服器平台產生的費用,請參閱存放區的「費用」一節。最後的「清除」一節會說明如何在本程式碼研究室完成後停止產生帳單費用。
4. 取得範例應用程式程式碼
下載 ZIP 檔或複製存放區
- 下載 ZIP 檔案,或使用
git clone https://github.com/googlecodelabs/cloud-nebulous-serverless.git複製 repo - 如果您沒有本機開發環境,並希望在 Cloud Shell 中完成本教學課程,可以在該處使用相同的
git clone指令複製存放區。 - 您也可以透過綠色的「Code」按鈕存取 ZIP 檔案,如下列螢幕截圖所示:

現在您已備妥所有項目,請建立資料夾的完整副本,以便進行這個教學課程,因為這可能涉及刪除或變更檔案。如要進行其他部署作業,可以複製原始部署作業,不必再次複製或下載。
5. 確認 Node.js 環境
如要設定 Node.js 環境,請按照下列步驟操作:
- 確認已安裝新版 Node (版本 >=10) 和 NPM (版本 >=6)
- 前往複製 存放區的位置 (或解壓縮 ZIP 檔案),然後前往
cloud/nodejs資料夾 - 確認
package.json是否存在,然後執行npm install
如要確認上述第 1 項的相關版本,請在指令列中執行下列指令:
$ node -v v17.0.1 $ npm -v 8.1.0
6. 範例應用程式導覽
這個範例應用程式是簡單的 Google 翻譯衍生版本,會提示使用者輸入英文文字,並提供該文字的西班牙文翻譯。
package.json 設定檔會指出應用程式所需的第三方套件 (請注意,套件版本可能會更新,不一定與這裡列出的版本相同):
{
"name": "cloud-nebulous-serverless-nodejs",
"version": "0.0.1",
"description": "Nebulous Serverless sample app",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "mocha test/test_neb.js"
},
"author": "Google LLC",
"license": "Apache-2.0",
"dependencies": {
"@google-cloud/translate": "^6.3.1",
"express": "^4.17.1",
"nunjucks": "^3.2.3"
},
"devDependencies": {
"mocha": "^9.1.3",
"supertest": "^6.1.6"
}
}
現在開啟 index.js 檔案,看看實際運作情形。省略有關授權的註解行後,頂端和底部看起來會像這樣:
const express = require('express');
const nunjucks = require('nunjucks');
const {TranslationServiceClient} = require('@google-cloud/translate');
const app = express();
app.use(express.urlencoded({extended: true}));
nunjucks.configure('templates', {autoescape: true, express: app});
const TRANSLATE = new TranslationServiceClient();
const PORT = process.env.PORT || 8080;
const SOURCE = ['en', 'English'];
const TARGET = ['es', 'Spanish'];
let parent;
TRANSLATE.getProjectId().then(result => {
parent = `projects/${result}`;
});
if (!process.env.FUNCTION_TARGET) {
app.listen(PORT, () =>
console.log(`Listening on port ${PORT}`)
);
}
# . . . [translate() function definition] . . .
app.all('/', translate);
module.exports = {
app
};
require會引入架構和範本功能,以及 Cloud Translation API 用戶端程式庫。- 全域變數代表網頁應用程式、Cloud 專案 ID、Translation API 用戶端、Translation API 呼叫的父項「位置路徑」,以及
SOURCE和TARGET語言。在本例中,這些值是英文 (en) 和西班牙文 (es),但您可以隨意將這些值變更為 Cloud Translation API 支援的其他語言代碼。 - 每對元素的第一個元素 (
SOURCE和TARGET) 是語言代碼,第二個元素是語言名稱 (僅用於顯示,與 API 無關)。 - 底部的幾行程式碼會將所有 HTTP 要求傳送至
translate(),然後匯出app應用程式物件。
最後,index.js 中間是應用程式的核心,也就是 translate() 函式:
async function translate(req, rsp) {
let text = null;
let translated = null;
if (req.method === 'POST') {
text = req.body.text.trim();
if (text) {
const data = {
contents: [text],
parent: parent,
targetLanguageCode: TARGET[0]
};
const [response] = await TRANSLATE.translateText(data);
translated = response.translations[0].translatedText;
}
}
const context = {
orig: {text: text, lc: SOURCE},
trans: {text: translated, lc: TARGET}
};
rsp.render('index.html', context);
}
主要函式會負責接收使用者輸入內容,並呼叫 Translation API 執行繁重的工作。以下將詳細說明:
- 重設表單的基本變數。這主要是針對 GET 要求,因為 POST 要求會有資料取代這些要求。
- 如果是 POST,請擷取要翻譯的文字,如果文字不為空白,請建立代表 API 中繼資料需求的 JSON 結構。然後呼叫服務的 API。
- 我們並未將
SOURCE[0]傳遞至特定英文來源的 API。如果省略來源語言,即表示要求 API 自動偵測來源語言 (請參閱說明文件中的sourceLanguageCode)。 - 無論如何,請將實際結果 (POST) 或沒有資料 (GET) 格式化為範本內容並算繪。
應用程式的視覺部分位於範本 index.html 檔案中。畫面會顯示先前翻譯的結果 (如果沒有則為空白),然後顯示要求翻譯內容的表單:
<!doctype html>
<html><head><title>My Google Translate 1990s</title><body>
<style>
body {
font-family: Verdana, Helvetica, sans-serif;
background-color: #DDDDDD;
}
</style>
<h2>My Google Translate (1990s edition)</h2>
{% if trans['text'] %}
<h4>Previous translation</h4>
<li><b>Original</b>: {{ orig['text'] }} (<i>{{ orig['lc'][0] }}</i>)</li>
<li><b>Translated</b>: {{ trans['text'] }} (<i>{{ trans['lc'][0] }}</i>)</li>
{% endif %}
<h4>Enter <i>{{ orig['lc'][1] }}</i> text to translate to <i>{{ trans['lc'][1] }}</i>:</h4>
<form method="POST"><input name="text"><input type="submit"></form>
</body></html>
在本教學課程的其餘部分,您可以選擇部署及執行這個應用程式的四個選項,也可以全部選取。所有部署作業都是選用,也就是說,您可以選擇執行部分或全部作業。
- 在本機執行服務
- 部署至 App Engine (標準環境)
- 部署至 Cloud Functions
- 部署至 Cloud Run
7. 選項 1:在本機執行服務
本節編碼實驗室僅適用於在本機執行。如果您只部署到雲端,請前往下一節。
如要在本機執行範例應用程式,必須完成下列三個步驟:
- 建立服務帳戶
- 建立服務帳戶公開/私密金鑰組
- 下載憑證檔案並與應用程式程式碼組合
- 啟動服務
瞭解服務帳戶
服務帳戶是安全機制,可供雲端應用程式在存取不屬於人類使用者的資料時,用來存取 Google API。部署至雲端時,為了縮短使用者加入雲端的準備時間,所有 Google Cloud 運算平台 (無伺服器和其他平台) 都提供預設服務帳戶。
預設服務帳戶具備廣泛的權限,可「簡化程序」,但準備推出正式版服務時,強烈建議使用者遵循「最低權限」最佳做法,建立使用者管理的服務帳戶,只授予應用程式正常運作所需的權限。無論如何,本機部署作業沒有預設服務帳戶,因此您必須建立服務帳戶和服務帳戶金鑰 (實際上是公開/私密金鑰組),並讓應用程式程式碼可存取這些憑證。
建立服務帳戶金鑰配對,並下載憑證檔案
按照這個頁面的操作說明建立服務帳戶和公開/私密金鑰組,以便在本地執行。建立服務帳戶金鑰時,系統會提示您提供所需權限。請務必選取 roles/cloudtranslate.user,才能順利存取 API。
金鑰配對建立完成後,系統會提示您下載服務帳戶金鑰檔案。將其命名為 credentials.json,然後移至應用程式頂層資料夾。現在您必須告知 Cloud SDK 使用這些憑證:設定 GOOGLE_APPLICATION_CREDENTIALS 環境變數,指向該檔案。如要進一步瞭解這個程序,請參閱這個頁面,瞭解如何使用服務帳戶。
啟動服務
準備好繼續時,請使用下列指令在本機啟動 Express 伺服器:
$ npm start > cloud-nebulous-serverless-nodejs@0.0.1 start > node index.js Listening on port 8080
前往網路瀏覽器,在 localhost:8080 連線,您應該會看到類似下列內容:

翻譯內容,看看這項功能如何運作!

確認沒問題後,請使用 ^C (Control-C) 結束伺服器並退出。恭喜您成功執行本機部署作業。好消息是,部署至雲端變得容易許多。
疑難排解
要求翻譯時是否收到類似這樣的錯誤訊息?
node:fs:2486
handleErrorFromBinding(ctx);
^
Error: The file at credentials.json does not exist, or it is not a file. ENOENT: no such file or directory, lstat '/tmp/nodejs/credentials.json'
. . .
解決方法:發生這項錯誤表示您尚未完成建立服務帳戶,以及下載公開/私密金鑰組檔案 credentials.json。請返回「選項 1:在本機執行服務」,完成這個程序,並在主要資料夾中安裝憑證,再繼續後續步驟。
8. 選項 2:部署至 App Engine (標準環境)
本節程式碼研究室僅適用於部署至 Node App Engine。如果沒有興趣,請繼續參閱下一節。
這項部署作業會使用 app.yaml 設定檔,透過單行程式碼告知 App Engine 要使用的執行階段:
runtime: nodejs16
Cloud Functions 和 Cloud Run 都不會使用 app.yaml 檔案。如果您不打算使用 App Engine,可以放心刪除這個檔案。準備部署至 App Engine 時,請執行下列指令:
$ gcloud app deploy
選取區域後,gcloud app deploy 輸出內容的詳細程度會大幅降低,應如下所示:
Services to deploy: descriptor: [/private/tmp/nodejs/app.yaml] source: [/private/tmp/nodejs] target project: [PROJECT_ID] target service: [default] target version: [2021...] target url: [https://PROJECT_ID.REG_ABBR.appspot.com] target service account: [App Engine default service account] Do you want to continue (Y/n)? Beginning deployment of service [default]... ╔════════════════════════════════════════════════════════════╗ ╠═ Uploading 2 files to Google Cloud Storage ═╣ ╚════════════════════════════════════════════════════════════╝ File upload done. Updating service [default]...⠏WARNING: *** Improve build performance by generating and committing package-lock.json. Updating service [default]...done. Setting traffic split for service [default]...done. Deployed service [default] to [https://PROJECT_ID.REG_ABBR.appspot.com] You can stream logs from the command line by running: $ gcloud app logs tail -s default To view your application in the web browser run: $ gcloud app browse To take a quick anonymous survey, run: $ gcloud survey
現在您的應用程式已在全球推出,您應該可以透過含有專案 ID 的網址存取應用程式,並看到類似本機 Express 版本的輸出內容,但請注意,應用程式是在雲端執行,且全球皆可存取:

提交要求後,您會發現運作方式與其他所有部署作業相同。
9. 選項 3:部署至 Cloud Functions
本節編碼實驗室僅適用於部署至 Node Cloud Functions。如果沒有興趣,請繼續參閱下一節。
Cloud Functions 沒有設定檔,因此準備部署至 Cloud Functions 時,請執行下列指令:
$ gcloud functions deploy translate \ --runtime nodejs16 \ --entry-point app \ --trigger-http \ --region REGION \ --allow-unauthenticated
GCP 專案可能會有預設的 REGION,但您可以使用 --region 標記,將函式部署到特定區域。Cloud Functions 不會像其他 Cloud 產品一樣提示您。無論選擇哪個區域,gcloud functions deploy 輸出內容應如下所示:
Deploying function (may take a while - up to 2 minutes)...⠛ For Cloud Build Logs, visit: https://console.cloud.google.com/cloud-build/builds;region=REGION/15ac7fc1-731d-4f3b-bc15-8f2614xxxxxx?project=062269xxxxxx Deploying function (may take a while - up to 2 minutes)...done. availableMemoryMb: 256 buildId: aaf7e0cd-fbbd-4624-abeb-3e7437xxxxxx buildName: projects/062269xxxxxx/locations/REGION/builds/aaf7e0cd-fbbd-4624-abeb-3e7437xxxxxx entryPoint: app httpsTrigger: securityLevel: SECURE_OPTIONAL url: https://REGION-PROJECT_ID.cloudfunctions.net/translate ingressSettings: ALLOW_ALL labels: deployment-tool: cli-gcloud name: projects/PROJECT_ID/locations/REGION/functions/translate runtime: nodejs16 serviceAccountEmail: PROJECT_ID@appspot.gserviceaccount.com sourceUploadUrl: https://storage.googleapis.com/gcf-upload-REGION-01de94c2-6eb4-4c49-aaff-09276cdb7ae9/a1db9f2d-3511-414b-aeeb-de6042xxxxxx.zip status: ACTIVE timeout: 60s updateTime: '2021...' versionId: '...'
現在您的應用程式已在全球推出,您應該可以透過包含專案 ID 的網址存取應用程式 (如部署輸出內容所示,位於「httpsTrigger/url」下方)。網址應類似於:https://REGION-PROJECT_ID.cloudfunctions.net/translate,具體網址會因您選取的區域和 Cloud 專案 ID 而異。

10. 選項 4:部署至 Cloud Run
本節編碼實驗室僅適用於部署至 Cloud Run。如果沒有興趣,請繼續參閱下一節。
Cloud Run 沒有設定檔,因此準備好部署至 Cloud Run 時,請按照下列操作說明進行。
現在,您可以執行下列指令,將翻譯服務部署至 Cloud Run:
$ gcloud run deploy translate --source . --allow-unauthenticated --platform managed
輸出內容應如下所示,並提供後續步驟的一些提示:
Please specify a region: [1] asia-east1 [2] asia-east2 . . . (other regions) . . . [28] us-west4 [29] cancel Please enter your numeric choice: REGION_CHOICE To make this the default region, run `gcloud config set run/region REGION`. Deploying from source requires an Artifact Registry repository to store build artifacts. A repository named [cloud-run-source-deploy] in region [REGION] will be created. Do you want to continue (Y/n)? This command is equivalent to running "gcloud builds submit --pack image=[IMAGE] ." and "gcloud run deploy translate --image [IMAGE]" Building . . . and deploying container to Cloud Run service [translate] in project [PROJECT_ID] region [REGION] ✓ Building and deploying... Done. ✓ Creating Container Repository... ✓ Uploading sources... ✓ Building Container... Logs are available at [https://console.cloud.google.com/cloud-build/builds/60e1b 9bb-b991-4b4e-8d8a-HASH?project=PROJECT_NUMBER]. ✓ Creating Revision... ✓ Routing traffic... ✓ Setting IAM Policy... Done. Service [translate] revision [translate-00001-xyz] has been deployed and is serving 100 percent of traffic. Service URL: https://SVC_NAME-HASH-REG_ABBR.a.run.app
Cloud Buildpacks 會將應用程式部署至 Cloud Run,就像您在本機執行應用程式一樣。如果是 Node.js 使用者,則會執行 npm install 和 npm start。如果是 Python,則會執行 pip install -r requirements.txt,並根據 Procfile 中的指示啟動應用程式。(這項做法也適用於 Cloud Buildpacks 支援的所有其他語言)。建構程序完成後,應用程式即可使用。
您的應用程式隨後會 (在區域部署,但) 全球可用,且可透過包含專案 ID 的網址存取,如部署輸出內容所示 (位於「Service URL:」下方)。

翻譯內容,看看這項功能如何運作!

11. 結語
恭喜!您已瞭解如何啟用及使用 Cloud Translation API、取得必要憑證,以及將簡單的網頁應用程式部署至本機的 Express、App Engine、Cloud Functions 和/或 Cloud Run。如要瞭解詳情或存取這個應用程式的其他版本,以及其他程式碼研究室,請參閱存放區資料夾。
清除所用資源
Cloud Translation API 每月提供固定額度的免費翻譯字元。App Engine 也提供免費配額,Cloud Functions 和 Cloud Run 也是如此。如果超過任一限制,就會產生費用。如果您打算繼續下一個程式碼研究室,則不必關閉應用程式。
不過,如果您還沒準備好進行下一個教學課程,或是擔心網際網路會發現您剛部署的應用程式,請停用 App Engine 應用程式、刪除 Cloud Function 或停用 Cloud Run 服務,以免產生費用。準備好進行下一個程式碼研究室時,可以重新啟用這項功能。另一方面,如果您不打算繼續使用這個應用程式或其他程式碼研究室,並想徹底刪除所有內容,可以關閉專案。
此外,部署至 Google Cloud 無伺服器運算平台會產生少許建構和儲存空間費用。Cloud Build 和 Cloud Storage 都有各自的免費配額。為提高透明度,Cloud Build 會建構應用程式映像檔,然後儲存在 Cloud Container Registry 或後繼服務 Artifact Registry 中。儲存該圖片會耗用部分配額,將圖片傳輸至服務時也會耗用網路輸出量。不過,你所在的區域可能沒有這類免付費層級,因此請留意儲存空間用量,盡量減少潛在費用。
12. 其他資源
在接下來的章節中,您可以找到額外的閱讀資料和建議練習,進一步擴充完成本教學課程所學到的知識。
其他研究
現在您已具備 Translation API 的使用經驗,接下來請完成一些額外練習,進一步提升技能。如要繼續學習,請修改範例應用程式,完成下列操作:
- 完成本程式碼研究室的所有其他版本,即可在本機執行或部署至 Google Cloud 無伺服器運算平台 (請參閱 repo README)。
- 使用其他程式設計語言完成本教學課程。
- 變更這個應用程式,支援不同的來源或目標語言。
- 升級這個應用程式,即可將文字翻譯成多種語言;變更範本檔案,加入支援的目標語言下拉式選單。
瞭解詳情
Google App Engine
Google Cloud Functions
Google Cloud Run
Google Cloud Buildpacks、Container Registry、Artifact Registry
- Cloud Buildpacks 公告
- Cloud Buildpacks 存放區
- Cloud Artifact Registry 首頁
- Cloud Artifact Registry 說明文件
- Cloud Container Registry 首頁
- Cloud Container Registry 說明文件
Google Cloud Translation 和 Google ML Kit
- Cloud Translation 首頁
- Cloud Translation 說明文件
- Cloud Translation API 用戶端程式庫 (所有開發語言)
- Cloud Translation API 支援的語言 (口語/書寫)
- Translation API 定價頁面
- 所有 Cloud AI/ML「建構區塊」API
- Google ML Kit (適用於行動裝置的 Cloud AI/ML API 子集)
- Google ML Kit Translation API
其他 Google Cloud 產品/頁面
Python 連結
- Python 3 App Engine 快速入門導覽課程
- Python 2 App Engine (標準) 執行階段
- Python 3 App Engine (標準) 執行階段
- Python 2 與 3 App Engine (標準) 執行階段的差異
- Python 2 到 3 App Engine (標準) 遷移指南
- Python Cloud Functions 快速入門導覽課程
- Python Cloud Run 快速入門導覽課程
- Google Cloud Python 支援
- Flask
Node.js 連結
- Node.js App Engine 快速入門導覽課程
- Node.js App Engine (標準) 執行階段
- Node.js Cloud Functions 快速入門導覽課程
- Node.js Cloud Run 快速入門導覽課程
- Google Cloud Node.js 支援
- Express
授權
本教學課程採用創用 CC 姓名標示 2.0 通用授權,而存放區中的原始碼則採用 Apache 2 授權。