1. ก่อนเริ่มต้น
Codelab นี้จะแสดงวิธีสร้างโปรเจ็กต์ Google Cloud แล้วเรียกใช้ Google Cloud API จากโปรเจ็กต์นั้น
ข้อกำหนดเบื้องต้น
- ไปยังส่วนต่างๆ ของ Google Cloud Console
สิ่งที่คุณจะได้เรียนรู้
- วิธีสร้างโปรเจ็กต์ Google Cloud
- วิธีตั้งค่าบัญชีสำหรับการเรียกเก็บเงิน
- วิธีตั้งค่า Cloud Shell
- วิธีเปิดใช้ API
- วิธีให้สิทธิ์ API ด้วยคีย์ API
- วิธีให้สิทธิ์ API ด้วยบัญชีบริการ
สิ่งที่ต้องมี
- บัญชี Google เช่น บัญชี Gmail หรือบัญชี Google Workspace
- สิทธิ์เข้าถึงบัญชีสำหรับการเรียกเก็บเงินใน Cloud หรือบัตรเครดิตที่จะใช้ลงชื่อสมัครใช้โปรแกรมช่วงทดลองใช้ฟรี
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
ใน Codelab นี้ คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud Cloud Shell เป็นเครื่องเสมือนจาก Debian ที่เต็มไปด้วยเครื่องมือการพัฒนาทั้งหมดที่คุณต้องการ เครือข่ายนี้ประกอบด้วยไดเรกทอรีหน้าแรกขนาด 5GB ที่ใช้งานได้ ซึ่งช่วยเพิ่มประสิทธิภาพของเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก ซึ่งหมายความว่าสิ่งที่คุณต้องมีใน 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 จากโปรเจ็กต์
Codelab นี้จะแสดงวิธีใช้ 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 นี้
หากไม่มีปุ่ม TRY THIS API ปรากฏขึ้น ให้คลิกเมธอดใดวิธีการหนึ่งที่แสดงอยู่เพื่อลองใช้เมธอดดังกล่าว
สร้างคีย์ API
เนื่องจากคุณใช้ curl
เพื่อส่งคำขอไปยัง Natural Language API คุณจึงต้องสร้างคีย์ API เพื่อส่งผ่าน URL คำขอ
- ใน Cloud Console ให้เลือกเมนูการนำทาง > API และ บริการ > ข้อมูลเข้าสู่ระบบ
- คลิกสร้างข้อมูลรับรอง แล้วเลือกคีย์ API
- คัดลอกคีย์ API ที่สร้างขึ้น แล้วคลิกปิด
ใช้คีย์ API เพื่อเรียกใช้ API
- ส่งออกคีย์ API ในบรรทัดคำสั่ง Cloud Shell
export API_KEY=<YOUR_API_KEY>
ให้แทนที่ <YOUR_API_KEY>
ด้วยคีย์ที่คุณสร้างขึ้นก่อนหน้านี้
- สร้างคำขอสำหรับ API ใน Cloud Shell Editor หรือด้วยตัวแก้ไข Linux เช่น Vim หรือ Emacs ดูรายละเอียดของพารามิเตอร์ได้ที่ Method: document.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: document.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 ที่ใช้เพื่อดูว่ามีไลบรารีของไคลเอ็นต์ใดบ้าง
5. ล้างข้อมูล
แนวทางปฏิบัติที่ไม่ดีในการมีคีย์ API แบบไม่จำกัดสำหรับโปรเจ็กต์ หากมีผู้อื่นเข้าถึงบัญชีได้ บุคคลนั้นจะสามารถใช้งานโดเมนได้โดยไม่ต้องผ่านการตรวจสอบสิทธิ์อีก
วิธีลบคีย์ API นี้
- คลิก เมนูการนำทาง > API และ บริการ > ข้อมูลเข้าสู่ระบบ
- ในส่วนคีย์ API ให้เลือกคีย์ที่จะลบ แล้วคลิกลบ
- และในทำนองเดียวกัน อย่ากังวลว่าคีย์ส่วนตัวของบัญชีบริการจะไม่ได้รับการปกป้อง ในส่วนบัญชีบริการ ให้เลือกบัญชีบริการที่ต้องการลบ แล้วคลิกลบ
6. ขอแสดงความยินดี
ยินดีด้วย คุณได้เรียนรู้วิธีสร้างโปรเจ็กต์ Google Cloud และวิธีเรียกใช้ API จากภายในโปรเจ็กต์แล้ว