1. บทนำ
ขอแนะนำ AllStrides แพลตฟอร์มการจัดการกิจกรรมแบบครบวงจรสำหรับชุมชนฟิตเนส แม้จะมีฟีเจอร์มากมาย แต่ปัจจุบันสถานะของแอปคือ "ใช้ได้เฉพาะในพื้นที่" โดยจะใช้ฐานข้อมูล SQLite ในเครื่องและการดำเนินการ Node.js ด้วยตนเอง AllStrides ต้องการความสามารถในการปรับขนาด ความน่าเชื่อถือ และความปลอดภัยของ Google Cloud เพื่อให้ชุมชนเติบโต
ใน Codelab นี้ คุณจะไม่ทำการย้ายข้อมูลแบบเดิม แต่คุณจะทำหน้าที่เป็นสถาปนิกผลิตภัณฑ์โดยใช้ Gemini CLI เป็นพาร์ทเนอร์ที่เป็น Agent การติดตั้งเซิร์ฟเวอร์ Model Context Protocol (MCP) ของ Google Cloud 3 เครื่องให้กับ Gemini จะช่วยให้ AI "เข้าถึง" และโต้ตอบกับบริการของ Google Cloud ได้โดยตรง คุณจะเริ่มต้นด้วยการใช้ MCP ความรู้สำหรับนักพัฒนาซอฟต์แวร์เพื่อระบุฐานข้อมูล Google Cloud ที่ดีที่สุดสำหรับแอป allstrides จากนั้นจะใช้ MCP ของ Cloud SQL เพื่อจัดสรรอินสแตนซ์ฐานข้อมูลและย้ายข้อมูลชุมชนในเครื่องไปยังระบบคลาวด์ด้วยพรอมต์เดียว สุดท้ายนี้ คุณจะใช้ MCP ของ Cloud Run เพื่อจัดคอนเทนเนอร์แอปพลิเคชัน ซึ่งจะทำให้ AllStrides พร้อมใช้งานและเข้าถึงได้ทั่วโลก

ข้อกำหนดเบื้องต้น
- ความเข้าใจพื้นฐานเกี่ยวกับคอนโซล Google Cloud
- ทักษะพื้นฐานในอินเทอร์เฟซบรรทัดคำสั่งและ Cloud Shell
สิ่งที่คุณจะได้เรียนรู้
- วิธีกำหนดค่า Gemini CLI ให้ทำงานร่วมกับ MCP ระยะไกล
- วิธีใช้เซิร์ฟเวอร์ MCP ความรู้ด้านการพัฒนา
- วิธีใช้เซิร์ฟเวอร์ MCP ระยะไกลของ Cloud SQL เพื่อย้ายข้อมูลไปยังระบบคลาวด์
- วิธีใช้เซิร์ฟเวอร์ MCP ระยะไกลของ Cloud Run เพื่อทำให้แอปพลิเคชันใช้งานได้ในระบบคลาวด์
- วิธีใช้ Gemini CLI ใน Google Cloud Shell
สิ่งที่คุณต้องมี
- บัญชี Google Cloud และโปรเจ็กต์ Google Cloud
- เว็บเบราว์เซอร์ เช่น Chrome ที่รองรับ Google Cloud Console และ Cloud Shell
2. การตั้งค่าและข้อกำหนด
การตั้งค่าโปรเจ็กต์
- ลงชื่อเข้าใช้ Google Cloud Console หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี
ใช้บัญชีส่วนตัวแทนบัญชีงานหรือบัญชีโรงเรียน
- สร้างโปรเจ็กต์ใหม่หรือนำโปรเจ็กต์ที่มีอยู่มาใช้ซ้ำ หากต้องการสร้างโปรเจ็กต์ใหม่ใน Google Cloud Console ให้คลิกปุ่มเลือกโปรเจ็กต์ในส่วนหัว ซึ่งจะเปิดหน้าต่างป๊อปอัป

ในหน้าต่างเลือกโปรเจ็กต์ ให้กดปุ่มโปรเจ็กต์ใหม่ ซึ่งจะเปิดกล่องโต้ตอบสำหรับโปรเจ็กต์ใหม่

ในกล่องโต้ตอบ ให้ป้อนชื่อโปรเจ็กต์ที่ต้องการและเลือกตำแหน่ง

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

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

- คลิก "ยืนยัน" ตอนนี้คุณเชื่อมต่อกับบัญชีสำหรับการเรียกเก็บเงินของ Google Cloud Platform เวอร์ชันทดลองใช้งานแล้ว

ตั้งค่าบัญชีสำหรับการเรียกเก็บเงินส่วนตัว
หากตั้งค่าการเรียกเก็บเงินโดยใช้เครดิต Google Cloud คุณจะข้ามขั้นตอนนี้ได้
หากต้องการตั้งค่าบัญชีสำหรับการเรียกเก็บเงินส่วนตัว ให้ไปที่นี่เพื่อเปิดใช้การเรียกเก็บเงินใน Cloud Console
ข้อควรทราบ
- การทำแล็บนี้ควรมีค่าใช้จ่ายน้อยกว่า $3 USD ในทรัพยากรระบบคลาวด์
- คุณสามารถทำตามขั้นตอนที่ส่วนท้ายของแล็บนี้เพื่อลบทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินเพิ่มเติม
- ผู้ใช้ใหม่มีสิทธิ์ใช้ช่วงทดลองใช้ฟรีมูลค่า$300 USD
เริ่มต้น Cloud Shell
แม้ว่าคุณจะใช้งาน Google Cloud จากระยะไกลจากแล็ปท็อปได้ แต่ใน Codelab นี้คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
จาก Google Cloud Console ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน

หรือจะกด G แล้วตามด้วย S ก็ได้ ลำดับนี้จะเปิดใช้งาน Cloud Shell หากคุณอยู่ใน Google Cloud Console หรือใช้ลิงก์นี้
การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมจะใช้เวลาเพียงไม่กี่นาที เมื่อเสร็จแล้ว คุณควรเห็นข้อความคล้ายกับตัวอย่างต่อไปนี้

เครื่องเสมือนนี้มาพร้อมเครื่องมือพัฒนาซอฟต์แวร์ทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหลักแบบถาวรขนาด 5 GB และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดใน Codelab นี้ได้ภายในเบราว์เซอร์ คุณไม่จำเป็นต้องติดตั้งอะไร
3. ก่อนเริ่มต้น
เปิดใช้ Basic API
หากต้องการใช้บริการฐานข้อมูลที่มีการจัดการ เช่น Cloud SQL และบริการอื่นๆ เพื่อสร้างและติดตั้งใช้งานแอปพลิเคชันใน Cloud Run คุณต้องเปิดใช้ API ที่เกี่ยวข้องในโปรเจ็กต์ Google Cloud
คุณจะข้ามขั้นตอนนี้และปล่อยให้ Gemini CLI เปิดใช้ API ที่จำเป็นทั้งหมดในภายหลังก็ได้ แต่ในกรณีดังกล่าว คุณอาจพบความล่าช้าและต้องทำขั้นตอนซ้ำระหว่างการดำเนินการ
ตรวจสอบว่าได้ตั้งค่ารหัสโปรเจ็กต์ในเทอร์มินัล Cloud Shell แล้วโดยทำดังนี้
gcloud config set project [YOUR-PROJECT-ID]
ตั้งค่าตัวแปรสภาพแวดล้อม PROJECT_ID:
PROJECT_ID=$(gcloud config get-value project)
เปิดใช้บริการที่จำเป็นทั้งหมด
gcloud services enable sqladmin.googleapis.com \
aiplatform.googleapis.com \
secretmanager.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
containerregistry.googleapis.com
ผลลัพธ์ที่คาดไว้
student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-14650]
student@cloudshell:~ (test-project-001-402417)$
student@cloudshell:~ (test-project-001-402417)$ gcloud services enable sqladmin.googleapis.com \
aiplatform.googleapis.com \
secretmanager.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
containerregistry.googleapis.com
Operation "operations/acat.p2-812263612774-c2dbeef3-c4c1-4a7d-a4b2-b5380be65044" finished successfully.
ให้สิทธิ์แก่บัญชีบริการ
คุณต้องให้สิทธิ์ผู้ดูแลระบบพื้นที่เก็บข้อมูลแก่บัญชีบริการเริ่มต้นของ Compute เพื่อให้สามารถสร้างและจัดเก็บอิมเมจแอปพลิเคชันได้ เช่นเดียวกับในขั้นตอนก่อนหน้า คุณมีตัวเลือกในการมอบสิทธิ์ให้ Gemini CLI ในภายหลังระหว่างการดำเนินการ
PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID --member=serviceAccount:$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")-compute@developer.gserviceaccount.com --role=roles/storage.admin
เปิดใช้ MCP ระยะไกล
ควรเปิดใช้บริการ MCP ระยะไกลอย่างชัดเจนสำหรับแต่ละบริการในโปรเจ็กต์ โดยจะปิดใช้โดยค่าเริ่มต้น และช่วยควบคุมการเข้าถึง API ในระดับโปรเจ็กต์และบริการ
มาเริ่มกันที่บริการ MCP ความรู้สำหรับนักพัฒนาซอฟต์แวร์ หากต้องการเปิดใช้ Developer Knowledge API และบริการ MCP ระยะไกล คุณควรเรียกใช้คำสั่ง gcloud ต่อไปนี้
PROJECT_ID=$(gcloud config get-value project)
gcloud beta services mcp enable developerknowledge.googleapis.com --project=$PROJECT_ID
เมื่อเปิดใช้ API และ MCP ระยะไกลสำหรับความรู้ของนักพัฒนาซอฟต์แวร์แล้ว คุณจะดำเนินการต่อและทำเช่นเดียวกันกับบริการ MCP ระยะไกลของ Cloud SQL ได้
gcloud beta services mcp enable sqladmin.googleapis.com --project=$PROJECT_ID
เช่นเดียวกับ MCP ระยะไกลทั้งหมดสำหรับฐานข้อมูล การเข้าถึงและสิทธิ์ของ MCP จะได้รับการจัดเตรียมเพื่อให้สิทธิ์เข้าถึงแบบละเอียดในระดับโปรเจ็กต์ไปยัง API เอง และมีเพียงหลักการ (ผู้ใช้หรือบัญชีบริการ) ที่มีบทบาทผู้ดูแลการใช้งานบริการ (roles/serviceusage.serviceUsageAdmin) เท่านั้นที่ทำได้
และมีเพียงหลักการที่มีบทบาท MCP Tool User (roles/mcp.toolUser) เท่านั้นที่สามารถเรียกใช้ MCP API ระยะไกลได้
เช่น หากคุณไม่มีบทบาทผู้ดูแลระบบ Cloud SQL (roles/cloudsql.admin) คุณจะสร้าง โคลน หรืออัปเดตอินสแตนซ์ใดๆ ในโปรเจ็กต์ไม่ได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาทและสิทธิ์ที่จำเป็นได้ในเอกสารประกอบ
ดังที่เราเห็น การให้สิทธิ์แบบแบ่งระยะและแบบละเอียดช่วยปกป้องเราจากการโจมตีที่ไม่ได้รับอนุญาต แม้ว่าจะเปิดใช้ปลายทาง MCP ระยะไกลแล้วก็ตาม ทำให้การผลิตของเราปลอดภัยเพียงพอ
MCP ระยะไกลถัดไปที่เราจะเปิดใช้คือสำหรับบริการ Cloud Run แนวทางในการเปิดใช้และเข้าถึง MCP ระยะไกลของ Cloud Run จะคล้ายกับ MCP ระยะไกลของ Cloud SQL
เปิดใช้บริการ Cloud Run MCP ด้วยคำสั่งต่อไปนี้
gcloud beta services mcp enable run.googleapis.com --project=$PROJECT_ID
สุดท้าย เราจะยืนยัน MCP ระยะไกลทั้งหมดที่เปิดใช้ในโปรเจ็กต์ได้โดยใช้คำสั่งต่อไปนี้
gcloud beta services mcp list --project=$PROJECT_ID
ผลลัพธ์ที่คาดไว้
student@cloudshell:~ (test-project-001-402417)$ gcloud beta services mcp list --project=$PROJECT_ID NAME: services/developerknowledge.googleapis.com MCP_ENDPOINT: developerknowledge.googleapis.com NAME: services/run.googleapis.com MCP_ENDPOINT: run.googleapis.com/mcp NAME: services/sqladmin.googleapis.com MCP_ENDPOINT: sqladmin.googleapis.com/mcp
ตอนนี้เมื่อเปิดใช้ API และบริการทั้งหมดแล้ว เราต้องกำหนดค่า Gemini CLI
4. กำหนดค่า Gemini CLI
โดยแล็บนี้ออกแบบมาให้ใช้ Gemini CLI เป็นเอเจนต์หลักในการดำเนินการส่วนใหญ่ และขั้นตอนแรกคือการกำหนดค่าให้ทำงานร่วมกับเซิร์ฟเวอร์ MCP ระยะไกล นอกจากนี้ เราขอแนะนำอย่างยิ่งให้ใช้ Gemini CLI เวอร์ชันล่าสุดและ Gemini เวอร์ชันล่าสุด เช่น Gemini-3-pro หรือ Gemini-3-flash (ปัจจุบันอยู่ในเวอร์ชันตัวอย่าง)
หากคุณมี Gemini CLI เวอร์ชันล่าสุดอยู่แล้วและกำหนดค่าให้ใช้โมเดล Gemini ล่าสุด คุณสามารถข้าม 2 ขั้นตอนถัดไปและไปที่ขั้นตอนที่ 3 ได้โดยตรง
1. รับคีย์ Gemini API
หากต้องการใช้โมเดล Gemini ล่าสุดใน Gemini CLI คุณต้องกำหนดค่าด้วยการตรวจสอบสิทธิ์คีย์ API เราสามารถรับคีย์ API ได้ทั้งใน Google AI Studio
- ไปที่ Google AI Studio -> รับคีย์ API ในเบราว์เซอร์
- คลิกปุ่ม
Create API keyทางด้านขวาของหน้าจอ - ในหน้าต่างป๊อปอัป ให้เลือกโปรเจ็กต์หรือนำเข้าหากไม่เห็นโปรเจ็กต์

- สร้างคีย์ API
- คุณสามารถคัดลอกคีย์ได้โดยใช้ปุ่มคัดลอกทางด้านขวา

ระบบได้เตรียมคีย์ไว้แล้ว และตอนนี้เราสามารถใช้คีย์ดังกล่าวกับ Gemini CLI ได้
2. กำหนดค่า Gemini CLI
คุณกำหนดค่า Gemini CLI ได้ผ่านไฟล์การกำหนดค่าการตั้งค่าหรือแบบอินเทอร์แอกทีฟโดยใช้คำสั่ง /settings เราต้องการให้การตั้งค่าของเราได้รับการเก็บรักษาไว้ในไฟล์การตั้งค่า
ก่อนอื่นเราจะสร้างไดเรกทอรีสำหรับโปรเจ็กต์ เราจะตั้งชื่อไดเรกทอรีว่า projectmcp และเปลี่ยนไปใช้ไดเรกทอรีนั้นโดยใช้คำสั่งต่อไปนี้
mkdir ~/projectmcp
cd ~/projectmcp
ในไดเรกทอรี เราจะสร้างไดเรกทอรีสำหรับไฟล์การกำหนดค่า Gemini และจะเรียกใช้คำสั่งทั้งหมด โดยค่าเริ่มต้น Gemini CLI จะใช้ไฟล์การกำหนดค่าขอบเขตผู้ใช้และส่วนขยายที่ติดตั้งในไดเรกทอรี ~/.gemini แต่เราจะสร้างการกำหนดค่าขอบเขตโปรเจ็กต์ของเราเองในไดเรกทอรี ~/projectmcp มาเริ่มจากการสร้างไดเรกทอรีและการกำหนดค่ากัน
mkdir ~/projectmcp/.gemini
touch ~/projectmcp/.gemini/settings.json
จากนั้นเราจะเปิดไฟล์ ~/projectmcp/.gemini/settings.json โดยใช้โปรแกรมแก้ไข Cloud Shell
edit ~/projectmcp/.gemini/settings.json
เพิ่มการกำหนดค่าต่อไปนี้ในหน้าต่างเอดิเตอร์ที่เปิด
{
"general": {
"preferredEditor": "vscode",
"previewFeatures": true,
"sessionRetention": {
"enabled": true
}
},
"ide": {
"enabled": true,
"hasSeenNudge": true
},
"security": {
"auth": {
"selectedType": "gemini-api-key"
}
},
"ui": {
"theme": "Default"
},
"tools": {
"shell": {
"enableInteractiveShell": false
}
}
}
หลังจากแก้ไขไฟล์แล้ว คุณสามารถใช้ ctrl+s เพื่อบันทึกการเปลี่ยนแปลงและกลับไปที่เทอร์มินัลได้โดยคลิกปุ่ม Open Terminal

ไฟล์ settings.json ด้านบนจะตั้งค่าประเภทการตรวจสอบสิทธิ์ Gemini CLI เป็น gemini-api-key และคุณต้องระบุคีย์ให้กับโมเดล คุณทำได้โดยสร้างไฟล์ .env ในไดเรกทอรีที่ต้องการใช้ Gemini CLI และจัดเก็บคีย์ API สำหรับการตรวจสอบสิทธิ์ Gemini CLI เป็นตัวแปรสภาพแวดล้อม ซึ่งระบบจะเลือกเมื่อคุณเริ่ม IDE
มาแก้ไขไฟล์โดยใช้โปรแกรมแก้ไข Cloud Shell กัน
edit ~/projectmcp/.env
และจัดเก็บคีย์ API ที่สร้างขึ้นในขั้นตอนที่ 1
GEMINI_API_KEY= <YOUR_API_KEY>
ตอนนี้คุณกลับไปที่เทอร์มินัลและดำเนินการต่อได้แล้ว ขั้นตอนถัดไปคือการอัปเดต Gemini CLI เป็นเวอร์ชันล่าสุด เวอร์ชันใน Google Cloud Shell หรือในสภาพแวดล้อมของคุณอาจล้าสมัยและอาจทำงานไม่ถูกต้องกับการกำหนดค่าล่าสุดและบริการ MCP ดังนั้นคุณจึงควรอัปเดต Gemini CLI เป็นเวอร์ชันล่าสุดและเริ่มใช้งาน เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล
cd ~/projectmcp/
npm install -g @google/gemini-cli@latest
ตอนนี้คุณยืนยันเวอร์ชันได้แล้ว โปรดทราบว่าหากคุณทำงานใน Google Cloud Shell ทุกครั้งที่รีสตาร์ทเชลล์ ระบบอาจเปลี่ยนกลับไปใช้เวอร์ชันก่อนหน้า การเปลี่ยนแปลงที่คุณทำกับ Gemini CLI เองจะไม่ถาวรใน Cloud Shell
gemini --version
โดยควรแสดง Gemini CLI เวอร์ชันล่าสุด (เวอร์ชัน 0.27 ในขณะที่เขียนแล็บ) คุณสามารถตรวจสอบ Gemini CLI เวอร์ชันล่าสุดได้ที่นี่ ตอนนี้เราสามารถเริ่มใช้งานและตรวจสอบว่าแอปใช้โมเดล Gemini ล่าสุด เรียกใช้คำสั่งต่อไปนี้ในโฟลเดอร์โปรเจ็กต์เพื่อเริ่มใช้ Gemini CLI
gemini
และเมื่อ Gemini CLI เริ่มทำงาน คุณจะตรวจสอบเวอร์ชันและโมเดลได้โดยเรียกใช้/aboutคำสั่งในอินเทอร์เฟซ คุณควรเห็นภาพคล้ายกับภาพด้านล่าง

คุณจะเห็นว่าโมเดลนี้ใช้โมเดล Gemini-3 ล่าสุด
2. กำหนดค่าเซิร์ฟเวอร์ MCP ใน Gemini CLI
ตอนนี้ได้เวลาเพิ่มเซิร์ฟเวอร์ MCP ที่เปิดใช้ทั้งหมดแล้ว คุณเปิดใช้ฟีเจอร์เหล่านี้ใน Gemini CLI ได้ 2 วิธี ได้แก่ ผ่านส่วนขยายหรือในการตั้งค่าโดยตรง ใน Lab นี้ คุณจะใช้ไฟล์การตั้งค่าขอบเขตโปรเจ็กต์ setting.json และเพิ่มรายละเอียดการตรวจสอบสิทธิ์เซิร์ฟเวอร์ MCP ลงในไฟล์ดังกล่าว
- สำหรับเซิร์ฟเวอร์ MCP ความรู้ของนักพัฒนาแอป คุณต้องสร้างคีย์ API เพื่อรับสิทธิ์ในปลายทาง
มีขั้นตอนดังนี้
- ใน Google Cloud Console สำหรับโปรเจ็กต์ที่คุณเปิดใช้ API ให้ไปที่หน้าข้อมูลเข้าสู่ระบบ
- คลิกสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกคีย์ API จากเมนู กล่องโต้ตอบคีย์ API ที่สร้างขึ้นจะแสดงสตริงสำหรับคีย์ที่สร้างขึ้นใหม่
- คลิก
Edit API keyลิงก์ในกล่องโต้ตอบ - ในช่อง
Nameให้ระบุชื่อคีย์ เช่นDK API Key - เลือก
Restrict keyในส่วนการจำกัด API - จากรายการเลือก API ให้เปิดใช้
Developer Knowledge APIแล้วคลิกตกลง - คลิกบันทึก

ตอนนี้หากต้องการใช้คีย์ คุณสามารถไปที่หน้าดังกล่าวแล้วคลิก "แสดงคีย์" ทางด้านขวา

ตอนนี้คุณต้องจัดเก็บคีย์นั้นในการกำหนดค่า ส่วน MCP ของไฟล์ settings.json จะมีลักษณะดังนี้ (คุณต้องระบุค่าสำหรับคีย์ API ของ DK ในส่วนนี้) ตัวอย่างลักษณะของส่วน MCP ในไฟล์ settings.json หากเพิ่มเฉพาะ DK API ในแล็บช่วงท้ายๆ คุณจะได้เห็นว่าไฟล์ settings.json ควรมีลักษณะอย่างไรเมื่อมีเซิร์ฟเวอร์ MCP ทั้งหมดอยู่ด้วยกัน
"mcpServers": {
"DeveloperKnowledge": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "<Your DK API Key>"
}
}
},
- จากนั้นคุณจะเพิ่มการกำหนดค่าสำหรับเซิร์ฟเวอร์ MCP ของ Cloud SQL ได้ สำหรับ MCP ของ Cloud SQL คุณจะใช้ข้อมูลเข้าสู่ระบบ Google แทน API ซึ่งมีความปลอดภัยมากกว่าและช่วยให้เรากำหนดบทบาทและขอบเขตของการดำเนินการที่อนุญาตสำหรับผู้ใช้ได้ นี่คือการกำหนดค่าสำหรับเซิร์ฟเวอร์ MCP โปรดแทนที่ "<YOUR_GCP_PROJECT>" ด้วยรหัสโปรเจ็กต์ของคุณเอง
"Cloud SQL MCP Server": {
"httpUrl": "https://sqladmin.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 500000,
"trust": false,
"headers": {
"X-Goog-User-Project": "<YOUR_GCP_PROJECT>"
}
},
- JSON ชุดถัดไปนี้มีการกำหนดค่าสำหรับเซิร์ฟเวอร์ MCP ของ Cloud Run โดยจะทำตามรูปแบบเดียวกับตัวอย่างด้านบนและใช้ข้อมูลเข้าสู่ระบบของ Google สำหรับการตรวจสอบสิทธิ์และการให้สิทธิ์ ตัวอย่างการกำหนดค่ามีดังนี้
"CloudRun": {
"httpUrl": "https://run.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
คุณต้องเพิ่มข้อมูลทั้งหมดนี้ลงในไฟล์ ~/projectmcp/.gemini/settings.json
เปิดไฟล์ ~/projectmcp/.gemini/settings.json โดยใช้ Cloud Shell Editor
edit ~/projectmcp/.gemini/settings.json
และแทนที่เนื้อหาด้วยการกำหนดค่าต่อไปนี้ โปรดใส่คีย์ API และรหัสโปรเจ็กต์ในช่อง "X-Goog-Api-Key" และ "X-Goog-User-Project" ตามสภาพแวดล้อมของคุณ
{
"general": {
"preferredEditor": "vscode",
"previewFeatures": true,
"sessionRetention": {
"enabled": true
}
},
"ide": {
"enabled": true,
"hasSeenNudge": true
},
"security": {
"auth": {
"selectedType": "gemini-api-key"
}
},
"mcpServers": {
"DeveloperKnowledge": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "<Your DK API Key>"
}
},
"Cloud SQL MCP Server": {
"httpUrl": "https://sqladmin.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 500000,
"trust": false,
"headers": {
"X-Goog-User-Project": "<YOUR_GCP_PROJECT>"
}
},
"CloudRun": {
"httpUrl": "https://run.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
},
"ui": {
"theme": "Default"
},
"tools": {
"shell": {
"enableInteractiveShell": false
}
}
}
ตอนนี้เราสามารถเริ่ม CLI ของ Gemini และดูเซิร์ฟเวอร์ MCP ทั้งหมดที่เปิดใช้ได้แล้ว
cd ~/projectmcp/
gemini
เมื่อเริ่มใช้ Gemini CLI คุณจะเรียกใช้คำสั่ง /mcp เพื่อดูเซิร์ฟเวอร์ MCP ทั้งหมดที่ทำงานอยู่ได้

5. การเตรียมแอปพลิเคชัน
ในตัวอย่างต่อไปนี้ คุณจะลองย้ายข้อมูลแอปพลิเคชันตัวอย่างในเครื่องไปยัง Google Cloud ก่อนอื่นเราจะติดตั้งแอปพลิเคชันในเครื่องและทดสอบ
1. โคลนซอร์สโค้ด
เราต้องโคลนแอปพลิเคชันจากที่เก็บ GitHub ใน Cloud Shell หรือเทอร์มินัลในเครื่องในโฟลเดอร์โปรเจ็กต์ ให้เรียกใช้
git clone https://github.com/google/mcp.git
2. เริ่มแอปพลิเคชันในเครื่อง
มาทดสอบแอปพลิเคชันและโหลดข้อมูลตัวอย่างกัน
ในเชลล์เดียวกัน ให้เปลี่ยนไปที่โฟลเดอร์แอปพลิเคชันและเริ่มแอปพลิเคชันโดยใช้
cd mcp/examples/allstrides
./start_allstrides.sh
3. ทดสอบแอปพลิเคชัน
หากคุณทำงานใน Cloud Shell ให้กดปุ่ม Web preview ที่ด้านบนของหน้าต่าง Cloud Shell แล้วเลือก Preview on port 8080

ระบบจะเปิดแท็บเบราว์เซอร์ใหม่พร้อมอินเทอร์เฟซของแอปพลิเคชัน ซึ่งคุณสามารถคลิกปุ่ม Events ได้ เป็นต้น

ขณะนี้คุณยังไม่มีกิจกรรม
4. โหลดข้อมูลตัวอย่าง
คุณจะลงทะเบียนในแอปพลิเคชันและสร้างกิจกรรม ข้อความแชท และผู้ใช้ของคุณเอง หรือจะใช้ข้อมูลตัวอย่างที่มาพร้อมกับแอปพลิเคชันก็ได้
เปิดแท็บ Cloud Shell อีกแท็บโดยใช้เครื่องหมาย "+" ที่ด้านบน

ในแท็บ Cloud Shell ใหม่ ให้เรียกใช้การเปลี่ยนไปใช้ไดเรกทอรีแอปพลิเคชัน และเรียกใช้การนำเข้าโดยใช้ยูทิลิตี sqllite3
cd ~/projectmcp/mcp/examples/allstrides
sqlite3 allstrides.db < seed_data.sql
หากกลับไปที่หน้าแอปพลิเคชันแล้วคลิกปุ่มกิจกรรมอีกครั้ง คุณควรเห็นกิจกรรมหลายรายการ

นอกจากนี้ คุณยังทดสอบหน้าแชทและดูข้อความบางอย่างได้ด้วย
ตอนนี้คุณปิดแท็บที่ 2 ได้โดยพิมพ์ exit
exit
และหยุดแอปพลิเคชันในแท็บแรกโดยใช้แป้นพิมพ์ลัด Ctrl+C
6. การทดสอบความรู้ของนักพัฒนาซอฟต์แวร์ MCP
Developer Knowledge MCP ช่วยให้เราใช้เอกสารของ Google ได้โดยตรงจากเครื่องมือแบบไม่เจาะจงของเรา ซึ่งช่วยให้สามารถยืนยันวิธีการ สร้างบทแนะนำ และงานอื่นๆ ที่สามารถเพิ่มประสิทธิภาพได้ด้วยเอกสารประกอบล่าสุดของ Google
เริ่มใช้ Gemini CLI และแสดงรายการเครื่องมือ MCP ที่พร้อมใช้งานในเซิร์ฟเวอร์ MCP ของ Developer Knowledge
/mcp
สำหรับ MCP ความรู้สำหรับนักพัฒนาซอฟต์แวร์ คุณควรเห็นเครื่องมือ 3 อย่างที่พร้อมใช้งาน ดังนี้
ผลลัพธ์ที่คาดไว้
🟢 DeveloperKnowledge - Ready (3 tools) Tools: - batch_get_documents - get_document - search_documents
งานของเราคือการย้ายแอปพลิเคชันไปยัง Google Cloud ซึ่งหมายความว่าเราต้องเปลี่ยนจากฐานข้อมูล Sqlite ในเครื่องไปใช้โซลูชันที่ปรับขนาดได้มากขึ้นและเป็นแบบ Cloud Native มาขอให้ Gemini วิเคราะห์โค้ดแอปพลิเคชันและให้คำแนะนำเกี่ยวกับโซลูชันฐานข้อมูลกัน
ในพรอมต์ Gemini CLI ให้พิมพ์ข้อความต่อไปนี้
Hello, I need to choose a database platform for my allstrides application in Google Cloud. Can you analyze documentation and prepare a tutorial to choose the correct database engine?
Gemini CLI จะเริ่มจากการวิเคราะห์โค้ดของคุณ แล้วขอให้ดำเนินการ
ผลลัพธ์ที่คาดหวัง
? search_documents (DeveloperKnowledge MCP Server) {"query":"choose google cloud database"} ← │
│ │
│ MCP Server: DeveloperKnowledge │
│ Tool: search_documents │
│ │
│ Allow execution of MCP tool "search_documents" from server "DeveloperKnowledge"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc)
เราเห็นว่าเครื่องมือนี้ใช้ MCP เพื่ออ้างอิงคำตอบจากเอกสารประกอบของ Google อนุญาตการดำเนินการคำขอ MCP ความรู้ของนักพัฒนาแอป โดยอาจขอข้อมูลเพิ่มเติมจากคุณอีก 1-2 ครั้งก่อนที่จะให้คำตอบ อย่าอนุญาตให้มีการเปลี่ยนแปลงใดๆ ในแอปพลิเคชันของคุณในขณะนี้
ในตอนท้ายได้มีการสร้างบทแนะนำพร้อมสรุปที่ระบุว่า Cloud SQL สำหรับ Postgres เป็นตัวเลือกที่ดีที่สุดสำหรับแบ็กเอนด์ของฐานข้อมูล คุณอาจได้รับคำตอบที่แตกต่างกันเล็กน้อยเนื่องจากลักษณะของโมเดล Generative AI ที่ไม่แน่นอน
ผลลัพธ์ที่คาดไว้
By switching to Cloud SQL for PostgreSQL, AllStrides gains a robust, scalable foundation suitable for production deployment on Google Cloud. The transition is straightforward due to the use of Sequelize ORM.
นอกจากนี้ เรายังขอให้เตรียมคู่มือการย้ายข้อมูลแบบทีละขั้นตอนได้ด้วย ป้อนพรอมต์ใหม่ลงใน Gemini CLI
I agree with the recommendation to use Cloud SQL for PostgreSQL as the new database for my application. Can you prepare a detailed migration tutorial based on Google documentation on how to move data from my local database to Cloud SQL in the cloud?
และในกรณีนี้ เราคาดหวังให้ Gemini CLI ใช้ MCP ความรู้สำหรับนักพัฒนาซอฟต์แวร์เป็นแหล่งข้อมูลที่เชื่อถือได้ขณะเตรียมบทแนะนำ ลำดับการดำเนินการที่ Gemini CLI ทำอาจแตกต่างกันเล็กน้อย ขึ้นอยู่กับโมเดลที่แน่นอนและปัจจัยอื่นๆ เช่น อาจขอให้เตรียมสคริปต์การย้ายข้อมูลก่อน แล้วจึงทำงานกับเอกสารประกอบบทแนะนำขั้นสุดท้าย
นี่คือตัวอย่างหนึ่งที่ระบบขอสิทธิ์ในการเรียกใช้ MCP ความรู้ของนักพัฒนาซอฟต์แวร์
? search_documents (DeveloperKnowledge MCP Server) {"query":"migrate local database to Cloud SQL for PostgreSQL"} ← │
│ │
│ MCP Server: DeveloperKnowledge │
│ Tool: search_documents │
│ │
│ Allow execution of MCP tool "search_documents" from server "DeveloperKnowledge"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc) │
│ │
│ │
│ ⊷ search_documents (DeveloperKnowledge MCP Server) {"query":"import data into Cloud SQL PostgreSQL"}
ในระหว่างการดำเนินการ Gemini CLI อาจขอให้คุณเรียกใช้คำสั่งบางอย่าง เช่น เพื่อให้เข้าใจสคีมาของข้อมูลได้ดีขึ้นเพื่อเตรียมวิธีการที่ถูกต้องสำหรับการย้ายข้อมูล
และในตอนท้ายควรเตรียมคำสั่งแบบทีละขั้นตอนสำหรับการย้ายข้อมูล
จากนั้นคุณขอให้ Gemini CLI เขียนบทแนะนำได้
Please write the tutorial down
และจะสร้างไฟล์มาร์กดาวน์ใหม่พร้อมเอกสารบทแนะนำ
ผลลัพธ์ที่คาดไว้
✦ I have created a detailed migration guide for you. You can find the tutorial in the new file: MIGRATION_GUIDE.md. This guide covers: 1. Exporting your local SQLite data to CSV format. 2. Creating the PostgreSQL schema with compatible data types. 3. Uploading data to Google Cloud Storage. 4. Importing data into Cloud SQL in the correct order to respect relationships. 5. Resetting ID sequences to ensure new data can be added without errors.
ในขั้นตอนถัดไป เราจะทำงานร่วมกับ MCP ของ Cloud SQL เพื่อเตรียมฐานข้อมูลและย้ายข้อมูล
7. การทดสอบ MCP ระยะไกลของ Cloud SQL
1. สร้างอินสแตนซ์ Cloud SQL
คุณเริ่มต้นได้โดยตรวจสอบเครื่องมือที่มีในเซิร์ฟเวอร์ MCP ของ Cloud SQL โดยพิมพ์ /mcp ใน Gemini CLI
/mcp
ปัจจุบันเรามีเครื่องมือต่อไปนี้ให้ใช้งาน
ผลลัพธ์ที่คาดไว้
🟢 Cloud SQL MCP Server - Ready (11 tools) Tools: - clone_instance - create_instance - create_user - execute_sql - get_instance - get_operation - import_data - list_instances - list_users - update_instance - update_user
เราได้ตัดสินใจแล้วว่าจะใช้ Cloud SQL สำหรับ Postgres เป็นแบ็กเอนด์ของแอปพลิเคชันใน Google Cloud ตอนนี้เราสามารถขอให้ Gemini สร้างอินสแตนซ์ Cloud SQL ให้เราได้แล้ว
ในพรอมต์ Gemini CLI ให้พิมพ์คำขอของคุณดังต่อไปนี้
Please create a Cloud SQL for Postgres instance with appropriate edition and version in the us-central1 region to be a backend for our application with a public IPs in the current project with 2 CPU and 8 GB memory.
หากต้องการหลีกเลี่ยงการเรียกใช้เพิ่มเติมเพื่อระบุโปรเจ็กต์ปัจจุบัน คุณสามารถระบุรหัสโปรเจ็กต์อย่างชัดเจนเมื่อป้อนพรอมต์ หากไม่ได้ใช้ชื่อโปรเจ็กต์ในบริบทก่อนหน้านี้ โมเดลจะขอรหัสโปรเจ็กต์หรือขอให้เรียกใช้คำสั่ง gcloud เพื่อระบุโปรเจ็กต์
จากนั้นจะวิเคราะห์เครื่องมือที่มีอยู่และขอให้เรียกใช้เครื่องมือ MCP ของ Cloud SQL คุณจะเห็นคำขออนุมัติต่อไปนี้
? create_instance (Cloud SQL MCP Server MCP Server) {"tier":"db-custom-2-8192","region":"us-central1","project":"gleb-test-short-001-486416","databaseVersion":"POSTGRES_17","edition":"ENTERPRISE","nam... ← │
│ │
│ MCP Server: Cloud SQL MCP Server │
│ Tool: create_instance │
│ │
│ Allow execution of MCP tool "create_instance" from server "Cloud SQL MCP Server"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc)
หลังจากเริ่มการดำเนินการแล้ว ระบบจะขอให้คุณตรวจสอบสถานะการดำเนินการและคำขอให้หยุดทำงานชั่วคราวที่อาจเกิดขึ้นระหว่างการตรวจสอบ เช่น
✦ I will wait for 30 seconds before checking the status of the instance creation. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ⊶ Shell sleep 30 [current working directory /home/gleb/demo] │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ⠋ Refining Instance Configuration (esc to cancel, 11s)
จากนั้นจะตามด้วยget_operationเครื่องมือสำหรับ MCP ของเซิร์ฟเวอร์ Cloud SQL
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ? get_operation (Cloud SQL MCP Server MCP Server) {"project":"gleb-test-short-001-486416","operation":"73c39ca7-65fe-46d1-bdb8-0dfa00000032"} ← │
│ │
│ MCP Server: Cloud SQL MCP Server │
│ Tool: get_operation │
│ │
│ Allow execution of MCP tool "get_operation" from server "Cloud SQL MCP Server"? │
│ │
│ ● 1. Allow once
หลังจากคำขอ get_instance สุดท้าย คุณควรได้รับข้อมูลเกี่ยวกับอินสแตนซ์ที่สร้างขึ้น เช่น
ผลลัพธ์ที่คาดไว้
✦ I will wait for 30 seconds before checking the status of the instance creation. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ⊶ Shell sleep 30 [current working directory /home/gleb/demo] │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ⠋ Refining Instance Configuration (esc to cancel, 11s)
จากนั้นจะตามด้วยเครื่องมือ get_operation สำหรับ MCP ของ Cloud SQL Server และการเรียกใช้เครื่องมือ MCP ของ get_insance คุณอาจเห็นการตรวจสอบเพิ่มเติมและการเรียกใช้ที่ Gemini CLI ดำเนินการเพื่อยืนยันว่างานเสร็จสมบูรณ์แล้ว
The Cloud SQL for Postgres instance allstrides-db has been successfully created in the us-central1 region with 2 vCPUs and 8 GB of RAM. Instance Details: - Project ID: gleb-test-short-001-486416 - Instance Name: allstrides-db - Public IP Address: 35.226.187.246 - Database Version: POSTGRES_17 - Machine Type: db-custom-2-8192 (2 vCPU, 8 GB RAM) - Region: us-central1 - Connection Name: gleb-test-short-001-486416:us-central1:allstrides-db The instance is configured with public IP enabled, IAM authentication turned on, and Data API access allowed.
2. ย้ายข้อมูล
อินสแตนซ์พร้อมใช้งานแล้ว ตอนนี้เราสามารถย้ายข้อมูลทั้งหมดจากฐานข้อมูล SQLite ที่มีอยู่ไปยังฐานข้อมูลใหม่ในระบบคลาวด์ได้
ในพรอมต์ Gemini CLI ให้พิมพ์คำขอต่อไปนี้
Now when we have our Cloud SQL instance ready it is time to move the data from our local database. Please migrate all the data to a new database in our Cloud SQL instance where the new user for application would be the database owner? Let's call the new database allstrides-db and the user allstrides. Please use our MCP tools whenever it is possible.
ในระหว่างการดำเนินการ Gemini CLI จะวิเคราะห์โมเดลข้อมูลของเรา และเพื่อดำเนินการดังกล่าว ระบบจะขอสิทธิ์ในการเรียกใช้คำสั่งบางอย่าง เวิร์กโฟลว์ไม่ได้กำหนดไว้ 100% และบางขั้นตอนอาจแตกต่างกัน
ต่อไปนี้เป็นตัวอย่างวิธีเริ่มต้น
ผลลัพธ์ที่คาดไว้
✦ I will read the allstrides/README.md and allstrides/seed_data.sql files to understand the local database structure and data. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ✓ ReadFile allstrides/README.md │ │ │ │ │ │ ✓ ReadFile allstrides/seed_data.sql │ │ │ ╰─────────────────────────────────────────────────────────────────────────
จากนั้นหลังจากผ่านไปหลายขั้นตอน ระบบจะใช้ Cloud SQL MCP เพื่อเตรียมฐานข้อมูล ผู้ใช้ และย้ายข้อมูลในที่สุด การดำเนินการแรกๆ อย่างหนึ่งที่สคริปต์นี้ทำในฐานข้อมูลคือการเพิ่มคุณเป็นผู้ใช้ IAM และให้สิทธิ์แก่คุณในการสร้างฐานข้อมูลและผู้ใช้ คุณควรมีสิทธิ์เพียงพอใน Google Cloud ในฐานะ IAM
ตัวอย่างขั้นตอนบางอย่างในเวิร์กโฟลว์มีดังนี้
ผลลัพธ์ที่คาดไว้
✓ execute_sql (Cloud SQL MCP Server MCP Server) {"project":"gleb-test-short-001-486416","instance":"allstrides-db","sqlStatement":"CREATE DATABASE \"allstrides-db\";","database":"postgres"} │
│ │
│ { │
│ "messages": [ │
│ { │
│ "message": "Execution complete. 1 result set(s) returned.", │
│ "severity": "INFO" │
│ } │
│ ], │
│ "metadata": { │
│ "sqlStatementExecutionTime": "0.075591388s" │
│ }, │
│ "results": [ │
│ {} │
│ ] │
│ } │
│
3. ติดตั้งใช้งานแอปพลิเคชันใน Cloud Run
ตอนนี้ระบบได้สร้างฐานข้อมูลและย้ายข้อมูลแอปพลิเคชันในเครื่องไปยังฐานข้อมูล CloudSQL แล้ว ตอนนี้คุณพร้อมที่จะทําให้แอปพลิเคชันใช้งานได้ใน Cloud Run แล้ว ในระหว่างการติดตั้งใช้งาน คุณจะต้องใช้ Google Cloud SDK ร่วมกันเพื่อสร้างอิมเมจใน Google Cloud แล้วจึงติดตั้งใช้งานโดยใช้ Cloud Run MCP
ใน Gemini CLI ให้เรียกใช้พรอมต์ต่อไปนี้
Now, when all the data is successfully migrated to our Cloud SQL instance allstrides-db we can migrate our allstrides application to Cloud Run and deploy using my Cloud SQL database. Please put the username and the password for my database user user to Secret Manager to not show openly in Cloud Run.
Let's build the image first and then use MCP to create the Cloud Run service.
ในระหว่างการดำเนินการ ระบบจะตรวจสอบ API เตรียมข้อมูลสำหรับ Secret Manager และสร้าง Secret ที่จำเป็น นอกจากนี้ ยังจะอัปเดตแอปพลิเคชันให้ทำงานกับฐานข้อมูล PostgreSQL และเพิ่มโมดูล npm ที่จำเป็นด้วย
จากนั้นหลังจากสร้างอิมเมจและวางไว้ใน Artifact Registry แล้ว ระบบจะใช้บริการ MCP เพื่อทำให้แอปพลิเคชันใช้งานได้ใน Cloud Run
ตัวอย่างการเรียกใช้ MCP ของ Cloud Run
ผลลัพธ์ที่คาดไว้
✦ I will deploy the 'allstrides' service to Cloud Run using the deploy_service_from_image tool. I will configure the environment variables and map the
database credentials from Secret Manager. Note that the MCP tool's schema does not explicitly expose the Cloud SQL instance attachment parameter, which is
typically required for the Unix socket connection (/cloudsql/...) to work. I will proceed with the deployment as requested, but if the database connection
fails due to the missing instance attachment, we may need to use gcloud to update that specific configuration.
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Action Required 1 of 1 │
│ │
│ ? deploy_service_from_image (CloudRun MCP Server) {"service":{"invokerIamDisabled":true,"name":"projects/gleb-test-short-001-486416/locations/us-centra... │
│ │
│ MCP Server: CloudRun │
│ Tool: deploy_service_from_image │
│ Allow execution of MCP tool "deploy_service_from_image" from server "CloudRun"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc) │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
เส้นทางที่แน่นอนในการดำเนินการทั้งหมดให้เสร็จสมบูรณ์อาจแตกต่างกันไปในแต่ละการดำเนินการ เอเจนต์ AI จะเลือกเส้นทางตามบริบท เอาต์พุตคำสั่ง และตัวแปรอื่นๆ อีกมากมาย และนี่คือจุดแข็งของซอฟต์แวร์ที่เป็น Agent ของ AI ซึ่งสามารถตอบโต้ ปรับแนวทาง และลองทำตามขั้นตอนอีกครั้งเพื่อทำงานให้เสร็จและส่งมอบผลลัพธ์ที่ประสบความสำเร็จ
ตอนนี้คุณควรมีแอปพลิเคชัน allstrides ที่ติดตั้งใช้งานและทำงานใน Cloud Run และเชื่อมต่อกับฐานข้อมูล Cloud SQL แล้ว
คุณอาจเห็นข้อมูลต่อไปนี้ในตอนท้าย
ผลลัพธ์ที่คาดไว้
✦ The application allstrides has been successfully migrated to Cloud Run and is connected to the Cloud SQL database allstrides-db.
Deployment Details:
* Service URL: https://allstrides-812263612774.us-central1.run.app
* Database: allstrides-db (PostgreSQL)
* Database User: allstrides (Password updated and stored in Secret Manager)
* Secrets: db-user and db-pass are mounted as environment variables.
* Region: us-central1
Steps Taken:
1. Database Configuration:
* Updated the allstrides database user password.
* Created db-user and db-pass secrets in Google Cloud Secret Manager.
* Updated database.ts to support PostgreSQL connections via Cloud SQL socket.
2. Build:
* Built the container image gcr.io/gleb-test-short-001-486416/allstrides using Cloud Build.
3. Deployment:
* Initiated deployment using the MCP deploy_service_from_image tool.
* Granted the Secret Manager Secret Accessor role to the Cloud Run service account.
* Attached the Cloud SQL instance connection using gcloud (as the MCP tool currently lacks this specific configuration parameter).
The application is now serving traffic and successfully connected to the database.
และเมื่อเปิด URL ที่ระบุในเบราว์เซอร์ คุณควรเห็นหน้าแอปพลิเคชัน

และกิจกรรมทั้งหมดของเราควรปรากฏที่นั่น

ยินดีด้วย คุณสามารถใช้ Gemini CLI และบริการ MCP ระยะไกลของ Google Cloud เพื่อย้ายแอปพลิเคชันในเครื่องไปยังระบบคลาวด์ได้ การทำให้ใช้งานได้เสร็จสมบูรณ์แล้ว และสามารถล้างข้อมูลทรัพยากรทั้งหมดได้
8. ล้างข้อมูลในสภาพแวดล้อม
วิธีที่ง่ายที่สุดในการล้างข้อมูลในสภาพแวดล้อมคือการขอให้ Gemini CLI นำคอมโพเนนต์ทั้งหมดที่คุณสร้างออก โดยควรเก็บเนื้อหาทั้งหมดไว้ในบริบท แต่หากคุณออกจากระบบและไม่มีประวัติที่บันทึกไว้ คุณสามารถลองระบุรายละเอียดเพิ่มเติมและขอให้ล้างข้อมูลบริการ Cloud Run, อิมเมจ และอินสแตนซ์ Cloud SQL หากต้องการนำบริการออก คุณต้องตรวจสอบสิทธิ์ด้วยผู้ใช้ที่มีสิทธิ์ที่จำเป็นและจะใช้คำสั่ง gcloud
ตัวอย่างพรอมต์มีดังนี้
Now, when we've tested the application can you please delete the created Cloud Run service, the image we've built and the Cloud SQL instance we've created in the project.
หลังจากนำออกแล้ว คุณสามารถใช้บริการ MCP ระยะไกลเพื่อยืนยันว่านำบริการ Cloud Run หรืออินสแตนซ์ Cloud SQL ออกสำเร็จแล้ว
Can you please list all Cloud SQL instances in the project and Cloud Run services in the project.
คุณควรเห็นข้อความต่อไปนี้ที่ส่วนท้าย
ผลลัพธ์ที่คาดไว้
✦ There are currently no Cloud SQL instances or Cloud Run services (in us-central1) in the project gleb-test-short-001-486416.
เพียงเท่านี้ก็เสร็จสิ้นขั้นตอนของแล็บแล้ว
9. ขอแสดงความยินดี
ขอแสดงความยินดีที่ทำ Codelab เสร็จสมบูรณ์
เส้นทางการเรียนรู้ของ Google Cloud
สิ่งที่เราได้พูดถึง
- วิธีติดตั้งใช้งานและกำหนดค่า Gemini CLI ให้ทำงานกับ MCP ระยะไกลของ Google Cloud
- วิธีใช้ Development KnowledgeMCP
- วิธีใช้ Cloud SQL MCP เพื่อย้ายข้อมูลไปยังระบบคลาวด์
- วิธีใช้ MCP ของ Cloud Run เพื่อทำให้แอปพลิเคชันใช้งานได้ในระบบคลาวด์
- วิธีใช้ Gemini CLI ใน Google Cloud Shell
10. แบบสำรวจ
เอาต์พุต: