1. บทนำ

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



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

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

เครื่องเสมือนนี้มาพร้อมเครื่องมือพัฒนาซอฟต์แวร์ทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหลักแบบถาวรขนาด 5 GB และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดใน Codelab นี้ได้ภายในเบราว์เซอร์ คุณไม่จำเป็นต้องติดตั้งอะไร
ตั้งค่า gcloud
ใน Cloud Shell ให้ตั้งค่ารหัสโปรเจ็กต์และบันทึกเป็นตัวแปร PROJECT_ID
นอกจากนี้ ให้ตั้งค่าตัวแปร REGION เป็น us-central1 นี่คือภูมิภาคที่คุณจะสร้างทรัพยากรในภายหลัง
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
เปิดใช้ API
เปิดใช้บริการที่จำเป็นทั้งหมด
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. ค้นหาผู้ให้บริการ Datadog
ผู้ให้บริการ Eventarc คือบริการหรือเอนทิตีที่สามารถส่งเหตุการณ์ไปยัง Google Cloud ได้โดยตรง จากนั้นระบบจะกำหนดเส้นทางไปยังโปรเจ็กต์ของคุณ ผู้ให้บริการบุคคลที่สาม เช่น Datadog คือผู้ให้บริการที่ไม่ใช่ Google Cloud ซึ่งผสานรวมกับ Google Cloud ผ่าน Eventarc
ใน Cloud Shell ให้เรียกใช้คำสั่งต่อไปนี้เพื่อดูรายชื่อผู้ให้บริการ Google Cloud และผู้ให้บริการบุคคลที่สาม
gcloud eventarc providers list
รายการนี้แสดงผู้ให้บริการ Google Cloud และบุคคลที่สาม รวมถึงสถานที่ที่ให้บริการ
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
คุณจำกัดรายการให้แคบลงเหลือเฉพาะผู้ให้บริการบุคคลที่สามได้ด้วยคำสั่งต่อไปนี้
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
คุณควรเห็น Datadog ในรายการ
NAME: datadog LOCATION: us-central1
นอกจากนี้ คุณยังอธิบายผู้ให้บริการ Datadog เพื่อดูเหตุการณ์ที่รองรับได้ด้วย
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. ตั้งค่าช่อง
คุณต้องตั้งค่าช่องเพื่อผสานรวมโปรเจ็กต์กับผู้ให้บริการ ซึ่งเกี่ยวข้องกับการสร้างช่อง การดึงรายละเอียดช่อง และการส่งรายละเอียดเหล่านั้นไปยังผู้ให้บริการ เมื่อผู้ให้บริการเริ่มต้นการเชื่อมต่อกับช่องแล้ว ผู้ให้บริการจะเริ่มส่งเหตุการณ์ไปยังโปรเจ็กต์ของคุณได้
สร้างช่อง
คุณสร้างแชแนลสำหรับผู้ให้บริการ Datadog ได้โดยใช้ gcloud ดังนี้
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
นอกจากนี้ คุณยังสร้างได้จากส่วนแชแนลของหน้า Eventarc ใน Google Cloud Console โดยทำดังนี้

ดึงข้อมูลรายละเอียดช่อง
เมื่อสร้างช่องแล้ว ให้ดึงข้อมูลรายละเอียดของช่องจาก gcloud
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
เอาต์พุตควรมีลักษณะคล้ายกับเอาต์พุตต่อไปนี้
activationToken: so5g4Kdasda7y2MSasdaGn8njB2 createTime: '2022-03-09T09:53:42.428978603Z' name: projects/project-id/locations/us-central1/channels/datadog-channel provider: projects/project-id/locations/us-central1/providers/datadog pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077 state: PENDING uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
ในทำนองเดียวกัน คุณสามารถดูแชแนลจาก Google Cloud Console ได้โดยทำดังนี้

สถานะของช่องจะระบุสถานะของช่อง ซึ่งอาจเป็นค่าใดค่าหนึ่งต่อไปนี้
PENDING—สร้างช่องเรียบร้อยแล้วและมีโทเค็นการเปิดใช้งานพร้อมให้ใช้เพื่อสร้างการเชื่อมต่อกับผู้ให้บริการ หากต้องการเปลี่ยนสถานะของช่องจากPENDINGเป็นACTIVEคุณต้องให้โทเค็นแก่ผู้ให้บริการและใช้โทเค็นเพื่อเชื่อมต่อช่องภายใน 24 ชั่วโมงหลังจากสร้างช่องACTIVE- เชื่อมต่อช่องกับผู้ให้บริการเรียบร้อยแล้วACTIVEช่องทางพร้อมรับและกำหนดเส้นทางเหตุการณ์จากผู้ให้บริการINACTIVE—ช่องจะรับกิจกรรมหรือเปิดใช้งานอีกครั้งไม่ได้ ผู้ให้บริการไม่ได้เชื่อมต่อกับช่องนี้ หรือโทเค็นการเปิดใช้งานช่องหมดอายุแล้วและผู้ให้บริการไม่ได้เชื่อมต่อ หากต้องการสร้างการเชื่อมต่อกับผู้ให้บริการอีกครั้ง คุณต้องสร้างช่องใหม่สำหรับผู้ให้บริการ
โทเค็นการเปิดใช้งานเป็นโทเค็นแบบใช้ครั้งเดียวที่มีการจำกัดเวลา ซึ่งใช้เพื่อสร้างการเชื่อมต่อระหว่างผู้ให้บริการกับโปรเจ็กต์ของผู้ติดตาม เฉพาะผู้ให้บริการที่เฉพาะเจาะจงซึ่งเลือกไว้ในระหว่างกระบวนการสร้างช่องเท่านั้นที่จะใช้โทเค็นได้ โทเค็นมีอายุ 24 ชั่วโมงหลังจากสร้างช่อง หลังจากผ่านไป 24 ชั่วโมง ช่องจะกลายเป็นINACTIVE
ส่งรายละเอียดช่องให้ผู้ให้บริการ
คุณต้องส่งรายละเอียดช่องต่อไปนี้ให้ผู้ให้บริการ Datadog
- ชื่อช่อง (เช่น
projects/project-id/locations/us-central1/channels/datadog-channel) - โทเค็นการเปิดใช้งาน (เช่น
so5g4Kdasda7y2MSasdaGn8njB2)
เข้าสู่ระบบ Datadog ไปที่หน้าการผสานรวม และตรวจสอบว่าได้ติดตั้งการผสานรวม Google Eventarc แล้ว

ในส่วนการกำหนดค่าของ Google Eventarc ให้ป้อนชื่อช่องแบบเต็มและโทเค็นการเปิดใช้งาน

ตอนนี้คุณควรเห็นช่องในรายการช่อง และหลังจากนั้นไม่กี่วินาที คุณควรเห็นช่องเปิดใช้งานใน Google Cloud Console ด้วย

ตอนนี้คุณก็พร้อมใช้ช่องแล้ว
5. สร้างเวิร์กโฟลว์
คุณต้องมีปลายทางใน Google Cloud เพื่อรับเหตุการณ์จากผู้ให้บริการ Eventarc รองรับปลายทางของเหตุการณ์หลายรายการ เช่น Cloud Run, Workflows, บริการ Kubernetes ในกรณีนี้ ให้ติดตั้งใช้งานเวิร์กโฟลว์เพื่อบันทึกกิจกรรมที่ได้รับ
สร้างไฟล์ workflow-datadog1.yaml ที่มีเนื้อหาต่อไปนี้
main:
params: [event]
steps:
- logStep:
call: sys.log
args:
data: ${event}
โปรดทราบว่าเวิร์กโฟลว์ได้รับเหตุการณ์เป็นพารามิเตอร์ เหตุการณ์นี้จะมาจากการตรวจสอบ Datadog ผ่าน Eventarc เมื่อได้รับเหตุการณ์แล้ว เวิร์กโฟลว์จะบันทึกเหตุการณ์ที่ได้รับเท่านั้น
ทําให้เวิร์กโฟลว์ใช้งานได้
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
เวิร์กโฟลว์ได้รับการติดตั้งใช้งานแล้ว แต่ยังไม่ได้ทำงาน โดยจะเรียกใช้โดยทริกเกอร์ Eventarc เมื่อได้รับข้อความแจ้ง Datadog
6. สร้างทริกเกอร์ Eventarc
ตอนนี้คุณพร้อมที่จะเชื่อมต่อเหตุการณ์จากผู้ให้บริการ Datadog กับเวิร์กโฟลว์ด้วยทริกเกอร์ Eventarc แล้ว
กำหนดค่าบัญชีบริการ
คุณต้องมีบัญชีบริการที่มีบทบาท eventarc.eventReceiver เมื่อสร้างทริกเกอร์ คุณจะสร้างบัญชีบริการเฉพาะหรือใช้บัญชีบริการ Compute เริ่มต้นก็ได้
เพื่อความสะดวก ให้ใช้บัญชีบริการ Compute เริ่มต้นและมอบบทบาท eventarc.eventReceiver
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role roles/eventarc.eventReceiver
สร้างทริกเกอร์
สร้างทริกเกอร์ด้วยแชแนล Datadog, ประเภทเหตุการณ์ และปลายทางเวิร์กโฟลว์
gcloud eventarc triggers create datadog-trigger1 \ --location $REGION \ --destination-workflow $WORKFLOW_NAME \ --destination-workflow-location $REGION \ --channel $CHANNEL_NAME \ --event-filters type=datadog.v1.alert \ --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com
คุณสามารถแสดงรายการทริกเกอร์เพื่อดูว่าทริกเกอร์ที่สร้างขึ้นใหม่ทำงานอยู่หรือไม่ได้โดยทำดังนี้
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. สร้างการตรวจสอบ Datadog
ตอนนี้คุณจะสร้างการตรวจสอบ Datadog และเชื่อมต่อกับการตรวจสอบ Eventarc
ซึ่งจะเป็นการตรวจสอบประเภท Hello World ที่มีค่าเริ่มต้น คุณจะต้องทริกเกอร์ด้วยตนเองเพื่อสร้างการแจ้งเตือนการตรวจสอบ ซึ่งจะสร้างเหตุการณ์ Eventarc ใน Google Cloud
หากต้องการสร้างการตรวจสอบใน Datadog ให้เข้าสู่ระบบ Datadog วางเมาส์เหนือ Monitors ในเมนูหลัก แล้วคลิก New Monitor ในเมนูย่อย จอภาพมีหลายประเภท เลือกMetricประเภทการตรวจสอบ
ในหน้า New Monitor ให้ใช้ค่าเริ่มต้นสำหรับขั้นตอนที่ 1 และ 2
- ในขั้นตอนที่ 3 ให้ตั้งค่า
Alert thresholdเป็น 1 - ในขั้นตอนที่ 4 ให้ตั้งค่า
Test monitor for Eventarcเป็นชื่อจอภาพและตั้งค่าNotify your teamเป็น@eventarc_<your-project-id>_<your-region>_<your-channel-name>
เปิดหน้าจอไว้สำหรับขั้นตอนถัดไปที่คุณจะทดสอบจอภาพ
8. ทดสอบการตรวจสอบและทริกเกอร์
หากต้องการทดสอบการตรวจสอบ Datadog และทริกเกอร์ Eventarc คุณจะต้องทริกเกอร์การตรวจสอบด้วยตนเอง
ที่ด้านล่างของหน้าการสร้างการตรวจสอบ ให้คลิกปุ่ม Test Notifications

จากนั้นคลิกปุ่ม Run Test

ซึ่งควรจำลองการเปลี่ยนสถานะในจอภาพและทริกเกอร์เหตุการณ์ Eventarc
ตรวจสอบworkflow-datadog1เวิร์กโฟลว์ คุณควรเห็นว่ามีการดำเนินการใหม่ดังนี้

ตรวจสอบรายละเอียดของการดำเนินการ คุณควรเห็นประเภทเหตุการณ์ Datadog datadog.v1.alert ที่สร้างจากการแจ้งเตือนการตรวจสอบในอินพุตของเวิร์กโฟลว์และในบันทึกด้วย

9. ขอแสดงความยินดี
ยินดีด้วย คุณทำ Codelab เสร็จแล้ว คุณสามารถไปที่โค้ดแล็บที่ 2 เพื่อดูวิธีตอบสนองต่อการแจ้งเตือนการตรวจสอบของ Datadog ด้วยเวิร์กโฟลว์
สิ่งที่เราได้พูดถึงไปแล้ว
- วิธีค้นหาผู้ให้บริการ Datadog
- วิธีตั้งค่าแชแนลไปยังผู้ให้บริการ Datadog
- วิธีสร้างเวิร์กโฟลว์เพื่อบันทึกเหตุการณ์
- วิธีสร้างทริกเกอร์ Eventarc ด้วยแชแนล
- วิธีสร้างการตรวจสอบ Datadog
- วิธีทดสอบการตรวจสอบ Datadog, ทริกเกอร์ Eventarc และเวิร์กโฟลว์