1. ภาพรวม
ชุดโค้ดแล็บ (บทแนะนำแบบฝึกหัดด้วยตนเอง) นี้มีจุดประสงค์เพื่อช่วยให้นักพัฒนาซอฟต์แวร์เข้าใจตัวเลือกต่างๆ ที่มีอยู่เมื่อนำแอปพลิเคชันของตนไปใช้งาน ในโค้ดแล็บนี้ คุณจะได้เรียนรู้วิธีใช้ Google Cloud Translation API กับ Python และเรียกใช้แบบในเครื่องหรือทำให้ใช้งานได้บนแพลตฟอร์มการประมวลผลแบบเซิร์ฟเวอร์เสิร์ฟของ Cloud (App Engine, Cloud Functions หรือ Cloud Run) แอปตัวอย่างที่อยู่ในที่เก็บของบทแนะนํานี้สามารถทําให้การเผยแพร่ใช้งานได้ (อย่างน้อย) 8 วิธีที่แตกต่างกันด้วยการเปลี่ยนแปลงการกําหนดค่าเพียงเล็กน้อย ดังนี้
- เซิร์ฟเวอร์ Flask ในพื้นที่ (Python 2)
- เซิร์ฟเวอร์ Flask ในพื้นที่ (Python 3)
- App Engine (Python 2)
- App Engine (Python 3)
- Cloud Functions (Python 3)
- Cloud Run (Python 2 ผ่าน Docker)
- Cloud Run (Python 3 ผ่าน Docker)
- Cloud Run (Python 3 ผ่าน Cloud Buildpack)
โค้ดแล็บนี้จะเน้นที่การนำแอปนี้ไปใช้กับแพลตฟอร์มที่ตัวหนาด้านบน
คุณจะได้เรียนรู้วิธี
- ใช้ Google Cloud API โดยเฉพาะ Cloud Translation API (ขั้นสูง/v3)
- เรียกใช้เว็บแอปพลิเคชันพื้นฐานในเครื่องหรือติดตั้งใช้งานในแพลตฟอร์มการประมวลผลแบบเซิร์ฟเวอร์เสมือนในระบบคลาวด์
สิ่งที่ต้องมี
- โปรเจ็กต์ Google Cloud ที่มีบัญชีสำหรับการเรียกเก็บเงินใน Cloud ที่ใช้งานอยู่
- Flask ที่ติดตั้งไว้เพื่อเรียกใช้ในพื้นที่ หรือแพลตฟอร์มการประมวลผลแบบไม่ใช้เซิร์ฟเวอร์ของ Cloud ที่เปิดใช้สำหรับการทําให้การเผยแพร่บนระบบคลาวด์
- ทักษะพื้นฐานเกี่ยวกับ Python
- ความรู้เกี่ยวกับคำสั่งพื้นฐานของระบบปฏิบัติการ
แบบสํารวจ
คุณจะใช้บทแนะนำนี้อย่างไร
คุณจะให้คะแนนประสบการณ์การใช้งาน Python เท่าไร
คุณจะให้คะแนนประสบการณ์การใช้งานบริการ Google Cloud เท่าใด
2. การตั้งค่าและข้อกําหนด
การตั้งค่าสภาพแวดล้อมด้วยตนเอง
- ลงชื่อเข้าใช้ Google Cloud Console และสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี
- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ และคุณอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์ต้องไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและจะเปลี่ยนแปลงไม่ได้ (เปลี่ยนแปลงไม่ได้หลังจากตั้งค่าแล้ว) คอนโซล Cloud จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นจะเป็นอะไร ในโค้ดแล็บส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (ซึ่งมักจะระบุเป็น
PROJECT_ID
) ดังนั้นหากไม่ชอบรหัสที่สร้างไว้ ให้สร้างรหัสอื่นแบบสุ่ม หรือจะลองสร้างรหัสของคุณเองและดูว่ารหัสนั้นใช้งานได้หรือไม่ก็ได้ จากนั้นระบบจะ "หยุด" โปรเจ็กต์ไว้หลังจากสร้างโปรเจ็กต์แล้ว - ค่าที่ 3 คือหมายเลขโปรเจ็กต์ที่ API บางรายการใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 รายการนี้ได้ในเอกสารประกอบ
- ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตามโค้ดแล็บนี้ไม่น่าจะเสียค่าใช้จ่ายมากนัก หากต้องการปิดใช้ทรัพยากรเพื่อไม่ให้มีการเรียกเก็บเงินหลังจากบทแนะนำนี้ ให้ทําตามวิธีการ "ล้างข้อมูล" ที่แสดงอยู่ท้าย Codelab ผู้ใช้ใหม่ของ Google Cloud มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
3. เปิดใช้ Translation API
ในส่วนนี้ คุณจะได้เรียนรู้วิธีเปิดใช้ Google API โดยทั่วไป สําหรับแอปตัวอย่าง คุณจะเปิดใช้บริการ Cloud Translation API และ Cloud Functions
บทนำ
ไม่ว่าคุณจะต้องการใช้ Google API ใดก็ตามในแอปพลิเคชัน คุณต้องเปิดใช้ API นั้น ตัวอย่างต่อไปนี้แสดง 2 วิธีในการเปิดใช้ Cloud Vision API หลังจากดูวิธีเปิดใช้ Cloud API รายการหนึ่งแล้ว คุณจะเปิดใช้ API อื่นๆ ได้เนื่องจากกระบวนการคล้ายกัน
ตัวเลือกที่ 1: จาก Cloud Shell หรืออินเทอร์เฟซบรรทัดคำสั่ง
แม้ว่าการเปิดใช้ API จากคอนโซลระบบคลาวด์จะพบได้บ่อยกว่า แต่นักพัฒนาแอปบางรายก็ชอบทำทุกอย่างจากบรรทัดคำสั่ง โดยต้องค้นหา "ชื่อบริการ" ของ API มีลักษณะเป็น URL: SERVICE_NAME
.googleapis.com
คุณดูข้อมูลเหล่านี้ได้ในแผนภูมิผลิตภัณฑ์ที่รองรับ หรือจะค้นหาแบบเป็นโปรแกรมด้วย Google Discovery API ก็ได้
เมื่อทราบข้อมูลนี้แล้ว คุณสามารถใช้ Cloud Shell (หรือสภาพแวดล้อมการพัฒนาในเครื่องที่ติดตั้งเครื่องมือบรรทัดคำสั่ง gcloud
) เพื่อเปิดใช้ API ได้โดยทำดังนี้
gcloud services enable SERVICE_NAME.googleapis.com
เช่น คำสั่งนี้จะเปิดใช้ Cloud Vision API
gcloud services enable vision.googleapis.com
คำสั่งนี้จะเปิดใช้ App Engine
gcloud services enable appengine.googleapis.com
นอกจากนี้ คุณยังเปิดใช้ API หลายรายการด้วยคําขอเดียวได้ด้วย ตัวอย่างเช่น บรรทัดคำสั่งนี้จะเปิดใช้ Cloud Run, Cloud Artifact Registry และ Cloud Translation API
gcloud services enable artifactregistry.googleapis.com run.googleapis.com translate.googleapis.com
ตัวเลือกที่ 2: จาก Cloud Console
นอกจากนี้ คุณยังเปิดใช้ Vision API ในเครื่องมือจัดการ API ได้ด้วย จาก Cloud Console ให้ไปที่เครื่องมือจัดการ API แล้วเลือกคลัง
หากต้องการเปิดใช้ Cloud Vision API ให้เริ่มป้อน "vision" ในแถบค้นหา แล้วรายการที่ตรงกับสิ่งที่คุณป้อนจนถึงตอนนี้จะปรากฏขึ้น
เลือก API ที่ต้องการเปิดใช้ แล้วคลิกเปิดใช้
ค่าใช้จ่าย
แม้ว่า Google API หลายรายการจะใช้ได้โดยไม่เสียค่าธรรมเนียม แต่การใช้ผลิตภัณฑ์และ API ของ Google Cloud นั้นไม่ฟรี เมื่อเปิดใช้ Cloud API ระบบอาจขอบัญชีการเรียกเก็บเงินที่ใช้งานอยู่ อย่างไรก็ตาม โปรดทราบว่าผลิตภัณฑ์ Google Cloud บางรายการมีระดับ "ฟรีตลอด" (รายวัน/รายเดือน) ซึ่งคุณต้องใช้งานเกินเกณฑ์จึงจะมีค่าใช้จ่ายในการเรียกเก็บเงิน มิเช่นนั้นระบบจะไม่เรียกเก็บเงินจากบัตรเครดิต (หรือเครื่องมือการเรียกเก็บเงินที่ระบุ)
ผู้ใช้ควรดูข้อมูลราคาของ API ก่อนที่จะเปิดใช้ โดยเฉพาะอย่างยิ่งต้องดูว่า API มีแพ็กเกจแบบไม่มีค่าใช้จ่ายหรือไม่ และหากมี แพ็กเกจดังกล่าวมีราคาเท่าใด หากเปิดใช้ Cloud Vision API คุณจะต้องดูหน้าข้อมูลราคาของ API ดังกล่าว Cloud Vision มีโควต้าแบบไม่มีค่าใช้จ่าย และตราบใดที่คุณใช้ไม่เกินขีดจำกัดโดยรวม (ในแต่ละเดือน) ก็ไม่ควรจะมีการเรียกเก็บเงิน
ราคาและระดับที่ไม่มีค่าใช้จ่ายจะแตกต่างกันไปในแต่ละ Google API ตัวอย่าง
- Google Cloud/GCP — ระบบจะเรียกเก็บเงินสำหรับผลิตภัณฑ์แต่ละรายการแตกต่างกันไป และโดยทั่วไปจะคิดค่าบริการตามรอบ vCPU, ผู้บริโภคพื้นที่เก็บข้อมูล, การใช้หน่วยความจำ หรือแบบชําระเงินต่อการใช้งาน ดูข้อมูลระดับไม่มีค่าใช้จ่ายด้านบน
- Google Maps - มีชุด API และมอบเครดิต $200USD ฟรีต่อเดือนโดยรวมให้แก่ผู้ใช้
- API ของ Google Workspace (เดิมคือ G Suite) — ให้การใช้งานฟรี (สูงสุดตามขีดจํากัดที่กำหนด) ซึ่งรวมอยู่ในค่าสมัครใช้บริการ Workspace รายเดือน จึงไม่มีการเรียกเก็บเงินโดยตรงสําหรับการใช้ Gmail, Google ไดรฟ์, ปฏิทิน, เอกสาร, ชีต และสไลด์ API
ผลิตภัณฑ์ต่างๆ ของ Google มีการเรียกเก็บเงินแตกต่างกัน ดังนั้นโปรดดูข้อมูลดังกล่าวในเอกสารประกอบของ API
สรุป
เมื่อทราบวิธีเปิดใช้ Google API โดยทั่วไปแล้ว โปรดไปที่เครื่องมือจัดการ API และเปิดใช้ทั้งบริการ Cloud Translation API และ Cloud Functions (หากยังไม่ได้เปิดใช้) เนื่องจากแอปพลิเคชันของเราจะใช้บริการหลัง และเนื่องจากคุณกำลังทำให้ Cloud Functions ใช้งานได้ หากต้องการดำเนินการจากบรรทัดคำสั่ง ให้ใช้คำสั่งนี้แทน
gcloud services enable cloudfunctions.googleapis.com translate.googleapis.com
แม้ว่าโควต้ารายเดือนของฟีเจอร์นี้จะไม่แสดงอยู่ในหน้าสรุประดับ "ฟรีตลอด" โดยรวม แต่หน้าราคาของ Translation API ระบุว่าผู้ใช้ทุกคนจะได้รับจำนวนอักขระที่แปลแล้วคงที่ทุกเดือน คุณไม่ควรถูกเรียกเก็บเงินจาก API หากการใช้งานอยู่ต่ำกว่าเกณฑ์ดังกล่าว หากมีการเรียกเก็บเงินอื่นๆ ที่เกี่ยวข้องกับ Google Cloud เราจะพูดถึงเรื่องนี้ในตอนท้ายในส่วน "ล้างข้อมูล"
4. รับโค้ดแอปตัวอย่าง
โคลนโค้ดในที่เก็บในเครื่องหรือใน Cloud Shell (โดยใช้คำสั่ง git clone
) หรือดาวน์โหลดไฟล์ ZIP จากปุ่มโค้ดสีเขียวตามที่แสดงในภาพหน้าจอต่อไปนี้
เมื่อเตรียมทุกอย่างแล้ว ให้สร้างสำเนาโฟลเดอร์ทั้งหมดเพื่อทำตามบทแนะนำนี้ เนื่องจากมีแนวโน้มว่าจะต้องลบหรือเปลี่ยนแปลงไฟล์ หากต้องการทําการติดตั้งใช้งานอื่น ให้เริ่มใหม่โดยคัดลอกต้นฉบับเพื่อไม่ต้องโคลนหรือดาวน์โหลดอีกครั้ง
5. ทัวร์ชมแอปตัวอย่าง
แอปตัวอย่างเป็นแอปที่ทำงานร่วมกับ Google แปลภาษา เวอร์ชันง่ายๆ ซึ่งจะแจ้งให้ผู้ใช้ป้อนข้อความเป็นภาษาอังกฤษและรับการแปลข้อความนั้นเทียบเท่าเป็นภาษาสเปน ตอนนี้เปิดไฟล์ main.py
เพื่อให้เราดูวิธีการทํางาน เมื่อไม่ใส่บรรทัดที่มีความคิดเห็นเกี่ยวกับการอนุญาตให้ใช้สิทธิ ด้านบนและด้านล่างจะมีลักษณะดังนี้
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)))
- การนําเข้าจะนําฟังก์ชันการทํางานของ Flask, โมดูล
google.auth
และไลบรารีไคลเอ็นต์ Cloud Translation API เข้ามา - ตัวแปรส่วนกลางแสดงแอป Flask, รหัสโปรเจ็กต์ Cloud, ไคลเอ็นต์ Translation API, "เส้นทางตำแหน่ง" หลักสำหรับการเรียก Translation API และภาษาต้นทางและภาษาเป้าหมาย ในกรณีนี้ จะเป็นภาษาอังกฤษ (
en
) และสเปน (es
) แต่คุณเปลี่ยนค่าเหล่านี้เป็นรหัสภาษาอื่นๆ ที่ Cloud Translation API รองรับได้ - บล็อก
if
ขนาดใหญ่ที่ด้านล่างมีไว้สำหรับบทแนะนำการเรียกใช้แอปนี้ในเครื่อง ซึ่งจะใช้เซิร์ฟเวอร์สำหรับนักพัฒนาซอฟต์แวร์ Flask เพื่อแสดงแอปของเรา ส่วนนี้ยังมีไว้สำหรับบทแนะนำการทำให้ Cloud Run ใช้งานได้ในกรณีที่ไม่ได้รวมเว็บเซิร์ฟเวอร์ไว้ในคอนเทนเนอร์ ระบบจะขอให้คุณเปิดใช้การรวมเซิร์ฟเวอร์ในคอนเทนเนอร์ แต่ในกรณีที่คุณไม่ได้ดำเนินการนี้ โค้ดแอปจะใช้เซิร์ฟเวอร์การพัฒนา Flask แทน (ปัญหานี้ไม่ได้เกิดจาก App Engine หรือ Cloud Functions เนื่องจากเป็นแพลตฟอร์มแบบมีแหล่งที่มา ซึ่งหมายความว่า Google Cloud จะจัดหาและเรียกใช้เว็บเซิร์ฟเวอร์เริ่มต้น)
สุดท้าย ตรงกลางของ main.py
คือหัวใจของแอปพลิเคชัน ซึ่งเป็นฟังก์ชัน 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)
ฟังก์ชันหลักจะรับอินพุตของผู้ใช้และเรียก Translation API ให้ทำงานหนัก มาดูรายละเอียดกัน
- ตรวจสอบว่าคําขอมาจาก Cloud Functions โดยใช้ตัวแปร
local_request
หรือไม่ Cloud Functions จะส่งออบเจ็กต์คำขอ Flask ของตัวเอง ส่วนบริการอื่นๆ ทั้งหมด (ที่ทำงานในเครื่องหรือทำให้ใช้งานได้ใน App Engine หรือ Cloud Run) จะได้รับออบเจ็กต์คำขอจาก Flask โดยตรง - รีเซ็ตตัวแปรพื้นฐานสําหรับแบบฟอร์ม ซึ่งใช้สำหรับคำขอ GET เป็นหลัก เนื่องจากคำขอ POST จะมีข้อมูลที่แทนที่ข้อมูลเหล่านี้
- หากเป็น POST ให้คัดลอกข้อความเพื่อแปล และสร้างโครงสร้าง JSON ที่แสดงถึงข้อกําหนดของข้อมูลเมตา API จากนั้นเรียกใช้ API โดยเปลี่ยนกลับไปใช้ API เวอร์ชันเก่าหากผู้ใช้ใช้ไลบรารีเวอร์ชันเก่า
- ไม่ว่าจะอย่างไร ให้จัดรูปแบบผลลัพธ์จริง (POST) หรือไม่มีข้อมูล (GET) ลงในบริบทของเทมเพลตและแสดงผล
ส่วนภาพของแอปพลิเคชันอยู่ในไฟล์เทมเพลต index.html
ซึ่งจะแสดงผลการค้นหาที่แปลไว้ก่อนหน้านี้ (หากไม่มีจะแสดงเป็นค่าว่าง) ตามด้วยแบบฟอร์มที่ขอให้คุณป้อนข้อความที่ต้องการแปล
<!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. ติดตั้งใช้งานบริการ
หากต้องการทำให้บริการแปลภาษาใช้งานได้ใน Cloud Functions (Python 3) ให้เรียกใช้คำสั่งนี้
gcloud functions deploy translate --runtime python37 --trigger-http --allow-unauthenticated
เอาต์พุตควรมีลักษณะดังต่อไปนี้และแสดงพรอมต์สำหรับขั้นตอนถัดไป
$ gcloud functions deploy translate --runtime python37 --trigger-http --allow-unauthenticated Deploying function (may take a while - up to 2 minutes)...⠹ For Cloud Build Stackdriver Logs, visit: https://console.cloud.google.com/logs/viewer?project=PROJECT_ID&advancedFilter=resource.type%3Dbuild%0Aresource.labels.build_id%3D7e32429d-ec36-422c-8a8b-43c4d661a15c%0AlogName%3Dprojects%2FPROJECT_ID%2Flogs%2Fcloudbuild Deploying function (may take a while - up to 2 minutes)...done. availableMemoryMb: 256 buildId: 7e32429d-ec36-422c-8a8b-43c4d661a15 entryPoint: translate 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: python37 serviceAccountEmail: PROJECT_ID@appspot.gserviceaccount.com sourceUploadUrl: https://storage.googleapis.com/gcf-upload-REGION-873f8448-838f-4eb2-beda-3e200a1420d/cb1cbdca-34eb-41d0-88d6-c276d5205fb.zip?GoogleAccessId=service-104690130103@gcf-admin-robot.iam.gserviceaccount.com&Expires=1619139674 status: ACTIVE timeout: 60s updateTime: '2021-04-23T00:32:58.065Z' versionId: '3'
เมื่อแอปพร้อมให้บริการทั่วโลกแล้ว คุณควรเข้าถึงแอปได้ที่ URL ที่มีรหัสโปรเจ็กต์ตามที่แสดงในเอาต์พุตของการติดตั้งใช้งาน URL ควรมีลักษณะดังนี้ https://
REGION
-
PROJECT_ID
.cloudfunctions.net/translate
ซึ่งจะแตกต่างกันไปตามภูมิภาคที่คุณเลือกและรหัสโปรเจ็กต์ Cloud
แปลข้อความเพื่อดูวิธีการใช้งาน
7. บทสรุป
ยินดีด้วย คุณได้เรียนรู้วิธีเปิดใช้ Cloud Translation API, รับข้อมูลเข้าสู่ระบบที่จําเป็น และทำให้เว็บแอปง่ายๆ ใช้งานได้ใน Cloud Functions ดูข้อมูลเพิ่มเติมเกี่ยวกับการทําให้การเผยแพร่นี้ใช้งานได้ได้จากตารางนี้ในรีโป
ล้างข้อมูล
Cloud Translation API ช่วยให้คุณแปลอักขระที่แปลแล้วในจำนวนคงที่ต่อเดือนได้ฟรี App Engine ยังมีโควต้าแบบไม่มีค่าใช้จ่ายด้วย ซึ่ง Cloud Functions และ Cloud Run ก็มีเช่นกัน ระบบจะเรียกเก็บเงินจากคุณหากมีการใช้งานเกินขีดจำกัดดังกล่าว หากวางแผนที่จะไปยังโค้ดแล็บถัดไป คุณไม่จำเป็นต้องปิดแอป
อย่างไรก็ตาม หากคุณยังไม่พร้อมที่จะดูบทแนะนำถัดไปหรือกังวลว่าอินเทอร์เน็ตจะค้นพบแอปที่คุณเพิ่งทำให้ใช้งานได้ ให้ปิดใช้แอป App Engine, ลบ Cloud Function หรือปิดใช้บริการ Cloud Run เพื่อหลีกเลี่ยงการเรียกเก็บเงิน เมื่อพร้อมที่จะไปยังโค้ดแล็บถัดไป คุณจะเปิดใช้โค้ดแล็บอีกครั้งได้ ในทางกลับกัน หากคุณจะไม่ใช้แอปพลิเคชันนี้หรือโค้ดแล็บอื่นๆ ต่อและต้องการลบทุกอย่างออกอย่างสมบูรณ์ คุณสามารถปิดโปรเจ็กต์ได้
นอกจากนี้ การใช้งานแพลตฟอร์มการประมวลผลแบบ Serverless ของ Google Cloud จะมีค่าใช้จ่ายเล็กน้อยในการสร้างและพื้นที่เก็บข้อมูล Cloud Build มีโควต้าแบบไม่มีค่าใช้จ่ายเป็นของตัวเองเช่นเดียวกับ Cloud Storage Cloud Build จะสร้างอิมเมจแอปพลิเคชันของคุณเพื่อเพิ่มความโปร่งใส จากนั้นจะจัดเก็บไว้ใน Cloud Container Registry หรือ Artifact Registry ซึ่งเป็นผลิตภัณฑ์ที่รับช่วงมา พื้นที่เก็บข้อมูลของรูปภาพนั้นจะใช้โควต้าบางส่วนเช่นเดียวกับการส่งออกของเครือข่ายเมื่อโอนรูปภาพนั้นไปยังบริการ อย่างไรก็ตาม คุณอาจอาศัยอยู่ในภูมิภาคที่ไม่มีระดับการใช้งานฟรีดังกล่าว ดังนั้นโปรดคำนึงถึงการใช้พื้นที่เก็บข้อมูลเพื่อลดค่าใช้จ่ายที่อาจเกิดขึ้น
8. แหล่งข้อมูลเพิ่มเติม
ในส่วนต่อไปนี้ คุณจะเห็นเนื้อหาการอ่านเพิ่มเติม รวมถึงแบบฝึกหัดที่แนะนําเพื่อเสริมความรู้ที่ได้รับจากการทำบทแนะนำนี้
การศึกษาเพิ่มเติม
ตอนนี้คุณมีประสบการณ์เกี่ยวกับ Translation API บ้างแล้ว มาลองทำแบบฝึกหัดเพิ่มเติมเพื่อพัฒนาทักษะของคุณกัน หากต้องการดูเส้นทางการเรียนรู้ต่อ ให้แก้ไขแอปตัวอย่างเพื่อทำสิ่งต่อไปนี้
- ทำตามโค้ดแล็บรุ่นอื่นๆ ทั้งหมดของโค้ดแล็บนี้เพื่อเรียกใช้แบบในเครื่องหรือเพื่อนำไปใช้งานในแพลตฟอร์มการประมวลผลแบบเซิร์ฟเวอร์เลสของ Google Cloud (ดู repo README)
- ทําตามบทแนะนํานี้โดยใช้ภาษาโปรแกรมอื่น
- เปลี่ยนแอปพลิเคชันนี้ให้รองรับภาษาต้นฉบับหรือภาษาเป้าหมายอื่น
- อัปเกรดแอปพลิเคชันนี้เพื่อให้แปลข้อความเป็นภาษาได้มากกว่า 1 ภาษา โดยเปลี่ยนไฟล์เทมเพลตให้มีเมนูแบบเลื่อนลงของภาษาเป้าหมายที่รองรับ
ดูข้อมูลเพิ่มเติม
Google App Engine
- หน้าแรกของ App Engine
- เอกสารประกอบของ App Engine
- การเริ่มต้นใช้งาน App Engine อย่างรวดเร็วด้วย Python 3
- บัญชีบริการเริ่มต้นสําหรับ App Engine
- รันไทม์ Python 2 App Engine (มาตรฐาน)
- รันไทม์ Python 3 App Engine (มาตรฐาน)
- ความแตกต่างระหว่างรันไทม์ Python 2 กับ 3 ของ App Engine (มาตรฐาน)
- คู่มือการย้ายข้อมูล Python 2 ไปยัง 3 ใน App Engine (มาตรฐาน)
Google Cloud Functions
- หน้าแรกของ Cloud Functions
- เอกสารประกอบของ Cloud Functions
- การเริ่มต้นใช้งาน Python Cloud Functions อย่างรวดเร็ว
- บัญชีบริการเริ่มต้นสําหรับ Cloud Functions
Google Cloud Run
- หน้าแรกของ Cloud Run
- เอกสารประกอบของ Cloud Run
- การเริ่มต้นใช้งาน Python Cloud Run อย่างรวดเร็ว
- บัญชีบริการเริ่มต้นสำหรับ Cloud Run
Google Cloud Buildpacks, Container Registry, Artifact Registry
- ประกาศเกี่ยวกับ Cloud Buildpacks
- ที่เก็บ Buildpack ของ Cloud
- หน้าแรกของ Cloud Artifact Registry
- เอกสารประกอบของ Cloud Artifact Registry
- หน้าแรกของ Cloud Container Registry
- เอกสารประกอบของ Cloud Container Registry
Google Cloud Translation และ Google ML Kit
- หน้าแรกของ Cloud Translation
- เอกสารประกอบของ Cloud Translation
- หน้าราคาของ Translation API
- API "องค์ประกอบพื้นฐาน" ทั้งหมดของ AI/ML ในระบบคลาวด์
- Google ML Kit (ชุดย่อย Cloud AI/ML API สําหรับอุปกรณ์เคลื่อนที่)
- Google ML Kit Translation API
ผลิตภัณฑ์/หน้าเว็บอื่นๆ ของ Google Cloud
- การสนับสนุน Python ของ Google Cloud
- คลังไลบรารีไคลเอ็นต์ Google Cloud
- ระดับ "ใช้งานฟรีได้เสมอ" ของ Google Cloud
- เอกสารประกอบทั้งหมดของ Google Cloud
Python และ Flask
ใบอนุญาต
บทแนะนำนี้ได้รับอนุญาตภายใต้สัญญาอนุญาตครีเอทีฟคอมมอนส์สำหรับยอมรับสิทธิของผู้สร้าง (Creative Commons Attribution License) 2.0 ทั่วไป ส่วนซอร์สโค้ดในรีโปได้รับอนุญาตภายใต้ Apache 2