การแจ้งเตือน: การตรวจสอบระยะเวลาทำงานของหัวข้อ Pub/Sub

การแจ้งเตือน:
การตรวจสอบระยะเวลาทำงานของหัวข้อ Pub/Sub

เกี่ยวกับ Codelab นี้

subjectอัปเดตล่าสุดเมื่อ ก.ค. 7, 2023
account_circleเขียนโดย Aron Eidelman

1 บทนำ

อัปเดตล่าสุดวันที่ 21 มิ.ย. 2023

การแจ้งเตือนเกี่ยวกับการตรวจสอบระยะเวลาทำงานสำหรับความพร้อมใช้งาน

การแจ้งเตือนเกี่ยวกับการตรวจสอบระยะเวลาทำงานช่วยให้คุณระบุและแก้ไขปัญหาที่อาจส่งผลต่อบริการได้อย่างรวดเร็ว การได้รับการแจ้งเตือนเกี่ยวกับการหยุดทำงานจะช่วยให้คุณดำเนินการเพื่อลดผลกระทบต่อผู้ใช้และลูกค้าให้เหลือน้อยที่สุดได้

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

หากบริการไม่พร้อมใช้งาน การตรวจสอบระยะเวลาทำงานจะตรวจพบปัญหาแม้ว่าจะไม่มีการรับส่งข้อมูลก็ตาม ในทางตรงกันข้าม การจราจรอาจได้รับผลกระทบจากปัจจัยต่างๆ เช่น การบำรุงรักษา การอัปเกรด และแม้กระทั่งปัจจัยภายนอกระบบ เช่น สภาพอากาศที่ไม่ดี หรือกิจกรรมกีฬาที่เบี่ยงเบนความสนใจของการใช้งาน

ดูข้อมูลเพิ่มเติมเกี่ยวกับเวลาในการตรวจสอบระยะเวลาทำงานได้ที่ตรวจสอบระยะเวลาทำงานของทรัพยากร Google Cloud

หัวข้อ Pub/Sub ในฐานะช่องทางการแจ้งเตือน

หัวข้อ Pub/Sub สามารถใช้เป็นช่องทางการแจ้งเตือนของ Google Cloud Monitoring เพื่อส่งการแจ้งเตือนไปยังการสมัครใช้บริการ Pub/Sub วิธีนี้ช่วยให้คุณผสานรวมการแจ้งเตือน Cloud Monitoring กับระบบอื่นๆ รวมถึงบริการการแจ้งเตือนของบุคคลที่สามได้

หากต้องการใช้หัวข้อ Pub/Sub เป็นช่องทางการแจ้งเตือน ก่อนอื่นคุณต้องสร้างหัวข้อ Pub/Sub และการสมัครใช้บริการ Pub/Sub จากนั้น คุณต้องสร้างช่องทางการแจ้งเตือนของ Cloud Monitoring ที่ใช้หัวข้อ Pub/Sub เป็นปลายทาง

เมื่อมีการทริกเกอร์การแจ้งเตือน Cloud Monitoring จะส่งข้อความไปยังหัวข้อ Pub/Sub จากนั้น ผู้สมัครใช้บริการ Pub/Sub จะประมวลผลข้อความและดำเนินการตามความเหมาะสมได้

สิ่งที่คุณจะสร้าง

ใน Codelab นี้ คุณจะทำให้แอปใช้งานได้ สร้างหัวข้อ Pub/Sub และสร้างการแจ้งเตือนการตรวจสอบระยะเวลาทำงานสำหรับแอปที่ใช้หัวข้อ Pub/Sub เป็นช่องทางการแจ้งเตือน

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

  • วิธีสร้างหัวข้อ Pub/Sub
  • วิธีสร้างการตรวจสอบระยะเวลาทำงานและการแจ้งเตือน

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

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

  • บัญชี Google Cloud ที่มีสิทธิ์ในการดำเนินการต่อไปนี้
  • ทำให้แอปพลิเคชัน Cloud Run ใช้งานได้
  • สร้างหัวข้อ Pub/Sub
  • สร้างการตรวจสอบระยะเวลาทำงาน
  • สร้างการแจ้งเตือน

2 การตั้งค่า

เลือกหรือสร้างโปรเจ็กต์ Google Cloud

หากต้องการเลือกโปรเจ็กต์ที่มีอยู่ ให้ใช้เมนูแบบเลื่อนลงดังนี้

b35bf95b8bf3d5d8.png

หากต้องการสร้างโปรเจ็กต์ใหม่ใน Google Cloud ให้ทำตามขั้นตอนต่อไปนี้

  1. ไปที่คอนโซล Google Cloud Platform
  2. คลิกปุ่มสร้างโปรเจ็กต์
  3. ป้อนชื่อโครงการ
  4. เลือกบัญชีสำหรับการเรียกเก็บเงินสำหรับโปรเจ็กต์
  5. คลิกที่ปุ่มสร้าง

ระบบจะสร้างโปรเจ็กต์ขึ้นและระบบจะนำคุณไปยังแดชบอร์ดโปรเจ็กต์ จากนั้นคุณจะเริ่มใช้บริการต่างๆ ของ Google Cloud ได้

ต่อไปนี้คือรายละเอียดเพิ่มเติมบางส่วนเกี่ยวกับแต่ละขั้นตอน

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

โปรดดูข้อมูลเพิ่มเติมในเอกสารประกอบเกี่ยวกับการสร้างโปรเจ็กต์ของ Google Cloud

3 ทำให้แอปพลิเคชัน API ใช้งานได้

แอปพลิเคชันหรือ API ตัวอย่างเกี่ยวกับอะไร

แอปพลิเคชันของเราเป็นแอปพลิเคชัน Inventory API แบบง่ายๆ ที่แสดงปลายทาง REST API พร้อมด้วยการดำเนินการ 2 รายการเพื่อแสดงรายการสินค้าคงคลังและนับจำนวนสินค้าคงคลังของสินค้าที่เฉพาะเจาะจง

เมื่อเราทำให้ API ใช้งานได้และสมมติว่า API โฮสต์อยู่ที่ https://<somehost> เราสามารถเข้าถึงปลายทาง API ได้ดังนี้

https://<somehost>/inventory

ซึ่งจะแสดงรายการผลิตภัณฑ์ทั้งหมดตามระดับสินค้าคงคลังที่มี

https://<somehost>/inventory/{productid}

การดำเนินการนี้จะเป็นเพียงบันทึกเดียวพร้อมด้วยรหัสผลิตภัณฑ์และระดับสินค้าคงคลังที่มีอยู่สำหรับผลิตภัณฑ์นั้น

ข้อมูลการตอบกลับที่แสดงจะเป็นรูปแบบ JSON

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

ข้อมูลตัวอย่างและคำขอ/การตอบกลับ API

แอปพลิเคชันไม่ได้ขับเคลื่อนโดยฐานข้อมูลที่แบ็กเอนด์เพื่อทำให้สิ่งต่างๆ ง่ายขึ้น ซึ่งมีรหัสผลิตภัณฑ์ตัวอย่าง 3 รหัสและระดับสินค้าคงคลังที่มีขาย

รหัสผลิตภัณฑ์

ระดับสินค้าคงคลังในมือ

I-1

10

I-2

20

I-3

30

ตัวอย่างคำขอและการตอบกลับ API แสดงอยู่ด้านล่าง

คำขอ API

การตอบกลับจาก API

https://&lt;somehost&gt;/inventory

[ { &quot;I-1&quot;: 10, &quot;I-2&quot;: 20, &quot;I-3&quot;: 30 }]

https://&lt;somehost&gt;/inventory/I-1

{ &quot;productid&quot;: &quot;I-1&quot;, &quot;qty&quot;: 10}

https://&lt;somehost&gt;/inventory/I-2

{ &quot;productid&quot;: &quot;I-2&quot;, &quot;qty&quot;: 20}

https://&lt;somehost&gt;/inventory/I-200

{ &quot;productid&quot;: I-200, &quot;qty&quot;: -1}

โคลนที่เก็บ

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

จากคอนโซล GCP ให้คลิกไอคอน Cloud Shell บนแถบเครื่องมือด้านขวาบนดังนี้

bce75f34b2c53987.png

การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมนี้ควรใช้เวลาเพียงครู่เดียว เมื่อเสร็จแล้ว คุณจะเห็นข้อมูลต่อไปนี้

f6ef2b5f13479f3a.png

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

ตั้งค่า gcloud

ใน Cloud Shell ให้กำหนดรหัสโปรเจ็กต์และบันทึกเป็นตัวแปรของ PROJECT_ID

PROJECT_ID=[YOUR-PROJECT-ID]

gcloud config set project $PROJECT_ID

จากนั้นเรียกใช้คำสั่งต่อไปนี้

$ git clone https://github.com/rominirani/cloud-code-sample-repository.git

การดำเนินการนี้จะสร้างโฟลเดอร์ชื่อ cloud-code-sample-repository ในโฟลเดอร์นี้

(ไม่บังคับ) เรียกใช้แอปพลิเคชันบน Cloud Shell

คุณสามารถเรียกใช้แอปพลิเคชันในเครื่องได้โดยทำตามขั้นตอนต่อไปนี้

  1. จากเทอร์มินัล ให้ไปที่ API เวอร์ชัน Python โดยใช้คำสั่งต่อไปนี้

$ cd cloud-code-sample-repository

$ cd python-flask-api

  1. ป้อนคำสั่งต่อไปนี้ในเทอร์มินัล (ในขณะที่เขียน Cloud Shell จะมาพร้อมกับ Python 3.9.x ติดตั้งอยู่ และเราจะใช้เวอร์ชันเริ่มต้น หากวางแผนที่จะเรียกใช้ในเครื่องบนแล็ปท็อป คุณสามารถใช้ Python 3.8 ขึ้นไป) ดังนี้

$ python app.py

  1. คุณเรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มต้นเซิร์ฟเวอร์ Python ในเครื่องได้

1f798fbddfdc2c8e.png 46edf454cc70c5a6.png

คลิก "แสดงตัวอย่าง" บนพอร์ต 8080 5. หน้าต่างเบราว์เซอร์จะเปิดขึ้นมา คุณจะเห็นข้อผิดพลาด 404 ซึ่งไม่เป็นไร แก้ไข URL และเปลี่ยนให้มีแค่ /inventory หลังชื่อโฮสต์

เช่น ในเครื่องของฉันจะมีลักษณะดังนี้

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

ซึ่งจะแสดงรายการสินค้าคงคลังตามที่อธิบายไว้ก่อนหน้านี้

709d57ee2f0137e4.png

  1. คุณสามารถหยุดเซิร์ฟเวอร์ได้ในขั้นตอนนี้ โดยไปที่เทอร์มินัลและกด Ctrl-C

ทำให้แอปพลิเคชันใช้งานได้

ตอนนี้เราจะทำให้แอปพลิเคชัน API นี้ใช้งานได้ใน Cloud Run กระบวนการที่เกี่ยวข้องกับการใช้ไคลเอ็นต์บรรทัดคำสั่ง gcloud เพื่อเรียกใช้คำสั่งเพื่อทำให้โค้ดใช้งานได้ใน Cloud Run

ระบุคำสั่ง gcloud ต่อไปนี้จากเทอร์มินัล

$ gcloud run deploy --source .

บทความนี้ถามคำถามหลายข้อและกล่าวถึงประเด็นต่อไปนี้

  1. ชื่อบริการ (python-flask-api): ใช้ชื่อค่าเริ่มต้นนี้หรือเลือกบางอย่าง เช่น my-inventory-api
  2. API [run.googleapis.com] ไม่ได้เปิดใช้ในโปรเจ็กต์ [613162942481] ต้องการเปิดใช้แล้วลองอีกครั้งไหม (ซึ่งจะใช้เวลาสักครู่) (ใช่/ไม่ใช่) Y
  3. โปรดระบุภูมิภาค: เลือก 31 (us-west-1)
  4. API [artifactregistry.googleapis.com] ในโปรเจ็กต์ [613162942481] ต้องการเปิดใช้แล้วลองอีกครั้งไหม (ซึ่งจะใช้เวลาสักครู่) (ใช่/ไม่ใช่) Y
  5. การทำให้ใช้งานได้จากต้นทางต้องใช้ที่เก็บ Artifact Registry Docker เพื่อจัดเก็บคอนเทนเนอร์ที่สร้างขึ้น ระบบจะสร้างที่เก็บชื่อ [cloud-run-source-deploy] ในภูมิภาค [us-west1]
  6. คุณต้องการดำเนินการต่อหรือไม่ (ใช่/ไม่ใช่) Y
  7. อนุญาตการเรียกใช้ที่ไม่ผ่านการตรวจสอบสิทธิ์แก่ [my-inventory-api] (y/N) ไหม Y

ท้ายที่สุดแล้ว การดำเนินการนี้จะเริ่มต้นกระบวนการนำซอร์สโค้ดของคุณ สร้างคอนเทนเนอร์ พุชไปยัง Artifact Registry จากนั้นจึงทำให้บริการ Cloud Run + การแก้ไขใช้งานได้ คุณควรอดใจรอตามกระบวนการนี้ (อาจใช้เวลา 3-4 นาที) และคุณจะเห็นการดำเนินการเสร็จสมบูรณ์แล้วพร้อมกับแสดง URL ของบริการที่ปรากฏ

ตัวอย่างการเรียกใช้จะแสดงที่ด้านล่างนี้

87ba8dbf88e8cfa4.png

ทดสอบแอปพลิเคชัน

เมื่อเราทำให้แอปพลิเคชันใช้งานได้ใน Cloud Run แล้ว คุณจะเข้าถึงแอปพลิเคชัน API ได้ดังนี้

  1. จด URL ของบริการจากขั้นตอนก่อนหน้าไว้ เช่น รหัสจะแสดงเป็น https://my-inventory-api-bt2r5243dq-uw.a.run.app ในการตั้งค่า มาเรียกสิ่งนี้ว่า <SERVICE_URL>
  2. เปิดเบราว์เซอร์และเข้าถึง URL 3 รายการต่อไปนี้สำหรับปลายทาง API
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

ซึ่งควรตรงกับข้อกำหนดที่เราได้แจ้งไว้ในส่วนก่อนหน้านี้ โดยมีตัวอย่างคำขอและการตอบกลับ API

รับรายละเอียดบริการจาก Cloud Run

เราทำให้บริการ API ใช้งานได้กับ Cloud Run ซึ่งเป็นสภาพแวดล้อมการประมวลผลแบบ Serverless เราไปที่บริการ Cloud Run ผ่านคอนโซล Google Cloud ได้ทุกเมื่อ

ไปที่ Cloud Run จากเมนูหลัก การดำเนินการนี้จะแสดงรายการบริการที่คุณใช้ใน Cloud Run คุณจะเห็นบริการที่เพิ่งทำให้ใช้งานได้ คุณควรจะเห็นข้อมูลแบบนี้ ทั้งนี้ขึ้นอยู่กับชื่อที่คุณเลือกไว้:

2633965c4bc957cc.png

คลิกชื่อบริการเพื่อดูรายละเอียด รายละเอียดตัวอย่างแสดงอยู่ด้านล่าง

33042ae64322ce07.png

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

มาเริ่มกันที่ Google Cloud Operations Suite เลย

4 สร้างหัวข้อ Pub/Sub เพื่อรับการแจ้งเตือน

หากต้องการสร้างหัวข้อ Pub/Sub โปรดทำตามขั้นตอนต่อไปนี้ใน Google Cloud Console

  1. ค้นหา Pub/Sub ในช่องค้นหา และไปที่ Pub/Sub 935028bd8f6328ef.png
  2. หากคุณยังไม่ได้อยู่ที่แท็บนี้ ให้คลิกแท็บหัวข้อ 7fd8bf91386a88fd.png
  3. คลิกปุ่มสร้างหัวข้อ cd9d197f9023c41b.png
  4. ป้อนชื่อหัวข้อ

173f313b4a3c4934.png

  1. คลิกปุ่มสร้าง ca9a02477da21a44.png
  2. คัดลอกชื่อหัวข้อโดยใช้ปุ่มไอคอนคัดลอก เนื่องจากคุณต้องใช้สำหรับส่วนถัดไป

20848252ee83df93.png

5 สร้างการตรวจสอบระยะเวลาทำงาน

วิธีสร้างการตรวจสอบระยะเวลาทำงานสำหรับแอปพลิเคชัน Google Cloud Run

  1. ไปที่คอนโซล Google Cloud Platform
  2. คลิกแท็บการตรวจสอบ
  3. คลิกแท็บการตรวจสอบระยะเวลาทำงาน
  4. ที่บริเวณด้านบนของหน้า ให้คลิกปุ่มสร้างการตรวจสอบระยะเวลาทำงาน

96561799ca500777.png

  1. โดยให้ใช้ค่าต่อไปนี้
  2. โปรโตคอล : HTTPS
  3. ประเภททรัพยากร : URL
  4. ชื่อโฮสต์ : ป้อนส่วน URL ของบริการ Cloud Run โดยไม่มี https ตัวอย่างแสดงอยู่บนหน้าจอด้านล่าง หากไม่แน่ใจว่า URL ของบริการคืออะไร ให้ไปที่ Cloud Run จากคอนโซล Google Cloud หลัก แล้วไปที่รายละเอียดของบริการ Cloud Run ตามที่อธิบายไว้ก่อนหน้านี้เพื่อรับ URL ของบริการ
  5. เส้นทาง : สุขภาพ
  6. ตรวจสอบความถี่: 1 นาที

342865c6d921ff41.png

  1. คลิกต่อไป
  2. เปิดสวิตช์เปิดใช้การจับคู่เนื้อหา
  3. ป้อน "All Izz Well" ในส่วนเนื้อหาการตอบกลับ สตริงนี้มีในแอปพลิเคชันแล้วเมื่อส่งคำตอบที่สมบูรณ์
  4. Keep

6c9ad336b5479478.png

  1. ตั้งค่าโค้ดตอบกลับ HTTP ที่ยอมรับได้เป็นคลาสของโค้ดตอบกลับและ 2xx เป็นคลาสโค้ดตอบกลับเพียงรายการเดียว ด้วยวิธีนี้ เฉพาะโค้ดตอบกลับที่มี 2xx เท่านั้นที่จะได้รับการประเมินสำหรับสตริงนี้ และระบบอื่นๆ จะนับเป็นการตรวจสอบที่ล้มเหลวโดยอัตโนมัติ 5a75d8a9e8a11dd4.png
  2. คลิกต่อไป
  3. เลือกหัวข้อ Cloud Pub/Sub เป็นช่องทางการแจ้งเตือน แล้วคลิกตกลง

d00db9f6ac56d07c.png

  1. คลิกต่อไป
  2. เพิ่มชื่อที่จำง่าย d639135da780cce3.png
  3. คลิกปุ่มทดสอบ

968753a66ed43a75.png

  1. ตรวจสอบและคลิกปุ่มสร้างเมื่อพร้อมแล้ว 72e5e2081a36d902.png

ระบบจะสร้างการตรวจสอบระยะเวลาทำงานและจะเริ่มตรวจสอบแอปพลิเคชัน Cloud Run ของคุณ คุณสามารถดูสถานะการตรวจสอบระยะเวลาทำงานได้ในแท็บการตรวจสอบระยะเวลาทำงาน

3fd026b0c07ef4ec.png

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

ขอแสดงความยินดี คุณได้กำหนดค่าการตรวจสอบระยะเวลาทำงานให้ส่งการแจ้งเตือนไปยัง Pub/Sub เรียบร้อยแล้ว