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 ของระบบคลาวด์ การใช้งาน Codelab นี้น่าจะไม่มีค่าใช้จ่ายใดๆ หากมี หากต้องการปิดทรัพยากรเพื่อไม่ให้มีการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่คุณสร้างหรือลบทั้งโปรเจ็กต์ได้ ผู้ใช้ใหม่ของ Google Cloud จะมีสิทธิ์เข้าร่วมโปรแกรมทดลองใช้ฟรี$300 USD
เริ่มต้น Cloud Shell
แม้ว่าคุณจะดำเนินการ Google Cloud จากระยะไกลได้จากแล็ปท็อป แต่คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมแบบบรรทัดคำสั่งที่ทำงานในระบบคลาวด์ใน Codelab นี้
จากคอนโซล Google Cloud ให้คลิกไอคอน 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 ได้โดยทำดังนี้
สถานะช่องจะระบุสถานะของช่อง โดยอาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้
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 ให้ป้อนชื่อเต็มและโทเค็นการเปิดใช้งาน ดังนี้
ตอนนี้คุณควรเห็นช่องทางนั้นในรายการช่องทาง และหลังจากนั้น 2-3 วินาที ก็คุณจะเห็นช่องทางนั้นเริ่มทํางานใน Google Cloud Console ด้วย
ตอนนี้คุณก็พร้อมใช้ช่องแล้ว
5. สร้างเวิร์กโฟลว์
คุณต้องมีปลายทางใน Google Cloud เพื่อรับเหตุการณ์จากผู้ให้บริการ Eventarc รองรับปลายทางเหตุการณ์จำนวนหนึ่ง เช่น Cloud Run, เวิร์กโฟลว์ และบริการ 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 ก็ได้
เพื่อความง่าย ให้ใช้บัญชีบริการประมวลผลเริ่มต้นและมอบบทบาท 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 จบแล้ว คุณสามารถไปที่ Codelab ที่ 2 เพื่อดูวิธีตอบสนองต่อการแจ้งเตือนการตรวจสอบของ Datadog ด้วย Workflows
สรุปประเด็นที่ได้พูดถึง
- วิธีค้นหาผู้ให้บริการ Datadog
- วิธีตั้งค่าช่องไปยังผู้ให้บริการ Datadog
- วิธีสร้างเวิร์กโฟลว์เพื่อบันทึกเหตุการณ์
- วิธีสร้างทริกเกอร์ Eventarc ด้วยแชแนล
- วิธีสร้างจอภาพ Datadog
- วิธีทดสอบจอภาพ Datadog, ทริกเกอร์ Eventarc และเวิร์กโฟลว์