1. ก่อนเริ่มต้น
Codelab นี้จะแสดงวิธีสร้างโปรเจ็กต์ Google Cloud แล้วเรียกใช้ Google Cloud API จากโปรเจ็กต์นั้น
ข้อกำหนดเบื้องต้น
- ความสามารถในการไปยังส่วนต่างๆ ของ Google Cloud Console
สิ่งที่คุณจะได้เรียนรู้
- วิธีสร้างโปรเจ็กต์ Google Cloud
- วิธีตั้งค่าบัญชีสำหรับการเรียกเก็บเงิน
- วิธีตั้งค่า Cloud Shell
- วิธีเปิดใช้ API
- วิธีให้สิทธิ์ API ด้วยคีย์ API
- วิธีให้สิทธิ์ API ด้วยบัญชีบริการ
สิ่งที่คุณต้องมี
- บัญชี Google เช่น บัญชี Gmail หรือบัญชี Google Workspace
- สิทธิ์เข้าถึงบัญชีการเรียกเก็บเงินในระบบคลาวด์หรือบัตรเครดิตเพื่อใช้ลงชื่อสมัครเข้าร่วมโปรแกรมทดลองใช้ฟรี
2. ตั้งค่า
ส่วนนี้จะแสดงวิธีสร้างโปรเจ็กต์ Google Cloud ตั้งค่าบัญชีสำหรับการเรียกเก็บเงิน และตั้งค่า Cloud Shell
สร้างโปรเจ็กต์ Google Cloud และตั้งค่าบัญชีสำหรับการเรียกเก็บเงิน
- ลงชื่อเข้าใช้ Cloud Console แล้วเลือกหรือสร้างโปรเจ็กต์



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


เมื่อเชื่อมต่อกับ Cloud Shell แล้ว คุณควรจะเห็นว่าระบบได้ตรวจสอบสิทธิ์คุณแล้ว และโปรเจ็กต์ได้ตั้งค่าเป็น PROJECT_ID แล้ว
- สร้างรายการบัญชีที่ผ่านการรับรอง
gcloud auth list
คุณควรเห็นเอาต์พุตต่อไปนี้
Credentialed accounts:
- <MY_ACCOUNT>@<MY_DOMAIN>.com (active)
- หากต้องการดูรายการโปรเจ็กต์ ให้ป้อนคำสั่งนี้
gcloud config list project
คุณควรเห็นเอาต์พุตต่อไปนี้
[core]
project = <PROJECT_ID>
หากไม่ได้ตั้งค่าโปรเจ็กต์ด้วยเหตุผลบางประการ ให้เรียกใช้คำสั่งนี้เพื่อตั้งค่าโปรเจ็กต์
gcloud config set project <PROJECT_ID>
PROJECT_ID คือรหัสที่คุณใช้ในขั้นตอนการตั้งค่า นอกจากนี้ คุณยังค้นหาได้ในแดชบอร์ด Cloud Console โดยทำดังนี้

นอกจากนี้ Cloud Shell ยังตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างโดยค่าเริ่มต้น ซึ่งอาจมีประโยชน์เมื่อคุณเรียกใช้คำสั่งในอนาคต
- หากต้องการดูรหัสโปรเจ็กต์ ให้ป้อนคำสั่งต่อไปนี้
echo $GOOGLE_CLOUD_PROJECT
คุณควรเห็นเอาต์พุตต่อไปนี้
<PROJECT_ID>
- สุดท้าย ให้ตั้งค่าโซนเริ่มต้นและการกำหนดค่าโปรเจ็กต์
gcloud config set compute/zone us-central1-f
คุณเลือกโซนต่างๆ ได้หลากหลาย ดูข้อมูลเพิ่มเติมได้ที่ภูมิภาคและโซน
3. เรียก API จากโปรเจ็กต์
โค้ดแล็บนี้จะแสดงวิธีใช้ API ตัวอย่าง (Natural Language API) เพื่อค้นหาเอนทิตี (เช่น บุคคล สถานที่ และเหตุการณ์) ในข้อความ และวิธีประมาณความรู้สึก (ระดับความชอบ) ของข้อความนั้น คุณจะได้เรียนรู้วิธีต่อไปนี้
- เปิดใช้ Google Cloud APIs
- รับการให้สิทธิ์สำหรับ API ด้วยคีย์ API และบัญชีบริการ
- เรียกใช้ API ด้วย
curlและไลบรารีของไคลเอ็นต์
เปิดใช้ API
- เลือก API และบริการจากเมนูหลักใน Cloud Console

- เลือก + เปิดใช้ API และบริการจากด้านบนของหน้าจอ

- ตอนนี้คุณสามารถกรองและเรียกดู API หรือไปที่ API โดยตรงได้โดยใช้ช่องค้นหา ค้นหา
Natural Languageแล้วเลือก Cloud Natural Language API

- คลิกลองใช้ API นี้
หากไม่เห็นปุ่มลองใช้ API นี้ ให้คลิกหนึ่งในวิธีการที่แสดงเพื่อลองใช้วิธีนั้น
สร้างคีย์ API
เนื่องจากคุณใช้ curl เพื่อส่งคำขอไปยัง Natural Language API คุณจึงต้องสร้างคีย์ API เพื่อส่งใน URL ของคำขอ
- ใน Cloud Console ให้เลือกเมนูการนำทาง > API และบริการ > ข้อมูลเข้าสู่ระบบ

- คลิกสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกคีย์ API

- คัดลอกคีย์ API ที่สร้างขึ้น แล้วคลิกปิด
ใช้คีย์ API เพื่อเรียก API
- ในบรรทัดคำสั่งของ Cloud Shell ให้ส่งออกคีย์ API
export API_KEY=<YOUR_API_KEY>
แทนที่ <YOUR_API_KEY> ด้วยคีย์ที่คุณสร้างไว้ก่อนหน้านี้
- สร้างคำขอสำหรับ API ใน Cloud Shell Editor หรือด้วยโปรแกรมแก้ไข Linux เช่น Vim หรือ Emacs ดูรายละเอียดพารามิเตอร์ได้ที่เมธอด: documents.analyzeEntities บันทึกเอาต์พุตในไฟล์ชื่อ
request.jsonโดยทำดังนี้
{
"document":{
"type":"PLAIN_TEXT",
"content":"Google, headquartered in Mountain View (1600 Amphitheatre Pkwy, Mountain View, CA 940430), unveiled the new Android phone for $799 at the Consumer Electronic Show. Sundar Pichai said in his keynote that users love their new Android phones."
},
"encodingType":"UTF8"
}
- เรียกใช้ API ด้วยข้อมูลคำขอ
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \
-s -X POST -H "Content-Type: application/json" --data-binary @request.json
- เรียกใช้คำสั่งอีกครั้งและเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ แล้วตรวจสอบผลลัพธ์ รายละเอียดของเอาต์พุตไฟล์ JSON จะอยู่ใน Method: documents.analyzeEntities ด้วย
- หากต้องการเปลี่ยนข้อความที่จะวิเคราะห์ในไฟล์
request.jsonให้แทนที่ค่าcontentด้วยข้อความที่ต้องการ
4. ให้สิทธิ์ด้วยบัญชีบริการ
โดยทั่วไปแล้ว บัญชีบริการมักเป็นตัวเลือกที่แนะนำมากกว่าคีย์ API เนื่องจากมีทั้งการตรวจสอบสิทธิ์และการให้สิทธิ์ คุณอาจคิดว่าบัญชีบริการเป็นเหมือนอีเมลสำหรับแอป
- กลับไปที่ส่วนข้อมูลเข้าสู่ระบบของเมนู API และบริการ
- เลือกสร้างข้อมูลเข้าสู่ระบบ แต่ครั้งนี้ให้เลือกบัญชีบริการ

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

รายละเอียดบัญชีบริการจะแสดงขึ้น

- คัดลอกอีเมลของบัญชีบริการแล้วกลับไปที่ Cloud Shell
- ใน Cloud Shell ให้สร้างคู่คีย์สำหรับบัญชีบริการและตั้งค่าตัวแปรสภาพแวดล้อมให้ชี้ไปยังคู่คีย์ดังกล่าว
gcloud iam service-accounts keys create ~/key.json \
--iam-account <your service account email>
export GOOGLE_APPLICATION_CREDENTIALS="/home/$USER/key.json"
Google Cloud ใช้ตัวแปรสภาพแวดล้อมนี้เพื่อค้นหาข้อมูลเข้าสู่ระบบ จึงไม่จำเป็นต้องรวมไว้ในการเรียก API
- ตอนนี้คุณเรียก API ได้แล้วด้วยคำสั่งต่อไปนี้
gcloud ml language analyze-entities --content="Michelangelo Caravaggio, Italian painter, is known for 'The Calling of Saint Matthew'."
ผลลัพธ์ควรเหมือนเดิม
API หลายรายการมีไลบรารีของไคลเอ็นต์ที่ครอบคลุมเพื่อดึงรายละเอียดเหล่านี้ ดูข้อมูลเพิ่มเติมเกี่ยวกับไลบรารีของไคลเอ็นต์ได้ที่ไลบรารีของไคลเอ็นต์ Cloud นอกจากนี้ คุณยังอ่านเอกสารประกอบสำหรับ API ที่ใช้เพื่อดูว่ามีไลบรารีของไคลเอ็นต์ใดบ้างที่พร้อมใช้งานสำหรับ API เหล่านั้น
5. ล้างข้อมูล
การมีคีย์ API ที่ไม่มีการจำกัดสำหรับโปรเจ็กต์ถือเป็นแนวทางที่ไม่ดี หากมีผู้เข้าถึงได้ บุคคลดังกล่าวจะใช้คุกกี้ได้โดยไม่ต้องมีการตรวจสอบสิทธิ์เพิ่มเติม
วิธีลบคีย์ API นี้
- คลิก
เมนูการนำทาง > API และบริการ > ข้อมูลเข้าสู่ระบบ - ในส่วนคีย์ API ให้เลือกคีย์ที่จะลบ แล้วคลิก
ลบ - ในทำนองเดียวกัน แทนที่จะกังวลว่าคีย์ส่วนตัวของบัญชีบริการจะไม่มีการป้องกัน ให้เลือกบัญชีบริการที่จะลบในส่วนบัญชีบริการ แล้วคลิก
ลบ
6. ขอแสดงความยินดี
ยินดีด้วย คุณได้เรียนรู้วิธีสร้างโปรเจ็กต์ Google Cloud และวิธีเรียกใช้ API จากภายในโปรเจ็กต์