เรียกใช้ 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

ใน Codelab นี้ คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud Cloud Shell เป็นเครื่องเสมือนจาก Debian ที่เต็มไปด้วยเครื่องมือการพัฒนาทั้งหมดที่คุณต้องการ เครือข่ายนี้ประกอบด้วยไดเรกทอรีหน้าแรกขนาด 5GB ที่ใช้งานได้ ซึ่งช่วยเพิ่มประสิทธิภาพของเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก ซึ่งหมายความว่าสิ่งที่คุณต้องมีใน 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 จากโปรเจ็กต์

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

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

เปิดใช้ API

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

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

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

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

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

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

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

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

สร้างคีย์ API

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

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

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

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

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

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

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

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

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

  1. สร้างคำขอสำหรับ 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"
}
  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: document.analyzeEntitiesด้วย
  2. หากต้องการเปลี่ยนข้อความที่จะวิเคราะห์ในไฟล์ request.json ให้แทนที่ค่า content ด้วยข้อความที่ต้องการ

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

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

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

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

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

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

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

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

  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 ที่ใช้เพื่อดูว่ามีไลบรารีของไคลเอ็นต์ใดบ้าง

5. ล้างข้อมูล

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

วิธีลบคีย์ API นี้

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

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

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