1. บทนำ
ภาพรวม
ฟังก์ชัน Cloud Run เป็นวิธีใหม่ในการทำให้ภาระงานใช้งานได้โดยใช้กระบวนทัศน์เหตุการณ์ GCF และลายเซ็นของฟังก์ชันที่คุ้นเคย ฟังก์ชัน Cloud Run จะให้การควบคุมโดยตรงสำหรับบริการที่สำคัญที่สร้างใน Cloud Run แทนที่จะใช้กระบวนการบิลด์ตามความคิดเห็นของเราและการกำหนดค่าการทำให้ใช้งานได้
ฟังก์ชัน Cloud Run ช่วยให้เรามอบ UX แบบง่ายของการทำให้ซอร์ส Cloud Run ใช้งานได้ ซึ่งช่วยให้นักพัฒนาซอฟต์แวร์ควบคุมภาระงานของตนได้อย่างสมบูรณ์ด้วยการกำหนดค่า Cloud Run
Codelab นี้ใช้ตัวอย่าง Nodejs ในตัวอย่างด้านล่าง อย่างไรก็ตาม คุณจะใช้ตัวอย่างโค้ดของ Cloud Functions รุ่นที่ 2 ในภาษาที่ต้องการได้
- ตัวอย่างฟังก์ชัน Python
- ตัวอย่างฟังก์ชัน Nodejs
- ตัวอย่างฟังก์ชัน Go
- ตัวอย่างฟังก์ชัน Java
- ตัวอย่างฟังก์ชัน PHP
- ตัวอย่างฟังก์ชัน Ruby
- ตัวอย่างฟังก์ชัน.NET
สิ่งที่คุณจะได้เรียนรู้
- วิธีทำให้ฟังก์ชัน Cloud Run ที่ทริกเกอร์โดยคำขอ HTTP ใช้งานได้
2. ตั้งค่าตัวแปรสภาพแวดล้อมและเปิดใช้ API
อัปเกรด gcloud CLI
ก่อนอื่น คุณจะต้องติดตั้ง gcloud CLI เวอร์ชันล่าสุด คุณอัปเดต CLI ได้โดยเรียกใช้คำสั่งต่อไปนี้
gcloud components update
ตั้งค่าตัวแปรสภาพแวดล้อม
คุณกำหนดตัวแปรสภาพแวดล้อมที่จะใช้ตลอดทั้ง Codelab ได้
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
เปิดใช้ API
ก่อนที่คุณจะเริ่มใช้ Codelab นี้ได้ คุณจะต้องเปิดใช้ API หลายรายการ Codelab นี้ต้องใช้ API ต่อไปนี้ คุณเปิดใช้ API เหล่านั้นได้โดยเรียกใช้คำสั่งต่อไปนี้
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ artifactregistry.googleapis.com
3. สร้างฟังก์ชัน HTTP
ขั้นแรก ให้สร้างไดเรกทอรีสำหรับซอร์สโค้ดและ cd ลงในไดเรกทอรีนั้น
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
จากนั้นสร้างไฟล์ package.json
ที่มีเนื้อหาต่อไปนี้
{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
จากนั้นสร้างไฟล์ index.js
ที่มีเนื้อหาต่อไปนี้
const functions = require("@google-cloud/functions-framework"); functions.http("helloHttp", (req, res) => { res.send(`Hello ${req.query.name || req.body.name || "World"}!`); });
4. ทำให้ฟังก์ชันใช้งานได้
ตอนนี้คุณทำให้ฟังก์ชัน Cloud Run ใช้งานได้โดยการเรียกใช้คำสั่งต่อไปนี้
gcloud beta run deploy $SERVICE_NAME \ --source . \ --function helloHttp \ --region us-central1 \ --no-allow-unauthenticated
คำสั่งนี้ใช้ buildpacks เพื่อแปลงซอร์สโค้ดของฟังก์ชันเป็นอิมเมจคอนเทนเนอร์ที่พร้อมใช้งานจริง
โปรดทราบว่า
- แฟล็ก –source ใช้เพื่อบอกให้ Cloud Run สร้างฟังก์ชันลงในบริการที่อิงตามคอนเทนเนอร์ที่เรียกใช้ได้
- แฟล็ก –Function (ใหม่) ใช้เพื่อตั้งค่าจุดแรกเข้าของบริการใหม่ให้เป็นลายเซ็นของฟังก์ชันที่คุณต้องการเรียกใช้
- (ไม่บังคับ) –no-allow-un Authentication เพื่อป้องกันไม่ให้ฟังก์ชันของคุณเรียกใช้ได้แบบสาธารณะ
5. ทดสอบฟังก์ชัน
เมื่อการทำให้ใช้งานได้เสร็จสมบูรณ์ คุณจะเห็น URL ของบริการ หากต้องการเรียกใช้ฟังก์ชัน คุณต้องส่งคำขอที่ตรวจสอบสิทธิ์แล้วพร้อมกับโทเค็นข้อมูลประจำตัวของคุณหรือโทเค็นข้อมูลระบุตัวตนของหลักการที่มีบทบาทผู้เรียกใช้ Cloud Run ดังที่แสดงด้านล่าง
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6. ยินดีด้วย
ขอแสดงความยินดีที่เรียน Codelab จนจบ
เราขอแนะนำให้อ่านเอกสารเกี่ยวกับฟังก์ชัน Cloud Run
หัวข้อที่ครอบคลุม
- วิธีทำให้ฟังก์ชัน Cloud Run ที่ทริกเกอร์โดยคำขอ HTTP ใช้งานได้
7. ล้างข้อมูล
เพื่อหลีกเลี่ยงการเรียกเก็บเงินที่ไม่ตั้งใจ (เช่น หากมีการเรียกใช้บริการ Cloud Run โดยไม่ได้ตั้งใจมากกว่าการจัดสรรการเรียกใช้ Cloud Run รายเดือนในรุ่นฟรี) คุณจะลบ Cloud Run หรือลบโปรเจ็กต์ที่สร้างไว้ในขั้นตอนที่ 2 ก็ได้
หากต้องการลบฟังก์ชัน Cloud Run ให้ไปที่ Cloud Run บน Cloud Console ที่ https://console.cloud.google.com/run แล้วลบบริการ crf-http-codelab
หากเลือกลบทั้งโปรเจ็กต์ ให้ไปที่ https://console.cloud.google.com/cloud-resource-manager เลือกโปรเจ็กต์ที่คุณสร้างในขั้นตอนที่ 2 แล้วเลือกลบ หากลบโปรเจ็กต์ คุณจะต้องเปลี่ยนโปรเจ็กต์ใน Cloud SDK คุณสามารถดูรายการโปรเจ็กต์ที่ใช้ได้ทั้งหมดโดยเรียกใช้ gcloud projects list