เรียกใช้ API จากโปรเจ็กต์ Google Cloud

1. ก่อนเริ่มต้น

Codelab นี้จะแสดงวิธีสร้างโปรเจ็กต์ Google Cloud แล้วเรียกใช้ Google Cloud API จากโปรเจ็กต์นั้น

ข้อกำหนดเบื้องต้น

  • ความสามารถในการไปยังส่วนต่างๆ ของ Google Cloud Console

สิ่งที่คุณจะได้เรียนรู้

  • วิธีสร้างโปรเจ็กต์ Google Cloud
  • วิธีตั้งค่าบัญชีสำหรับการเรียกเก็บเงิน
  • วิธีตั้งค่า Cloud Shell
  • วิธีเปิดใช้ API
  • วิธีให้สิทธิ์ API ด้วยคีย์ API
  • วิธีให้สิทธิ์ API ด้วยบัญชีบริการ

สิ่งที่คุณต้องมี

2. ตั้งค่า

ส่วนนี้จะแสดงวิธีสร้างโปรเจ็กต์ Google Cloud ตั้งค่าบัญชีสำหรับการเรียกเก็บเงิน และตั้งค่า Cloud Shell

สร้างโปรเจ็กต์ Google Cloud และตั้งค่าบัญชีสำหรับการเรียกเก็บเงิน

  1. ลงชื่อเข้าใช้ Cloud Console แล้วเลือกหรือสร้างโปรเจ็กต์

ของ Google Cloud

แผงโปรเจ็กต์ใหม่

แผงโปรเจ็กต์ใหม่ที่แสดงช่องชื่อโปรเจ็กต์ องค์กร และสถานที่ตั้ง

จดรหัสโปรเจ็กต์ซึ่งแสดงในช่องชื่อโปรเจ็กต์ รหัสนี้เป็นชื่อที่ไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมด (ชื่อด้านบนถูกใช้ไปแล้ว) และจะมีการอ้างอิงถึงในภายหลังใน Codelab นี้เป็น PROJECT_ID

  1. จากนั้นเปิดใช้การเรียกเก็บเงินใน 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

  1. คลิก a8460e837e9f5fda.png เปิดใช้งาน Cloud Shell

การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมอาจใช้เวลาสักครู่

ตัวเลือกเปิดใช้งาน Cloud Shell

Cloud Shell แสดงข้อความแจ้งบรรทัดคำสั่ง

เมื่อเชื่อมต่อกับ Cloud Shell แล้ว คุณควรจะเห็นว่าระบบได้ตรวจสอบสิทธิ์คุณแล้ว และโปรเจ็กต์ได้ตั้งค่าเป็น PROJECT_ID แล้ว

  1. สร้างรายการบัญชีที่ผ่านการรับรอง
gcloud auth list

คุณควรเห็นเอาต์พุตต่อไปนี้

Credentialed accounts:
 - <MY_ACCOUNT>@<MY_DOMAIN>.com (active)
  1. หากต้องการดูรายการโปรเจ็กต์ ให้ป้อนคำสั่งนี้
gcloud config list project

คุณควรเห็นเอาต์พุตต่อไปนี้

[core]
project = <PROJECT_ID>

หากไม่ได้ตั้งค่าโปรเจ็กต์ด้วยเหตุผลบางประการ ให้เรียกใช้คำสั่งนี้เพื่อตั้งค่าโปรเจ็กต์

gcloud config set project <PROJECT_ID>

PROJECT_ID คือรหัสที่คุณใช้ในขั้นตอนการตั้งค่า นอกจากนี้ คุณยังค้นหาได้ในแดชบอร์ด Cloud Console โดยทำดังนี้

แผงข้อมูลโปรเจ็กต์ที่แสดงรหัสโปรเจ็กต์

นอกจากนี้ Cloud Shell ยังตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างโดยค่าเริ่มต้น ซึ่งอาจมีประโยชน์เมื่อคุณเรียกใช้คำสั่งในอนาคต

  1. หากต้องการดูรหัสโปรเจ็กต์ ให้ป้อนคำสั่งต่อไปนี้
echo $GOOGLE_CLOUD_PROJECT

คุณควรเห็นเอาต์พุตต่อไปนี้

<PROJECT_ID>
  1. สุดท้าย ให้ตั้งค่าโซนเริ่มต้นและการกำหนดค่าโปรเจ็กต์
gcloud config set compute/zone us-central1-f

คุณเลือกโซนต่างๆ ได้หลากหลาย ดูข้อมูลเพิ่มเติมได้ที่ภูมิภาคและโซน

3. เรียก API จากโปรเจ็กต์

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

  • เปิดใช้ Google Cloud APIs
  • รับการให้สิทธิ์สำหรับ API ด้วยคีย์ API และบัญชีบริการ
  • เรียกใช้ API ด้วย curl และไลบรารีของไคลเอ็นต์

เปิดใช้ API

  1. เลือก API และบริการจากเมนูหลักใน Cloud Console

เมนูหลักของ Cloud Console ที่แสดงตัวเลือก API และบริการ

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

ตัวเลือกเปิดใช้ API และบริการ

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

แผง Cloud Natural Language API แสดงปุ่มเปิดใช้และลองใช้ API นี้

  1. คลิกลองใช้ API นี้

หากไม่เห็นปุ่มลองใช้ API นี้ ให้คลิกหนึ่งในวิธีการที่แสดงเพื่อลองใช้วิธีนั้น

สร้างคีย์ API

เนื่องจากคุณใช้ curl เพื่อส่งคำขอไปยัง Natural Language API คุณจึงต้องสร้างคีย์ API เพื่อส่งใน URL ของคำขอ

  1. ใน Cloud Console ให้เลือกเมนูการนำทาง > API และบริการ > ข้อมูลเข้าสู่ระบบ

เมนูการนำทางที่แสดงตัวเลือก API และบริการ รวมถึงข้อมูลเข้าสู่ระบบ

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

บานหน้าต่างข้อมูลเข้าสู่ระบบที่แสดงตัวเลือกสร้างข้อมูลเข้าสู่ระบบและคีย์ API

  1. คัดลอกคีย์ API ที่สร้างขึ้น แล้วคลิกปิด

ใช้คีย์ API เพื่อเรียก API

  1. ในบรรทัดคำสั่งของ Cloud Shell ให้ส่งออกคีย์ API
export API_KEY=<YOUR_API_KEY>

แทนที่ <YOUR_API_KEY> ด้วยคีย์ที่คุณสร้างไว้ก่อนหน้านี้

  1. สร้างคำขอสำหรับ 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"
}
  1. เรียกใช้ API ด้วยข้อมูลคำขอ
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \
  -s -X POST -H "Content-Type: application/json" --data-binary @request.json
  1. เรียกใช้คำสั่งอีกครั้งและเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ แล้วตรวจสอบผลลัพธ์ รายละเอียดของเอาต์พุตไฟล์ JSON จะอยู่ใน Method: documents.analyzeEntities ด้วย
  2. หากต้องการเปลี่ยนข้อความที่จะวิเคราะห์ในไฟล์ request.json ให้แทนที่ค่า content ด้วยข้อความที่ต้องการ

4. ให้สิทธิ์ด้วยบัญชีบริการ

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

  1. กลับไปที่ส่วนข้อมูลเข้าสู่ระบบของเมนู API และบริการ
  2. เลือกสร้างข้อมูลเข้าสู่ระบบ แต่ครั้งนี้ให้เลือกบัญชีบริการ

แผงรายละเอียดบัญชีบริการ

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

แผงบัญชีบริการที่แสดงรายการบัญชี

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

แผงรายละเอียดบัญชีบริการแสดงรายละเอียดสำหรับบัญชีบริการ Natural Language

  1. คัดลอกอีเมลของบัญชีบริการแล้วกลับไปที่ Cloud Shell
  2. ใน 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

  1. ตอนนี้คุณเรียก 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 นี้

  1. คลิกf6b6844bf5688982.png เมนูการนำทาง > API และบริการ > ข้อมูลเข้าสู่ระบบ
  2. ในส่วนคีย์ API ให้เลือกคีย์ที่จะลบ แล้วคลิก 247adf2e1d1eae4b.pngลบ
  3. ในทำนองเดียวกัน แทนที่จะกังวลว่าคีย์ส่วนตัวของบัญชีบริการจะไม่มีการป้องกัน ให้เลือกบัญชีบริการที่จะลบในส่วนบัญชีบริการ แล้วคลิก 247adf2e1d1eae4b.pngลบ

6. ขอแสดงความยินดี

ยินดีด้วย คุณได้เรียนรู้วิธีสร้างโปรเจ็กต์ Google Cloud และวิธีเรียกใช้ API จากภายในโปรเจ็กต์