Thông tin về lớp học lập trình này
1. Tổng quan
Loạt lớp học lập trình này (hướng dẫn thực hành theo tiến độ riêng) nhằm giúp nhà phát triển nắm được nhiều lựa chọn khi triển khai ứng dụng. Trong lớp học lập trình này, bạn sẽ tìm hiểu cách sử dụng Google Cloud Translation API với Python và chạy cục bộ hoặc triển khai cho một nền tảng điện toán không máy chủ đám mây (App Engine, Cloud Functions hoặc Cloud Run). Bạn có thể triển khai ứng dụng mẫu trong kho lưu trữ của hướng dẫn này (ít nhất) 8 cách chỉ với những thay đổi nhỏ về cấu hình:
- Máy chủ Flask cục bộ (Python 2)
- Máy chủ Flask cục bộ (Python 3)
- App Engine (Python 2)
- App Engine (Python 3)
- Hàm đám mây (Python 3)
- Cloud Run (Python 2 qua Docker)
- Cloud Run (Python 3 qua Docker)
- Cloud Run (Python 3 thông qua Cloud Buildpacks)
Lớp học lập trình này tập trung vào việc triển khai ứng dụng này cho(các) nền tảng in đậm ở trên.
Bạn sẽ tìm hiểu cách
- Sử dụng Google Cloud API, đặc biệt là Cloud Translation API (nâng cao/v3)
- Chạy một ứng dụng web cơ bản trên thiết bị hoặc triển khai cho một nền tảng điện toán không ngắt kết nối đám mây
Bạn cần có
- Một dự án trên Google Cloud có một tài khoản thanh toán Cloud đang hoạt động
- Bình chứa nước được cài đặt để chạy cục bộ hoặc một nền tảng điện toán không ngắt kết nối trên đám mây đã bật để triển khai trên đám mây
- Kỹ năng Python cơ bản
- Kiến thức thực hành về các lệnh cơ bản của hệ điều hành
Khảo sát
Bạn sẽ sử dụng hướng dẫn này như thế nào?
Bạn đánh giá thế nào về trải nghiệm sử dụng Python?
Bạn đánh giá thế nào về trải nghiệm sử dụng các dịch vụ của Google Cloud?
2. Thiết lập và yêu cầu
Thiết lập môi trường theo tiến độ riêng
- Đăng nhập vào Google Cloud Console rồi tạo dự án mới hoặc sử dụng lại dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.
- Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự không được API của Google sử dụng và bạn có thể cập nhật chuỗi này bất cứ lúc nào.
- Mã dự án phải là duy nhất trong tất cả các dự án Google Cloud và không thể thay đổi (bạn không thể thay đổi mã này sau khi đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường bạn không quan tâm đến sản phẩm đó là gì. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (và mã này thường được xác định là
PROJECT_ID
). Vì vậy, nếu không thích, bạn có thể tạo một mã ngẫu nhiên khác hoặc bạn có thể thử mã của riêng mình để xem có mã này chưa. Sau đó, video sẽ được "đóng băng" sau khi tạo dự án. - Có giá trị thứ ba là Project Number (Số dự án) mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu này.
- Tiếp theo, bạn sẽ cần bật tính năng thanh toán trong Cloud Console để sử dụng tài nguyên/API trên Cloud. Việc chạy qua lớp học lập trình này sẽ không tốn nhiều chi phí. Để tắt các tài nguyên để bạn không phải chịu thanh toán ngoài hướng dẫn này, hãy làm theo mọi thao tác "dọn dẹp" hướng dẫn ở cuối lớp học lập trình. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí 300 USD.
3. Bật Translation API
Đối với ứng dụng mẫu của chúng tôi, bạn sẽ bật Cloud Translation API và dịch vụ App Engine thay vì dùng các hướng dẫn tương tự được cung cấp bên dưới.
Bật Cloud API
Giới thiệu
Bất kể bạn muốn sử dụng API nào của Google trong ứng dụng của mình, bạn phải bật API đó. Ví dụ sau cho thấy hai cách để bật Cloud Vision API. Sau khi tìm hiểu cách bật một Cloud API, bạn sẽ có thể bật các API khác vì quy trình này cũng tương tự như vậy.
Cách 1: Trên Cloud Shell hoặc giao diện dòng lệnh
Mặc dù việc bật API từ Cloud Console phổ biến hơn, nhưng một số nhà phát triển lại thích làm mọi việc từ dòng lệnh. Để thực hiện việc này, bạn cần tra cứu "tên dịch vụ" của API. URL này có dạng như sau: SERVICE_NAME
.googleapis.com
. Bạn có thể tìm thấy những sản phẩm này trong Biểu đồ Sản phẩm được hỗ trợ hoặc bạn có thể truy vấn những sản phẩm đó theo phương thức lập trình bằng API Khám phá của Google.
Được trang bị thông tin này, bằng cách sử dụng Cloud Shell (hoặc môi trường phát triển cục bộ của bạn có công cụ dòng lệnh gcloud
đã cài đặt), bạn có thể bật API như sau:
gcloud services enable SERVICE_NAME.googleapis.com
Ví dụ: lệnh này sẽ bật Cloud Vision API:
gcloud services enable vision.googleapis.com
Lệnh này bật App Engine:
gcloud services enable appengine.googleapis.com
Bạn cũng có thể bật nhiều API qua một yêu cầu. Ví dụ: dòng lệnh sau bật Cloud Run, Cloud Artifact Registry và Cloud Translation API:
gcloud services enable artifactregistry.googleapis.com run.googleapis.com translate.googleapis.com
Cách 2: Trong Cloud Console
Bạn cũng có thể bật Vision API trong Trình quản lý API. Trong Cloud Console, hãy chuyển đến Trình quản lý API rồi chọn Thư viện.
Nếu bạn muốn bật Cloud Vision API, hãy bắt đầu nhập "vision" (tầm nhìn) trong thanh tìm kiếm và mọi nội dung khớp với nội dung bạn đã nhập sẽ xuất hiện:
Chọn API bạn muốn bật rồi nhấp vào Bật:
Chi phí
Mặc dù có thể sử dụng nhiều API của Google mà không mất phí, nhưng việc sử dụng các sản phẩm Google Cloud và API không miễn phí. Khi bật Cloud API, bạn có thể được yêu cầu có một tài khoản thanh toán đang hoạt động. Tuy nhiên, điều quan trọng cần lưu ý là một số sản phẩm của Google Cloud có tính năng "Luôn miễn phí" bậc (hằng ngày/hằng tháng) mà bạn phải vượt quá để phát sinh phí thanh toán; nếu không, thẻ tín dụng (hoặc công cụ thanh toán được chỉ định) của bạn sẽ không bị tính phí.
Người dùng nên tham khảo thông tin về giá của bất kỳ API nào trước khi bật, đặc biệt là cần lưu ý xem API đó có cấp miễn phí hay không và nếu có thì đó là gì. Nếu đã bật Cloud Vision API, bạn sẽ xem trang thông tin về giá của API này. Cloud Vision không có hạn mức miễn phí và miễn là bạn không vượt quá hạn mức tổng hợp của dịch vụ này (trong vòng mỗi tháng), bạn sẽ không phải chịu bất kỳ khoản phí nào.
Mức giá và cấp miễn phí khác nhau giữa các API của Google. Ví dụ:
- Google Cloud/GCP – mỗi sản phẩm được tính phí theo cách khác nhau và thường được thanh toán theo chu kỳ vCPU, mức sử dụng bộ nhớ, mức sử dụng bộ nhớ hoặc trả tiền cho mỗi lần sử dụng; xem thông tin về bậc miễn phí ở trên.
- Google Maps – có một bộ API và cung cấp cho người dùng khoản tín dụng miễn phí hằng tháng trị giá 200 USD.
- API Google Workspace (trước đây là G Suite) — cung cấp mức sử dụng miễn phí (lên đến một số giới hạn nhất định) theo phí thuê bao hằng tháng của Workspace. Vì vậy, việc sử dụng API Gmail, Google Drive, Lịch, Tài liệu, Trang tính và Trang trình bày sẽ không bị tính phí trực tiếp.
Các sản phẩm khác nhau của Google được tính phí theo cách khác nhau, vì vậy, hãy đảm bảo bạn tham khảo tài liệu của API để biết thông tin đó.
Tóm tắt
Bây giờ bạn đã biết cách bật các API của Google nói chung, hãy chuyển đến Trình quản lý API và bật cả dịch vụ Cloud Translation API và App Engine (nếu bạn chưa bật), cả hai cách vì ứng dụng của chúng tôi sẽ sử dụng và cả hai là vì bạn đang triển khai một ứng dụng App Engine. Nếu bạn muốn thực hiện từ dòng lệnh, hãy phát lệnh sau:
gcloud services enable appengine.googleapis.com translate.googleapis.com
Mặc dù hạn mức hàng tháng của ứng dụng không được liệt kê trong tổng thể "Luôn miễn phí" trang tóm tắt theo cấp, trang giá của API Bản dịch cho biết tất cả người dùng nhận được một số lượng ký tự dịch cố định mỗi tháng. Bạn sẽ không phải chịu bất kỳ khoản phí nào từ API nếu duy trì dưới ngưỡng đó. Nếu có bất kỳ khoản phí nào khác liên quan đến Google Cloud, chúng tôi sẽ thảo luận về các khoản phí đó ở cuối phần "Dọn dẹp" .
4. Nhận mã ứng dụng mẫu
Sao chép mã trong kho lưu trữ cục bộ hoặc trong Cloud Shell (bằng lệnh git clone
) hoặc tải tệp ZIP xuống qua nút Mã màu xanh lục như trong ảnh chụp màn hình sau đây:
Bây giờ bạn đã có mọi thứ, hãy tạo một bản sao đầy đủ của thư mục để thực hiện hướng dẫn cụ thể này, vì hướng dẫn này có thể liên quan đến việc xoá hoặc thay đổi các tệp. Nếu muốn thực hiện một hoạt động triển khai khác, bạn có thể bắt đầu lại bằng cách sao chép bản gốc để không phải sao chép hoặc tải xuống lại.
5. Tham quan ứng dụng mẫu
Ứng dụng mẫu là một sản phẩm phái sinh đơn giản của Google Dịch, nhắc người dùng nhập văn bản bằng tiếng Anh và nhận bản dịch tương đương của văn bản đó bằng tiếng Tây Ban Nha. Bây giờ, hãy mở tệp main.py
để chúng ta có thể xem cách thức hoạt động. Bỏ qua các dòng bình luận về việc cấp phép, giao diện của phần trên cùng và dưới cùng sẽ có giao diện như sau:
from flask import Flask, render_template, request
import google.auth
from google.cloud import translate
app = Flask(__name__)
_, PROJECT_ID = google.auth.default()
TRANSLATE = translate.TranslationServiceClient()
PARENT = 'projects/{}'.format(PROJECT_ID)
SOURCE, TARGET = ('en', 'English'), ('es', 'Spanish')
# . . . [translate() function definition] . . .
if __name__ == '__main__':
import os
app.run(debug=True, threaded=True, host='0.0.0.0',
port=int(os.environ.get('PORT', 8080)))
- Các lệnh nhập mang đến chức năng của Flask, mô-đun
google.auth
và thư viện ứng dụng Cloud Translation API. - Các biến toàn cục đại diện cho ứng dụng Flask, mã dự án trên đám mây, ứng dụng Translation API, "đường dẫn vị trí" gốc cho các lệnh gọi Translation API cũng như ngôn ngữ nguồn và ngôn ngữ đích. Trong trường hợp này, đó là tiếng Anh (
en
) và tiếng Tây Ban Nha (es
). Tuy nhiên, bạn có thể thay đổi các giá trị này sang các mã ngôn ngữ khác được Cloud Translation API hỗ trợ. - Khối
if
lớn ở dưới cùng được dùng trong hướng dẫn chạy ứng dụng này trên máy. Khối này sử dụng máy chủ phát triển Flask để phân phát ứng dụng của chúng ta. Phần này cũng có trong hướng dẫn triển khai Cloud Run trong trường hợp máy chủ web không được đóng gói vào vùng chứa. Bạn được yêu cầu bật tính năng gói máy chủ trong vùng chứa. Tuy nhiên, trong trường hợp bạn bỏ qua điều này, mã ứng dụng sẽ quay lại sử dụng máy chủ phát triển Flask. (Vấn đề này không liên quan đến App Engine hay Cloud Functions vì đó là những nền tảng có nguồn gốc, tức là Google Cloud cung cấp và chạy một máy chủ web mặc định.)
Cuối cùng, ở giữa main.py
là thành phần chính của ứng dụng, hàm translate()
:
@app.route('/', methods=['GET', 'POST'])
def translate(gcf_request=None):
"""
main handler - show form and possibly previous translation
"""
# Flask Request object passed in for Cloud Functions
# (use gcf_request for GCF but flask.request otherwise)
local_request = gcf_request if gcf_request else request
# reset all variables (GET)
text = translated = None
# if there is data to process (POST)
if local_request.method == 'POST':
text = local_request.form['text']
data = {
'contents': [text],
'parent': PARENT,
'target_language_code': TARGET[0],
}
# handle older call for backwards-compatibility
try:
rsp = TRANSLATE.translate_text(request=data)
except TypeError:
rsp = TRANSLATE.translate_text(**data)
translated = rsp.translations[0].translated_text
# create context & render template
context = {
'orig': {'text': text, 'lc': SOURCE},
'trans': {'text': translated, 'lc': TARGET},
}
return render_template('index.html', **context)
Hàm chính thực hiện công việc lấy thông tin đầu vào của người dùng và gọi Translation API để thực hiện phần nâng cao. Chúng ta hãy cùng phân tích chi tiết như sau:
- Kiểm tra xem các yêu cầu có đến từ Cloud Functions bằng cách sử dụng biến
local_request
hay không. Cloud Functions gửi đối tượng Yêu cầu Flask riêng trong khi tất cả những đối tượng khác (chạy cục bộ hoặc triển khai cho App Engine hoặc Cloud Run) sẽ nhận đối tượng yêu cầu trực tiếp từ Flask. - Đặt lại các biến cơ bản cho biểu mẫu. Việc này chủ yếu dành cho các yêu cầu GET vì các yêu cầu POST sẽ có dữ liệu thay thế cho các yêu cầu này.
- Nếu đó là yêu cầu về siêu dữ liệu API, hãy lấy văn bản để dịch rồi tạo cấu trúc JSON để thể hiện yêu cầu về siêu dữ liệu API. Sau đó, hãy gọi API, quay lại phiên bản API trước đó nếu người dùng đang sử dụng một thư viện cũ.
- Dù vậy, hãy định dạng kết quả thực tế (POST) hoặc không có dữ liệu (GET) vào ngữ cảnh mẫu và hiển thị.
Phần hình ảnh của ứng dụng này nằm trong tệp index.html
mẫu. Phần này hiển thị mọi kết quả đã dịch trước đây (trống), theo sau là biểu mẫu yêu cầu dịch nội dung nào đó:
<!doctype html>
<html><head><title>My Google Translate 1990s</title><body>
<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>
6. Cài đặt gói/phần phụ thuộc cục bộ (vào lib)
Như đã đề cập trước đó, ứng dụng mẫu sử dụng khung web vi mô Flask và thư viện ứng dụng Google Cloud Translation API cho Python. Cài đặt và cập nhật pip
cùng cặp gói này bằng lệnh pip
(hoặc pip3
) sau:
pip install -t lib -r requirements.txt
Sau khi chạy nhận xét ở trên, bạn sẽ thấy kết quả cài đặt có thể có dạng như sau:
$ pip install -t lib -r requirements.txt DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality. Collecting flask>=1.1.2 Using cached Flask-1.1.4-py2.py3-none-any.whl (94 kB) Collecting google-cloud-translate>=2.0.1 Using cached google_cloud_translate-2.0.2-py2.py3-none-any.whl (91 kB) Collecting click<8.0,>=5.1 Using cached click-7.1.2-py2.py3-none-any.whl (82 kB) Collecting Jinja2<3.0,>=2.10.1 Using cached Jinja2-2.11.3-py2.py3-none-any.whl (125 kB) Collecting Werkzeug<2.0,>=0.15 Using cached Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB) Collecting itsdangerous<2.0,>=0.24 Using cached itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB) Collecting google-api-core[grpc]<2.0.0dev,>=1.15.0 Downloading google_api_core-1.29.0-py2.py3-none-any.whl (93 kB) |████████████████████████████████| 93 kB 2.1 MB/s Collecting google-cloud-core<2.0dev,>=1.1.0 Using cached google_cloud_core-1.6.0-py2.py3-none-any.whl (28 kB) Collecting MarkupSafe>=0.23 Using cached MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl (17 kB) Collecting protobuf>=3.12.0 Downloading protobuf-3.17.2-cp27-cp27m-macosx_10_9_x86_64.whl (958 kB) |████████████████████████████████| 958 kB 21.6 MB/s Collecting futures>=3.2.0; python_version < "3.2" Using cached futures-3.3.0-py2-none-any.whl (16 kB) Collecting six>=1.13.0 Using cached six-1.16.0-py2.py3-none-any.whl (11 kB) Collecting packaging>=14.3 Using cached packaging-20.9-py2.py3-none-any.whl (40 kB) Collecting googleapis-common-protos<2.0dev,>=1.6.0 Using cached googleapis_common_protos-1.52.0-py2.py3-none-any.whl (100 kB) Collecting requests<3.0.0dev,>=2.18.0 Using cached requests-2.25.1-py2.py3-none-any.whl (61 kB) Collecting google-auth<2.0dev,>=1.25.0 Using cached google_auth-1.30.1-py2.py3-none-any.whl (146 kB) Collecting pytz Using cached pytz-2021.1-py2.py3-none-any.whl (510 kB) Collecting setuptools>=40.3.0 Using cached setuptools-44.1.1-py2.py3-none-any.whl (583 kB) Collecting grpcio<2.0dev,>=1.29.0; extra == "grpc" Using cached grpcio-1.38.0-cp27-cp27m-macosx_10_10_x86_64.whl (3.8 MB) Collecting pyparsing>=2.0.2 Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB) Collecting chardet<5,>=3.0.2 Using cached chardet-4.0.0-py2.py3-none-any.whl (178 kB) Collecting urllib3<1.27,>=1.21.1 Using cached urllib3-1.26.5-py2.py3-none-any.whl (138 kB) Collecting idna<3,>=2.5 Using cached idna-2.10-py2.py3-none-any.whl (58 kB) Collecting certifi>=2017.4.17 Downloading certifi-2021.5.30-py2.py3-none-any.whl (145 kB) |████████████████████████████████| 145 kB 61.1 MB/s Collecting pyasn1-modules>=0.2.1 Using cached pyasn1_modules-0.2.8-py2.py3-none-any.whl (155 kB) Collecting rsa<4.6; python_version < "3.6" Using cached rsa-4.5-py2.py3-none-any.whl (36 kB) Collecting cachetools<5.0,>=2.0.0 Using cached cachetools-3.1.1-py2.py3-none-any.whl (11 kB) Collecting enum34>=1.0.4; python_version < "3.4" Using cached enum34-1.1.10-py2-none-any.whl (11 kB) Collecting pyasn1<0.5.0,>=0.4.6 Using cached pyasn1-0.4.8-py2.py3-none-any.whl (77 kB) Installing collected packages: click, MarkupSafe, Jinja2, Werkzeug, itsdangerous, flask, six, protobuf, futures, pyparsing, packaging, googleapis-common-protos, chardet, urllib3, idna, certifi, requests, pyasn1, pyasn1-modules, rsa, cachetools, setuptools, google-auth, pytz, enum34, grpcio, google-api-core, google-cloud-core, google-cloud-translate ERROR: pip's legacy dependency resolver does not consider dependency conflicts when selecting packages. This behaviour is the source of the following dependency conflicts. matplotlib 1.3.1 requires nose, which is not installed. matplotlib 1.3.1 requires tornado, which is not installed. Successfully installed Jinja2-2.11.3 MarkupSafe-1.1.1 Werkzeug-1.0.1 cachetools-3.1.1 certifi-2021.5.30 chardet-4.0.0 click-7.1.2 enum34-1.1.10 flask-1.1.4 futures-3.3.0 google-api-core-1.29.0 google-auth-1.30.1 google-cloud-core-1.6.0 google-cloud-translate-2.0.2 googleapis-common-protos-1.52.0 grpcio-1.38.0 idna-2.10 itsdangerous-1.1.0 packaging-20.9 protobuf-3.17.2 pyasn1-0.4.8 pyasn1-modules-0.2.8 pyparsing-2.4.7 pytz-2021.1 requests-2.25.1 rsa-4.5 setuptools-44.1.1 six-1.16.0 urllib3-1.26.5
7. Triển khai dịch vụ
Để triển khai dịch vụ dịch của bạn cho Python 2 App Engine, hãy chạy lệnh sau:
gcloud app deploy
Kết quả sẽ có dạng như sau và cung cấp một số lời nhắc cho các bước tiếp theo:
$ gcloud app deploy Services to deploy: descriptor: [/private/tmp/nebulous-serverless-python/app.yaml] source: [/private/tmp/nebulous-serverless-python] target project: [PROJECT_ID] target service: [default] target version: [20210422t161025] target url: [https://PROJECT_ID.appspot.com] Do you want to continue (Y/n)? Beginning deployment of service [default]... ╔════════════════════════════════════════════════════════════╗ ╠═ Uploading 1290 files to Google Cloud Storage ═╣ ╚════════════════════════════════════════════════════════════╝ File upload done. Updating service [default]...done. Setting traffic split for service [default]...done. Deployed service [default] to [https://PROJECT_ID.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
Hiện ứng dụng của bạn đã có mặt trên toàn cầu, bạn có thể truy cập ứng dụng đó tại URL (có chứa mã dự án) được cung cấp trong dữ liệu đầu ra của quá trình triển khai:
Hãy dịch nội dung nào đó để nội dung đó hoạt động!
8. Kết luận
Xin chúc mừng! Bạn đã tìm hiểu cách bật Cloud Translation API, lấy thông tin đăng nhập cần thiết và triển khai ứng dụng web đơn giản cho Python 2 App Engine! Bạn có thể tìm hiểu thêm về quá trình triển khai này ở bảng này trong kho lưu trữ.
Dọn dẹp
Cloud Translation API cho phép bạn thực hiện một lượng ký tự dịch cố định mỗi tháng miễn phí. App Engine cũng có hạn mức miễn phí, tương tự như Cloud Functions và Cloud Run. Bạn sẽ phải trả phí nếu vượt quá một trong hai số đó. Nếu dự định chuyển sang lớp học lập trình tiếp theo, bạn không cần phải tắt ứng dụng.
Tuy nhiên, nếu bạn chưa sẵn sàng xem hướng dẫn tiếp theo hoặc lo ngại rằng Internet phát hiện ra ứng dụng mà bạn vừa triển khai, hãy tắt ứng dụng App Engine, xoá Hàm Cloud hoặc tắt dịch vụ Cloud Run để tránh phát sinh phí. Khi đã sẵn sàng chuyển sang lớp học lập trình tiếp theo, bạn có thể bật lại lớp học này. Mặt khác, nếu không tiếp tục sử dụng ứng dụng này hoặc các lớp học lập trình khác và muốn xoá hoàn toàn mọi thứ, bạn có thể ngừng dự án của mình.
Ngoài ra, việc triển khai cho một nền tảng điện toán không máy chủ của Google Cloud sẽ làm phát sinh chi phí bản dựng và bộ nhớ thấp. Cloud Build cũng có hạn mức miễn phí riêng, tương tự như Cloud Storage. Để tăng tính minh bạch, Cloud Build xây dựng hình ảnh ứng dụng của bạn. Sau đó, hình ảnh này được lưu trữ trong Cloud Container Registry (Sổ đăng ký vùng chứa Cloud) hoặc Artifact Registry (Sổ đăng ký cấu phần phần mềm) kế thừa. Việc lưu trữ hình ảnh đó sẽ sử dụng hết một phần hạn mức đó cũng như đầu ra mạng khi chuyển hình ảnh đó sang dịch vụ. Tuy nhiên, bạn có thể sống ở một khu vực không có bậc miễn phí như vậy, vì vậy hãy chú ý đến mức sử dụng bộ nhớ của bạn để giảm thiểu chi phí tiềm ẩn.
9. Tài nguyên khác
Trong các phần sau, bạn có thể tìm thêm tài liệu đọc cũng như các bài tập được đề xuất để nâng cao kiến thức học được sau khi hoàn thành hướng dẫn này.
Nghiên cứu bổ sung
Giờ đây, khi mà bạn đã có được một số kinh nghiệm về Translation API, hãy làm thêm một số bài tập để phát triển kỹ năng của bạn hơn nữa. Để tiếp tục lộ trình học tập của bạn, hãy sửa đổi ứng dụng mẫu của chúng tôi để thực hiện những việc sau:
- Hoàn thành tất cả phiên bản khác của lớp học lập trình này để chạy cục bộ hoặc triển khai cho các nền tảng điện toán không máy chủ của Google Cloud (xem phần README kho lưu trữ).
- Hoàn thành hướng dẫn này bằng một ngôn ngữ lập trình khác.
- Thay đổi ứng dụng này để hỗ trợ các ngôn ngữ nguồn hoặc ngôn ngữ đích khác.
- Nâng cấp ứng dụng này để có thể dịch văn bản sang nhiều ngôn ngữ; hãy thay đổi tệp mẫu để có danh sách ngôn ngữ đích được hỗ trợ kéo xuống.
Tìm hiểu thêm
Google App Engine
- Trang chủ App Engine
- Tài liệu về App Engine
- Bắt đầu nhanh với Python 3 App Engine
- Tài khoản dịch vụ mặc định cho App Engine
- Thời gian chạy Python 2 App Engine (Tiêu chuẩn)
- Thời gian chạy Python 3 App Engine (Tiêu chuẩn)
- Điểm khác biệt giữa Python 2 và 3 môi trường thời gian chạy App Engine (Tiêu chuẩn)
- Hướng dẫn di chuyển từ Python 2 sang 3 App Engine (Tiêu chuẩn)
Chức năng đám mây của Google
- Trang chủ Cloud Functions
- Tài liệu về Chức năng đám mây
- Bắt đầu nhanh Hàm đám mây của Python
- Tài khoản dịch vụ mặc định cho Cloud Functions
Google Cloud Run
- Trang chủ Cloud Run
- Tài liệu về Cloud Run
- Bắt đầu nhanh Python Cloud Run
- Tài khoản dịch vụ mặc định cho Cloud Run
Gói bản dựng Google Cloud, Sổ đăng ký vùng chứa, Sổ đăng ký Artifact
- Thông báo về Cloud Buildpacks
- Kho lưu trữ Cloud Buildpack
- Trang chủ Cloud Artifact Registry
- Tài liệu về Cloud Artifact Registry
- Trang chủ Cloud Container Registry
- Tài liệu về Cloud Container Registry
Google Cloud Translation và Google ML Kit
- Trang chủ Cloud Translation
- Tài liệu về Bản dịch trên Cloud
- Trang giá Translation API
- Tất cả "khối xây dựng" AI/học máy của Cloud API
- Bộ công cụ học máy của Google (tập hợp con các API của Cloud AI/ML dành cho thiết bị di động)
- API Dịch Bộ công cụ học máy của Google
Các sản phẩm/trang khác của Google Cloud
- Nhóm hỗ trợ Google Cloud Python
- Thư viện ứng dụng Google Cloud
- Google Cloud "Luôn miễn phí" cấp
- Tất cả tài liệu của Google Cloud
Python và bình giữ nhiệt
Giấy phép
Hướng dẫn này được cấp phép theo Giấy phép chung Ghi nhận bản quyền 2.0 của Creative Commons trong khi mã nguồn trong kho lưu trữ được cấp phép theo Apache 2.