ปรับใช้ Google แปลภาษาพื้นฐาน" แอปใน Python 2 Cloud Run (Docker)

1. ภาพรวม

Codelab ชุดนี้ (บทแนะนำแบบลงมือทำด้วยตนเอง) มีจุดประสงค์เพื่อช่วยให้นักพัฒนาซอฟต์แวร์เข้าใจตัวเลือกต่างๆ ที่มีให้เมื่อทำให้แอปพลิเคชันของตนใช้งานได้ ใน Codelab นี้ คุณจะได้เรียนรู้วิธีใช้ Google Cloud Translation API กับ Python และเรียกใช้ภายในหรือทำให้ใช้งานได้กับแพลตฟอร์มการประมวลผลแบบ Serverless ของระบบคลาวด์ (App Engine, Cloud Functions หรือ Cloud Run) คุณทำให้แอปตัวอย่างที่พบในที่เก็บของบทแนะนำนี้ใช้งานได้ (อย่างน้อย) 8 วิธีโดยเปลี่ยนแปลงการกำหนดค่าเพียงเล็กน้อยเท่านั้น

  1. เซิร์ฟเวอร์ Flask ในเครื่อง (Python 2)
  2. เซิร์ฟเวอร์ Flask ในเครื่อง (Python 3)
  3. App Engine (Python 2)
  4. App Engine (Python 3)
  5. Cloud Functions (Python 3)
  6. Cloud Run (Python 2 ผ่าน Docker)
  7. Cloud Run (Python 3 ผ่าน Docker)
  8. Cloud Run (Python 3 ผ่าน Cloud Buildpack)

Codelab นี้มุ่งเน้นการทำให้แอปนี้ใช้งานได้ในแพลตฟอร์มตัวหนาข้างต้น

คุณจะได้เรียนรู้วิธีการ

สิ่งที่คุณต้องมี

แบบสำรวจ

คุณจะใช้บทแนะนำนี้อย่างไร

อ่านและทำแบบฝึกหัด อ่านอย่างเดียว

คุณจะให้คะแนนประสบการณ์การใช้งาน Python อย่างไร

มือใหม่ ระดับกลาง ผู้ชำนาญ

คุณจะให้คะแนนความพึงพอใจในการใช้บริการ Google Cloud อย่างไร

มือใหม่ ระดับกลาง ผู้ชำนาญ

2. การตั้งค่าและข้อกำหนด

การตั้งค่าสภาพแวดล้อมตามเวลาที่สะดวก

  1. ลงชื่อเข้าใช้ Google Cloud Console และสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

  • ชื่อโครงการคือชื่อที่แสดงของผู้เข้าร่วมโปรเจ็กต์นี้ เป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้และคุณอัปเดตได้ทุกเมื่อ
  • รหัสโปรเจ็กต์ต้องไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและจะเปลี่ยนแปลงไม่ได้ (เปลี่ยนแปลงไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ปกติแล้วคุณไม่สนว่าอะไรเป็นอะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (ซึ่งปกติระบุไว้ว่าเป็น PROJECT_ID) ดังนั้นหากไม่ชอบ ให้สร้างรหัสแบบสุ่มขึ้นมาอีกรหัสหนึ่ง หรือคุณจะลองใช้รหัสโปรเจ็กต์ของคุณเองแล้วดูว่ารหัสโปรเจ็กต์พร้อมใช้งานหรือไม่ แล้วก็ "แช่แข็ง" หลังจากสร้างโปรเจ็กต์แล้ว
  • มีค่าที่ 3 คือหมายเลขโปรเจ็กต์ที่ API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 ค่าได้ในเอกสารประกอบ
  1. ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของระบบคลาวด์ การใช้งาน Codelab นี้น่าจะไม่มีค่าใช้จ่ายใดๆ หากมี หากต้องการปิดทรัพยากรเพื่อไม่ให้มีการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ ให้ทำตาม "การล้าง" ดูได้ที่ตอนท้ายของ Codelab ผู้ใช้ใหม่ของ Google Cloud จะมีสิทธิ์เข้าร่วมโปรแกรมทดลองใช้ฟรี$300 USD

3. เปิดใช้งาน Translation API

การเปิดใช้ Cloud API

ในส่วนนี้ คุณจะได้ดูวิธีเปิดใช้ Google APIs โดยทั่วไป โดยคุณจะเปิดใช้ Cloud Translation API, Cloud Run และ Cloud Artifact Registry ในแอปตัวอย่างของเรา

บทนำ

ไม่ว่าจะคุณต้องการใช้ Google API ใดในแอปพลิเคชันของคุณ คุณจะต้องเปิดใช้ API เหล่านั้น ตัวอย่างต่อไปนี้แสดงวิธีเปิดใช้ Cloud Vision API 2 วิธี หลังจากดูวิธีเปิดใช้ Cloud API 1 รายการแล้ว คุณจะเปิดใช้ API อื่นๆ ได้เนื่องจากกระบวนการคล้ายกัน

ตัวเลือกที่ 1: จาก Cloud Shell หรืออินเทอร์เฟซบรรทัดคำสั่ง

แม้ว่าการเปิดใช้ API จาก Cloud Console จะทำได้มากกว่า แต่นักพัฒนาซอฟต์แวร์บางรายชอบทำทุกอย่างจากบรรทัดคำสั่ง คุณต้องค้นหา "ชื่อบริการ" ของ 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 แล้วเลือกไลบรารี

fb0f1d315f122d4a.png

หากต้องการเปิดใช้ Cloud Vision API ให้เริ่มป้อน "vision" ในแถบค้นหา สิ่งที่ตรงกับสิ่งที่คุณเคยป้อนไว้จนถึงตอนนี้จะปรากฏขึ้น

2275786a24f8f204.png

เลือก API ที่ต้องการเปิดใช้แล้วคลิกเปิดใช้

2556f923b628e31.png

ค่าใช้จ่าย

คุณสามารถใช้ Google APIs จำนวนมากได้โดยไม่เสียค่าธรรมเนียม แต่การใช้ผลิตภัณฑ์ Google Cloud และ API ไม่ใช้งานได้ฟรี เมื่อเปิดใช้ Cloud API ระบบอาจขอบัญชีสำหรับการเรียกเก็บเงินที่ใช้งานอยู่ อย่างไรก็ตาม โปรดทราบว่าผลิตภัณฑ์ Google Cloud บางอย่างจะแสดงตัวเลือก "ฟรีไม่จำกัดเวลา" เทียร์ (รายวัน/รายเดือน) ที่คุณจะต้องเกินเพื่อเรียกเก็บค่าการเรียกเก็บเงิน มิฉะนั้น จะไม่มีการเรียกเก็บเงินจากบัตรเครดิตของคุณ (หรือเครื่องมือการเรียกเก็บเงินที่ระบุ)

ผู้ใช้ควรอ้างอิงข้อมูลราคาสำหรับ API ใดๆ ก่อนเปิดใช้งาน โดยเฉพาะอย่างยิ่งแจ้งว่ามีรุ่นฟรีหรือไม่และถ้ามี คืออะไร หากเปิดใช้ Cloud Vision API ให้ตรวจสอบหน้าข้อมูลราคา Cloud Vision มีโควต้าฟรี และคุณจะไม่เสียค่าใช้จ่ายใดๆ ตราบใดที่คุณยังใช้งานไม่เกินขีดจำกัดโดยรวม (ในแต่ละเดือน)

ราคาและระดับการใช้งานฟรีจะแตกต่างกันไปตาม Google APIs แต่ละรายการ ตัวอย่าง

  • Google Cloud/GCP — แต่ละผลิตภัณฑ์จะมีการเรียกเก็บเงินแตกต่างกัน และโดยทั่วไปจะจ่ายเงินตามรอบ vCPU, ผู้บริโภคพื้นที่เก็บข้อมูล, การใช้หน่วยความจำ หรือแบบจ่ายต่อการใช้งาน ดูข้อมูลรุ่นฟรีด้านบน
  • Google Maps — มีชุด API และมอบเครดิตฟรีรายเดือนมูลค่า 200 USD โดยรวมให้แก่ผู้ใช้
  • Google Workspace (เดิมคือ G Suite) API — ให้การใช้งานฟรี (สูงสุดที่จำกัด) ซึ่งครอบคลุมค่าบริการรายเดือนของ Workspace ดังนั้นจึงไม่มีการเรียกเก็บเงินโดยตรงสำหรับการใช้ Gmail, Google ไดรฟ์, ปฏิทิน, เอกสาร, ชีต และสไลด์ API

ผลิตภัณฑ์ที่แตกต่างกันของ Google จะมีการเรียกเก็บเงินไม่เหมือนกัน ดังนั้น โปรดตรวจสอบข้อมูลดังกล่าวในเอกสารประกอบของ API ด้วย

สรุป

เมื่อคุณทราบวิธีเปิดใช้ Google API โดยทั่วไปแล้ว ให้ไปที่ตัวจัดการ API แล้วเปิดใช้ Cloud Translation API, Cloud Run และ Cloud Artifact Registry (หากยังไม่ได้เปิดใช้) คุณเปิดใช้ตัวเลือกแรกเนื่องจากแอปพลิเคชันของเราใช้ คุณเปิดใช้ตัวเลือกหลังเนื่องจากเป็นที่เก็บอิมเมจคอนเทนเนอร์ก่อนที่จะทำให้ใช้งานได้เพื่อเริ่มบริการ Cloud Run ซึ่งเป็นเหตุผลที่คุณต้องเปิดใช้ that หากต้องการเปิดใช้ทั้งหมดด้วยเครื่องมือ gcloud ให้ใช้คำสั่งต่อไปนี้แทนจากเทอร์มินัล

gcloud services enable artifactregistry.googleapis.com run.googleapis.com translate.googleapis.com

ขณะที่โควต้ารายเดือนไม่ได้แสดงใน"ฟรีไม่จำกัดเวลา" โดยรวม หน้าสรุประดับ หน้าราคาของ Translation API จะระบุว่าผู้ใช้ทั้งหมดได้รับอักขระที่แปลแล้วตามจำนวนคงที่ต่อเดือน คุณไม่ควรเสียค่าใช้จ่ายใดๆ จาก API หากคุณใช้งานต่ำกว่าเกณฑ์ดังกล่าว หากมีการเรียกเก็บเงินอื่นๆ ที่เกี่ยวข้องกับ Google Cloud เราจะอธิบายการเรียกเก็บเงินดังกล่าวในตอนท้ายในส่วน "ล้างข้อมูล"

4. รับโค้ดของแอปตัวอย่าง

โคลนโค้ดในที่เก็บในเครื่องหรือใน Cloud Shell (โดยใช้คำสั่ง git clone) หรือดาวน์โหลดไฟล์ ZIP จากปุ่มโค้ดสีเขียวดังที่แสดงในภาพหน้าจอต่อไปนี้

5cd6110c4414cf65.png

เมื่อคุณมีข้อมูลครบถ้วนแล้ว ให้สร้างสำเนาแบบเต็มของโฟลเดอร์เพื่อทำบทแนะนำเฉพาะนี้ เพราะอาจต้องลบหรือเปลี่ยนไฟล์ หากต้องการติดตั้งใช้งานแบบอื่น ให้เริ่มต้นใหม่โดยการคัดลอกต้นฉบับเพื่อจะได้ไม่ต้องโคลนหรือดาวน์โหลดอีกครั้ง

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)))
  1. การนําเข้าจะนําฟังก์ชัน Flask, โมดูล google.auth และไลบรารีไคลเอ็นต์ Cloud Translation API เข้ามาไว้
  2. ตัวแปรร่วมจะแสดงถึงแอป Flask, รหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์, ไคลเอ็นต์ Translation API และ "เส้นทางตำแหน่ง" ระดับบนสุด สำหรับการเรียก Translation API รวมถึงภาษาต้นทางและภาษาเป้าหมาย ในกรณีนี้จะเป็นภาษาอังกฤษ (en) และสเปน (es) แต่คุณเปลี่ยนค่าเหล่านี้เป็นรหัสภาษาอื่นที่Cloud Translation API รองรับได้
  3. บล็อก 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 เพื่อช่วยลดภาระงาน มาดูรายละเอียดกัน

  1. ตรวจสอบว่าคำขอมาจาก Cloud Functions โดยใช้ตัวแปร local_request หรือไม่ Cloud Functions จะส่งออบเจ็กต์คำขอ Flask ของตนเอง ขณะที่รายการอื่นๆ ทั้งหมด (ทำงานภายในหรือทำให้ใช้งานได้กับ App Engine หรือ Cloud Run) จะได้รับออบเจ็กต์คำขอจาก Flask โดยตรง
  2. รีเซ็ตตัวแปรพื้นฐานสำหรับแบบฟอร์ม ซึ่งมีไว้สำหรับคำขอ GET เป็นหลักเนื่องจากคำขอ POST จะมีข้อมูลที่จะแทนที่คำขอเหล่านี้
  3. หากเป็น POST ให้ดึงข้อความที่ต้องการแปล แล้วสร้างโครงสร้าง JSON ที่แสดงถึงข้อกำหนดข้อมูลเมตาของ API จากนั้นเรียกใช้ API โดยกลับไปใช้ API เวอร์ชันก่อนหน้าหากผู้ใช้ใช้ไลบรารีรุ่นเก่า
  4. ไม่ว่าจะจัดรูปแบบผลลัพธ์จริง (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 Run แล้ว โดยเรียกใช้คำสั่งนี้

gcloud run deploy translate --source . --allow-unauthenticated --platform managed

ผลลัพธ์ควรมีลักษณะดังต่อไปนี้ และให้พรอมต์บางอย่างสำหรับขั้นตอนถัดไป:

$ 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

เมื่อแอปของคุณพร้อมให้บริการทั่วโลกแล้ว คุณควรเข้าถึงแอปได้ที่ URL ที่มีรหัสโปรเจ็กต์ตามที่แสดงในเอาต์พุตการทำให้ใช้งานได้

169f6edf5f7d2068.png

แปลอะไรก็ได้เพื่อให้ใช้งานได้

31554e71cb80f1b4.png

7. บทสรุป

ยินดีด้วย คุณได้เรียนรู้วิธีเปิดใช้ Cloud Translation API, รับข้อมูลรับรองที่จำเป็น และทำให้เว็บแอปแบบง่ายๆ ใช้งานได้ใน Python 2 Cloud Run แล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งใช้งานนี้ได้จากตารางนี้ในที่เก็บ

ล้างข้อมูล

Cloud Translation API ให้คุณดำเนินการอักขระที่แปลแล้วตามจำนวนที่กำหนดไว้ต่อเดือนฟรี App Engine ยังมีโควต้าฟรี เช่นเดียวกับ Cloud Functions และ Cloud Run คุณจะต้องเสียค่าใช้จ่ายหากทั้ง 2 อย่างข้างต้น หากคุณวางแผนที่จะไปยัง Codelab ครั้งถัดไป ก็ไม่จำเป็นต้องปิดแอป

อย่างไรก็ตาม หากคุณยังไม่พร้อมที่จะดูบทแนะนำถัดไปหรือกังวลว่าอินเทอร์เน็ตจะพบแอปที่คุณเพิ่งทำให้ใช้งานได้ ให้ปิดใช้แอป App Engine ลบ Cloud Function หรือปิดใช้บริการ Cloud Run เพื่อหลีกเลี่ยงค่าใช้จ่าย เมื่อพร้อมที่จะไปยัง Codelab ถัดไปแล้ว คุณก็เปิดใช้อีกครั้งได้ ในทางกลับกัน หากคุณจะไม่ดำเนินการกับแอปพลิเคชันนี้หรือ Codelab อื่นๆ ต่อและต้องการลบทุกอย่างออกทั้งหมด คุณปิดโปรเจ็กต์ได้

นอกจากนี้ การติดตั้งใช้งานในแพลตฟอร์มการประมวลผลแบบ Serverless ของ Google Cloud ยังทำให้เกิดค่าใช้จ่ายในการสร้างและพื้นที่เก็บข้อมูลเล็กน้อย Cloud Build มีโควต้าฟรีของตนเอง เช่นเดียวกับ Cloud Storage Cloud Build จะสร้างอิมเมจของแอปพลิเคชันซึ่งจะมีการจัดเก็บไว้ใน Cloud Container Registry หรือ Artifact Registry เพื่อเพิ่มความโปร่งใส พื้นที่เก็บข้อมูลอิมเมจจะใช้โควต้าดังกล่าวบางส่วน เช่นเดียวกับเครือข่ายขาออกเมื่อโอนอิมเมจดังกล่าวไปยังบริการ อย่างไรก็ตาม คุณอาจอาศัยอยู่ในภูมิภาคที่ไม่มีรุ่นฟรีดังกล่าว โปรดระวังการใช้พื้นที่เก็บข้อมูลของคุณเพื่อลดค่าใช้จ่ายที่อาจเกิดขึ้น

8. แหล่งข้อมูลเพิ่มเติม

คุณสามารถดูเนื้อหาสำหรับอ่านเพิ่มเติมรวมถึงแบบฝึกหัดที่แนะนำเพื่อเพิ่มพูนความรู้ที่ได้รับจากบทแนะนำนี้ได้ในส่วนต่อไปนี้

การศึกษาเพิ่มเติม

ตอนนี้คุณได้ฝึกใช้งาน API การแปลแล้ว มาทำแบบฝึกหัดเพิ่มเติมเพื่อพัฒนาทักษะของคุณต่อไป หากต้องการดำเนินการต่อตามเส้นทางการเรียนรู้ โปรดแก้ไขแอปตัวอย่างของเราโดยทำตามขั้นตอนต่อไปนี้

  1. ทำ Codelab รุ่นอื่นๆ ทั้งหมดให้เสร็จสิ้นเพื่อทำงานภายในหรือทำให้ใช้งานได้กับแพลตฟอร์มประมวลผลแบบ Serverless ของ Google Cloud (โปรดดู repo README)
  2. ศึกษาบทแนะนำนี้จนจบโดยใช้ภาษาโปรแกรมอื่น
  3. เปลี่ยนแอปพลิเคชันนี้ให้รองรับภาษาต้นทางหรือภาษาเป้าหมายอื่น
  4. อัปเกรดแอปพลิเคชันนี้ให้แปลข้อความเป็นภาษาต่างๆ ได้มากกว่า 1 ภาษา เปลี่ยนไฟล์เทมเพลตให้มีเมนูแบบเลื่อนลงของภาษาเป้าหมายที่สนับสนุน

ดูข้อมูลเพิ่มเติม

Google App Engine

Google Cloud Functions

Google Cloud Run

Google Cloud Buildpack, Container Registry, Artifact Registry

Google Cloud Translation และ Google ML Kit

ผลิตภัณฑ์/หน้า Google Cloud อื่นๆ

Python และ Flask

ใบอนุญาต

บทแนะนำนี้ได้รับอนุญาตภายใต้ใบอนุญาตทั่วไปสำหรับครีเอทีฟคอมมอนส์ 2.0 ส่วนซอร์สโค้ดในที่เก็บได้รับอนุญาตภายใต้ Apache 2