1. ภาพรวม
ในชั้นเรียนนี้ คุณจะได้เรียนรู้วิธีใช้เหตุการณ์ที่เก็บข้อมูล Cloud Storage และ Eventarc เพื่อทริกเกอร์การประมวลผลเหตุการณ์ คุณจะใช้ฟังก์ชัน Cloud Run เพื่อวิเคราะห์ข้อมูลและประมวลผลรูปภาพ ฟังก์ชันนี้จะใช้ Vision API ของ Google และบันทึกรูปภาพที่ได้กลับไปยังที่เก็บข้อมูล Cloud Storage
สิ่งที่คุณจะได้เรียนรู้
วิธีสร้างไปป์ไลน์การประมวลผลรูปภาพ
- กำหนดค่าที่เก็บข้อมูลของพื้นที่เก็บข้อมูล
- สร้างฟังก์ชัน Cloud Run เพื่ออ่านและเขียนออบเจ็กต์ใน Cloud Storage
- ติดตั้งใช้งานทริกเกอร์ Eventarc
- ผสานรวม Vision API เพื่อตรวจหารูปภาพอาหาร
- ทดสอบและตรวจสอบโซลูชันจากต้นทางถึงปลายทาง
ข้อกำหนดเบื้องต้น
- กิจกรรมนี้ถือว่าคุณคุ้นเคยกับ Cloud Console และสภาพแวดล้อมเชลล์
- ประสบการณ์การใช้งาน Cloud Storage, ฟังก์ชัน Cloud Run หรือ Vision API ก่อนหน้านี้จะมีประโยชน์ แต่ไม่จำเป็นต้องมี
2. การตั้งค่าและข้อกําหนด
การตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์
- ลงชื่อเข้าใช้ Google Cloud Console และสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี
- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณจะอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะซ้ำกันไม่ได้ในโปรเจ็กต์ Google Cloud ทั้งหมดและจะเปลี่ยนแปลงไม่ได้ (เปลี่ยนแปลงไม่ได้หลังจากตั้งค่าแล้ว) คอนโซล Cloud จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นจะเป็นอะไร ในโค้ดแล็บส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (ปกติจะระบุเป็น
PROJECT_ID
) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสอื่นแบบสุ่มได้ หรือจะลองใช้อุปกรณ์ของคุณเองเพื่อดูว่าอุปกรณ์พร้อมใช้งานหรือไม่ก็ได้ คุณจะเปลี่ยนแปลงหลังจากขั้นตอนนี้ไม่ได้ และชื่อนี้จะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ามีค่าที่ 3 ซึ่งเป็นหมายเลขโปรเจ็กต์ที่ API บางรายการใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 รายการนี้ได้ในเอกสารประกอบ
- ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตามโค้ดแล็บนี้จะไม่เสียค่าใช้จ่ายมากนัก หากต้องการปิดใช้ทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินหลังจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างไว้หรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
เปิดใช้งาน Cloud Shell
เปิดใช้งาน Cloud Shell โดยคลิกไอคอนทางด้านขวาของแถบค้นหา
การตั้งค่าสภาพแวดล้อม
- สร้างตัวแปรสภาพแวดล้อมที่เกี่ยวข้องกับโปรเจ็กต์และทรัพยากรโดยเรียกใช้คำสั่งด้านล่างในเทอร์มินัล Cloud Shell
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NAME=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export REGION=us-east1
export UPLOAD_BUCKET_NAME=menu-item-uploads-$PROJECT_ID
export UPLOAD_BUCKET=gs://menu-item-uploads-$PROJECT_ID
export BUCKET_THUMBNAILS=gs://menu-item-thumbnails-$PROJECT_ID
export MENU_SERVICE_NAME=menu-service
export USER_EMAIL=$(gcloud config list account --format "value(core.account)")
- เปิดใช้ API ที่จําเป็นสําหรับห้องทดลอง
gcloud services enable \
vision.googleapis.com \
cloudfunctions.googleapis.com \
pubsub.googleapis.com \
cloudbuild.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com \
artifactregistry.googleapis.com \
run.googleapis.com \
--quiet
- โคลนที่เก็บ
git clone https://github.com/GoogleCloudPlatform/cymbal-eats.git && cd cymbal-eats/cloud-functions
3. กำหนดค่าที่เก็บข้อมูล Cloud Storage
สร้างที่เก็บข้อมูล
สร้างที่เก็บข้อมูล Cloud Storage สำหรับการอัปโหลดและภาพขนาดย่อสำหรับไปป์ไลน์การประมวลผลรูปภาพ
ใช้คำสั่ง gsutil mb และชื่อที่ไม่ซ้ำกันเพื่อสร้างที่เก็บข้อมูล 2 รายการ
- อัปโหลดที่เก็บข้อมูลที่จะอัปโหลดรูปภาพก่อน
- ที่เก็บข้อมูลภาพขนาดย่อสำหรับจัดเก็บรูปภาพขนาดย่อที่สร้างขึ้น
สร้างที่เก็บข้อมูลเพื่ออัปโหลดรูปภาพใหม่
gsutil mb -p $PROJECT_ID -l $REGION $UPLOAD_BUCKET
ตัวอย่างเอาต์พุต
Creating gs://menu-item-uploads-cymbal-eats-8399-3119/...
สร้างที่เก็บข้อมูลเพื่อจัดเก็บภาพปกที่สร้างขึ้น
gsutil mb -p $PROJECT_ID -l $REGION $BUCKET_THUMBNAILS
ตัวอย่างเอาต์พุต
Creating gs://menu-item-thumbnails-cymbal-eats-8399-3119/...
อัปเดตสิทธิ์ที่เก็บข้อมูล
อัปเดตสิทธิ์ของที่เก็บข้อมูลเพื่ออนุญาตให้ผู้ใช้มีสิทธิ์อ่าน
ใช้คำสั่ง gsutil iam ch เพื่อให้สิทธิ์อ่านและเขียนออบเจ็กต์ในที่เก็บข้อมูล
gsutil iam ch allUsers:objectViewer $UPLOAD_BUCKET
gsutil iam ch allUsers:objectViewer $BUCKET_THUMBNAILS
ตัวอย่างเอาต์พุต
Updated IAM policy for project [cymbal-eats-8399-3119]. [...]
4. กำหนดค่าบัญชีบริการ
สร้างบัญชีบริการที่กำหนดเองสำหรับ Cloud Function เพื่อประมวลผลภาพขนาดย่อ
export CF_SERVICE_ACCOUNT=thumbnail-service-sa
gcloud iam service-accounts create ${CF_SERVICE_ACCOUNT}
ให้บทบาท artifactregistry.reader
เพื่ออนุญาตให้ดำเนินการอ่านจากที่เก็บอาร์ติแฟกต์
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role "roles/artifactregistry.reader"
ให้บทบาท storage.objectCreator
เพื่ออนุญาตให้จัดเก็บรูปภาพที่สร้างขึ้นในที่เก็บข้อมูลภาพขนาดย่อ
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role "roles/storage.objectCreator"
ให้บทบาท run.invoker
เพื่ออนุญาตการเรียกใช้บริการ Cloud Run
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role "roles/run.invoker"
ให้บทบาท eventarc.eventReceiver
เพื่ออนุญาตให้รับเหตุการณ์จากผู้ให้บริการ
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role "roles/eventarc.eventReceiver"
ให้บทบาท pubsub.publisher
แก่บัญชีบริการ Cloud Storage ซึ่งจะช่วยให้บัญชีบริการเผยแพร่เหตุการณ์ได้เมื่อมีการอัปโหลดรูปภาพไปยังที่เก็บข้อมูล
GCS_SERVICE_ACCOUNT=$(gsutil kms serviceaccount -p $PROJECT_NUMBER)
gcloud projects add-iam-policy-binding $PROJECT_NUMBER \
--member "serviceAccount:$GCS_SERVICE_ACCOUNT" \
--role "roles/pubsub.publisher"
5. ภาพรวมของฟังก์ชันการประมวลผลรูปภาพ
สร้างฟังก์ชันเพื่อดาวน์โหลดรูปภาพจาก Cloud Storage, ปรับขนาดรูปภาพ และอัปโหลดรูปภาพกลับไปยัง Cloud Storage ฟังก์ชันนี้จะเรียก Vision API เพื่อกำหนดป้ายกำกับคำอธิบายให้กับรูปภาพ ฟังก์ชันจะตรวจสอบป้ายกํากับคําอธิบาย หากป้ายกำกับระบุว่ารูปภาพเป็น "อาหาร" ระบบจะส่งเหตุการณ์ไปยังบริการเมนูเพื่ออัปเดตรูปภาพและภาพขนาดย่อของรายการเมนู
การทริกเกอร์ฟังก์ชัน
ฟังก์ชัน Cloud Storage อิงตามการแจ้งเตือน Pub/Sub จาก Cloud Storage และรองรับประเภทเหตุการณ์ที่คล้ายกัน ดังนี้
ในแล็บนี้ คุณจะทําให้ฟังก์ชันใช้งานได้และทริกเกอร์ฟังก์ชันเมื่อออบเจ็กต์ได้รับการแก้ไขขั้นสุดท้ายใน Cloud Storage
มีการทำให้วัตถุสิ้นสุด
เหตุการณ์ "finalization" ของออบเจ็กต์จะทริกเกอร์เมื่อ "การเขียน" ออบเจ็กต์ Cloud Storage เสร็จสมบูรณ์ กล่าวโดยละเอียดคือ การสร้างออบเจ็กต์ใหม่หรือการเขียนทับออบเจ็กต์ที่มีอยู่จะทริกเกอร์เหตุการณ์นี้ ทริกเกอร์นี้จะละเว้นการดำเนินการอัปเดตข้อมูลเมตาและการเก็บถาวร
6. ผสานรวม Cloud Storage
Cloud Storage เป็นบริการสำหรับจัดเก็บออบเจ็กต์ใน Google Cloud ออบเจ็กต์คือข้อมูลแบบคงที่ซึ่งประกอบด้วยไฟล์ในรูปแบบใดก็ได้ คุณจัดเก็บออบเจ็กต์ในคอนเทนเนอร์ที่เรียกว่าที่เก็บข้อมูล ที่เก็บข้อมูลทั้งหมดจะเชื่อมโยงกับโปรเจ็กต์ และคุณสามารถจัดกลุ่มโปรเจ็กต์ภายใต้องค์กรได้ ไลบรารีของไคลเอ็นต์และ API ช่วยให้คุณผสานรวมกับ Cloud Storage ได้
ในชั้นเรียนนี้ คุณจะใช้ไลบรารีไคลเอ็นต์เพื่ออ่านและเขียนออบเจ็กต์ไปยัง Cloud Storage
การติดตั้งไลบรารีของไคลเอ็นต์
ไลบรารีของไคลเอ็นต์ระบบคลาวด์พร้อมให้บริการเป็นภาษาโปรแกรมยอดนิยมหลายภาษา หากต้องการเริ่มใช้ไลบรารี คุณต้องติดตั้งไลบรารีของไคลเอ็นต์
การใช้ไลบรารีของไคลเอ็นต์
รายละเอียดการติดตั้งใช้งานส่วนใหญ่จะขึ้นอยู่กับภาษาโปรแกรม หากต้องการใช้ไลบรารีไคลเอ็นต์ในแอปพลิเคชัน ขั้นตอนแรกคือการนําเข้าทรัพยากร Dependency ของ Cloud Storage เช่น ในโปรเจ็กต์ Node.js ระบบจะเพิ่มการนําเข้าในไฟล์ package.json ข้อมูลโค้ดด้านล่างแสดงประกาศของไฟล์ package.json ของห้องทดลองนี้
package.json
{ "name": "thumbnail-service", "version": "0.1.0", "dependencies": { "@google-cloud/functions-framework": "^3.0.0", "@google-cloud/storage": "^5.18.2", "@google-cloud/vision": "^2.4.2", ... } }
ลงทะเบียนการเรียกกลับ CloudEvent
ลงทะเบียนการเรียกกลับ CloudEvent ด้วย Functions Framework ที่ Cloud Storage จะทริกเกอร์เมื่อมีการอัปโหลดรูปภาพใหม่ไปยังที่เก็บข้อมูล
index.js
functions.cloudEvent('process-thumbnails', async (cloudEvent) => { console.log(`Event ID: ${cloudEvent.id}`); console.log(`Event Type: ${cloudEvent.type}`); ...
การสร้างออบเจ็กต์ข้อมูลอ้างอิงพื้นที่เก็บข้อมูล
หลังจากนำเข้าไลบรารีไคลเอ็นต์แล้ว คุณจะต้องสร้างไคลเอ็นต์พื้นที่เก็บข้อมูลใหม่และที่เก็บข้อมูลที่จะให้แอปพลิเคชันโต้ตอบด้วย
index.js
const storage = new Storage(); const bucket = storage.bucket(file.bucket); const thumbBucket = storage.bucket(process.env.BUCKET_THUMBNAILS);
ดาวน์โหลดออบเจ็กต์ Cloud Storage
index.js
await bucket.file(file.name).download({ destination: originalFile });
อัปโหลดออบเจ็กต์ไปยัง Cloud Storage
คุณส่งคำขออัปโหลดไปยัง Cloud Storage ได้ 3 วิธี ได้แก่ การอัปโหลดแบบคำขอเดียว การอัปโหลดแบบแบ่งหลายไฟล์ที่กลับมาดำเนินการต่อได้ หรือ XML API สําหรับการอัปโหลดขนาดใหญ่หรือการอัปโหลดสตรีมมิง ให้ใช้การอัปโหลดที่อัปโหลดต่อได้ เมื่อใช้ XML API ระบบจะอัปโหลดไฟล์เป็นชิ้นส่วนและประกอบเป็นออบเจ็กต์เดียว สำหรับออบเจ็กต์ขนาดเล็ก ให้ใช้การอัปโหลดแบบคำขอเดียว
โค้ดด้านล่างจะอัปโหลดรูปภาพไปยังพื้นที่เก็บข้อมูลระบบคลาวด์โดยใช้การอัปโหลดแบบคำขอเดียว
index.js
const thumbnailImage = await thumbBucket.upload(thumbFile);
7. ผสานรวม Vision API
Cloud Vision ช่วยให้นักพัฒนาแอปผสานรวมฟีเจอร์การตรวจจับการมองเห็นไว้ภายในแอปพลิเคชันได้อย่างง่ายดาย ซึ่งรวมถึงการติดป้ายกำกับรูปภาพ การตรวจจับใบหน้าและจุดสังเกต การรู้จำอักขระด้วยภาพ (OCR) และการติดแท็กเนื้อหาที่อาจไม่เหมาะสม
การติดตั้งไลบรารีของไคลเอ็นต์
ไลบรารีของไคลเอ็นต์ระบบคลาวด์พร้อมให้บริการเป็นภาษาโปรแกรมยอดนิยมหลายภาษา หากต้องการเริ่มใช้ไลบรารี คุณต้องติดตั้งไลบรารีของไคลเอ็นต์
สร้างไคลเอ็นต์เครื่องมือกำกับเนื้อหารูปภาพ
หากต้องการเข้าถึง Google APIs โดยใช้ SDK อย่างเป็นทางการของไคลเอ็นต์ คุณจะต้องสร้างออบเจ็กต์บริการตามเอกสาร Discovery ของ API ซึ่งจะอธิบาย API ให้กับ SDK คุณจะต้องดึงข้อมูลจากบริการการค้นพบของ Vision API โดยใช้ข้อมูลเข้าสู่ระบบ
index.js
const client = new vision.ImageAnnotatorClient();
สร้างคําขอ Vision API
Vision API สามารถตรวจหาองค์ประกอบในไฟล์รูปภาพได้โดยส่งเนื้อหาของไฟล์รูปภาพเป็นสตริงที่เข้ารหัส Base64 ในเนื้อหาของคำขอ
วิธีสร้างคำขอโดยใช้ทรัพยากรรูปภาพเพื่อกำกับเนื้อหารูปภาพ คำขอไปยัง API นี้จะอยู่ในรูปแบบออบเจ็กต์ที่มีรายการคำขอ แต่ละรายการในรายการนี้มีข้อมูล 2 รายการ ได้แก่
- ข้อมูลรูปภาพที่เข้ารหัส Base64
- รายการองค์ประกอบที่คุณต้องการกำกับเนื้อหาเกี่ยวกับรูปภาพนั้น
index.js
const client = new vision.ImageAnnotatorClient(); const visionRequest = { image: { source: { imageUri: `gs://${file.bucket}/${file.name}` } }, features: [ { type: 'LABEL_DETECTION' }, ] }; const visionPromise = client.annotateImage(visionRequest);
8. ทำให้ฟังก์ชัน Cloud Run ใช้งานได้
บริการปรับขนาดรูปภาพนี้เป็นส่วนหนึ่งของระบบ Cymbal Eats ที่ใหญ่ขึ้น ในส่วนนี้ คุณจะใช้เฉพาะคอมโพเนนต์ที่เกี่ยวข้องกับฟีเจอร์การประมวลผลรูปภาพ การติดตั้งแบบสมบูรณ์จะรวม UI สำหรับการอัปโหลดรูปภาพและคําขอดาวน์สตรีมเพื่อจัดเก็บข้อมูลเมตาที่ได้ ความสามารถดังกล่าวไม่ได้ติดตั้งเป็นส่วนหนึ่งของห้องทดลองนี้
ระบบจะสร้างคอมโพเนนต์ต่อไปนี้ระหว่างการติดตั้งใช้งานฟังก์ชัน
- ฟังก์ชัน Cloud Run
- ทริกเกอร์ Eventarc
- หัวข้อและการสมัครใช้บริการ Pub/Sub
ในเทอร์มินัล Cloud Shell ให้เรียกใช้คําสั่งด้านล่างเพื่อทําให้ฟังก์ชัน Cloud Run พร้อมใช้งานโดยที่เก็บข้อมูลทริกเกอร์ใน menu-item-uploads-$PROJECT_ID
หากต้องการทำให้ฟังก์ชัน Cloud Run ใช้งานได้ใน Cloud Run โดยตรง ก่อนอื่นให้ทำให้ฟังก์ชันใช้งานได้ จากนั้นสร้างทริกเกอร์สำหรับฟังก์ชันนั้น
ทำให้ฟังก์ชัน Cloud Run ใช้งานได้
gcloud beta run deploy process-thumbnails \
--source=thumbnail \
--function process-thumbnails \
--region $REGION \
--base-image google-22-full/nodejs20 \
--no-allow-unauthenticated \
--project=$PROJECT_ID \
--service-account="${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--set-env-vars=BUCKET_THUMBNAILS=$BUCKET_THUMBNAILS,MENU_SERVICE_URL=$MENU_SERVICE_URL \
--max-instances=1 \
--quiet
ตัวอย่างเอาต์พุต
Done. Service [process-thumbnails] revision [process-thumbnails-00001-abc] has been deployed and is serving 100 percent of traffic. Service URL: https://process-thumbnails-000000000.us-east1.run.app
สร้างทริกเกอร์โดยทำดังนี้
gcloud eventarc triggers create process-thumbnails-trigger \
--location=$REGION \
--destination-run-service=process-thumbnails \
--destination-run-region=$REGION \
--event-filters="type=google.cloud.storage.object.v1.finalized" \
--event-filters="bucket=$UPLOAD_BUCKET_NAME" \
--service-account="${CF_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com"
ตัวอย่างเอาต์พุต
Creating trigger [process-thumbnails-trigger] in project [qwiklabs-gcp-02-53f8532696e1], location [us-east1]...done. WARNING: It may take up to 2 minutes for the new trigger to become active.
หากการติดตั้งใช้งานทริกเกอร์ไม่สำเร็จเนื่องจากปัญหาสิทธิ์ โปรดรอให้การเปลี่ยนแปลง IAM จากขั้นตอนก่อนหน้ามีผล ซึ่งโดยปกติจะใช้เวลา 1-2 นาที จากนั้นให้ลองทำให้เสร็จอีกครั้ง
ตัวอย่างเอาต์พุตข้อผิดพลาด
...If you recently started to use Eventarc, it may take a few minutes before all necessary permissions are propagated to the Service Agent... [...]
ในคอนโซล Cloud ให้ตรวจสอบบริการ Cloud Run ที่สร้างขึ้นสําหรับฟังก์ชัน
ในคอนโซล Cloud ให้ตรวจสอบทริกเกอร์ Eventarc ที่สร้างขึ้นสําหรับฟังก์ชัน
ในคอนโซลระบบคลาวด์ ให้ตรวจสอบหัวข้อและการสมัครใช้บริการ Pub/Sub ที่สร้างขึ้นสำหรับทริกเกอร์ Eventarc
9. ทดสอบและตรวจสอบโซลูชันจากต้นทางถึงปลายทาง
อัปโหลดรูปภาพใหม่ไปยัง Cloud Storage และตรวจสอบความคืบหน้าของไปป์ไลน์ขณะที่ระบบวิเคราะห์รูปภาพ คุณจะทดสอบโซลูชันจากต้นทางถึงปลายทางโดยการตรวจสอบบันทึกของ Cloud Functions
กำลังอัปโหลดรูปภาพ
- บันทึกรูปภาพนี้ลงในเครื่อง
- เปลี่ยนชื่อไฟล์ 1.jpg
- เปิดคอนโซล Cloud Storage
- คลิกที่ที่เก็บข้อมูล menu-item-uploads-...
- คลิกอัปโหลดไฟล์
- อัปโหลด 1.jpg ไปยังที่เก็บข้อมูล
- ใน Cloud Console ให้ไปที่ Cloud Run
- คลิก process-thumbails
- คลิกแท็บบันทึก
- ไปที่ที่เก็บข้อมูล menu-item-thumbnails-$PROJECT_ID Cloud Storage
- ตรวจสอบว่าระบบสร้างรูปภาพขนาดย่อในที่เก็บข้อมูลภาพปกแล้ว
การอัปโหลดรูปภาพที่ไม่เกี่ยวข้องกับอาหาร
คุณจะอัปโหลดรูปภาพที่ไม่มีวัตถุที่จะจัดประเภทเป็นรายการ "อาหาร" เพื่อยืนยันว่าฟังก์ชันทำงานอย่างถูกต้อง
- บันทึกรูปภาพนี้ลงในเครื่อง
- เปลี่ยนชื่อไฟล์ 2.jpg
- เปิดคอนโซล Cloud Storage
- คลิกที่ที่เก็บข้อมูล menu-item-uploads-...
- คลิกอัปโหลดไฟล์
- อัปโหลด 2.jpg ไปยังที่เก็บข้อมูลของพื้นที่เก็บข้อมูล
- ใน Cloud Console ให้ไปที่ Cloud Run
- คลิก process-thumbails
- คลิกแท็บบันทึก
10. ยินดีด้วย
ยินดีด้วย คุณทำแล็บเสร็จแล้ว
ขั้นตอนต่อไปที่ทำได้
สำรวจ Codelab อื่นๆ ของ Cymbal Eats
- การทริกเกอร์เวิร์กโฟลว์ระบบคลาวด์ด้วย Eventarc
- การเชื่อมต่อกับ Private CloudSQL จาก Cloud Run
- การเชื่อมต่อกับฐานข้อมูลที่จัดการครบวงจรจาก Cloud Run
- แอปพลิเคชันแบบเซิร์ฟเวอร์เสมือนที่ปลอดภัยด้วย Identity-Aware Proxy (IAP)
- การทริกเกอร์งาน Cloud Run ด้วย Cloud Scheduler
- ทำให้ใช้งานได้กับ Cloud Run อย่างปลอดภัย
- การรักษาความปลอดภัยของการรับส่งข้อมูลขาเข้าใน Cloud Run
- การเชื่อมต่อกับ AlloyDB ส่วนตัวจาก GKE Autopilot
ล้างข้อมูล
โปรดลบโปรเจ็กต์ที่มีทรัพยากรดังกล่าวหรือเก็บโปรเจ็กต์ไว้และลบทรัพยากรแต่ละรายการเพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้
การลบโปรเจ็กต์
วิธีที่ง่ายที่สุดในการหยุดการเรียกเก็บเงินคือการลบโปรเจ็กต์ที่คุณสร้างสำหรับบทแนะนำ