การผสานรวมกับบริการภายนอก
เชื่อมต่อเวิร์กโฟลว์ GitHub Actions กับเครื่องมือติดตาม การบันทึกข้อมูล และการจัดการเหตุการณ์จากผู้ให้บริการภายนอก
การผสานรวมกับบริการภายนอก เป็นบทเรียน CI/CD with GitHub Actions & DevOps Pipelines ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน CI/CD with GitHub Actions & DevOps Pipelines และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส CI/CD with GitHub Actions & DevOps Pipelines มีบทเรียนทั้งหมด 4 บทเรียน
เชื่อมต่อไปป์ไลน์ของคุณ
ยินดีต้อนรับสู่การผสาน GitHub Actions กับบริการภายนอก การพัฒนาซอฟต์แวร์สมัยใหม่อาศัยเครื่องมือจำนวนมากที่ทำงานร่วมกัน
การเชื่อมต่อไปป์ไลน์ CI/CD ของคุณกับเครื่องมือเหล่านี้ช่วยทำให้การสื่อสารเป็นอัตโนมัติ รวมข้อมูลไว้ที่ศูนย์กลาง และปรับปรุงประสิทธิภาพโดยรวมของทีม
- การแจ้งเตือน: รับการแจ้งเตือนใน Slack หรือ Teams
- การติดตามปัญหา: สร้างรายการปัญหาใน JIRA โดยอัตโนมัติ
- การตรวจสอบ: ส่งข้อมูลไปยัง Datadog หรือ Splunk
เว็บฮุก: ลิงก์พื้นฐาน
บริการภายนอกจำนวนมากใช้ เว็บฮุก เป็นวิธีหลักในการรับข้อมูล ลองนึกภาพเว็บฮุกว่าเป็นข้อความอัตโนมัติที่ส่งจากแอปพลิเคชันหนึ่งไปยังอีกแอปพลิเคชันหนึ่งเมื่อเกิดเหตุการณ์ที่กำหนด
เมื่อกระบวนการทำงานของ GitHub Actions ทำงานเสร็จ ล้มเหลว หรือดำเนินขั้นตอนใดขั้นตอนหนึ่ง ระบบสามารถส่งคำขอ POST พร้อมข้อมูลไปยัง URL เว็บฮุกที่บริการภายนอกระบุไว้ ซึ่งจะเรียกให้บริการนั้นดำเนินการ
Slack: การแจ้งเตือนแบบเรียลไทม์
การได้รับการแจ้งเตือนสถานะของกระบวนการทำงานแบบเรียลไทม์มีความสำคัญอย่างยิ่ง Slack เป็นเครื่องมือที่ใช้กันอย่างแพร่หลายสำหรับงานนี้
หากต้องการส่งข้อความไปยัง Slack จาก GitHub Actions โดยทั่วไปคุณจะต้องมี URL เว็บฮุกรับเข้าของ Slack คุณสามารถสร้าง URL นี้ได้จากการตั้งค่าพื้นที่ทำงาน Slack (เช่น ในส่วน 'แอปและการผสานการทำงาน')
สำคัญ: เก็บ URL ที่มีความละเอียดอ่อนนี้ไว้เป็นข้อมูลลับของ GitHub เสมอ และอย่าฝัง URL นี้ไว้ในโค้ดโดยตรง
กระบวนการทำงานสำหรับการแจ้งเตือน Slack
ต่อไปนี้คือตัวอย่างวิธีส่งการแจ้งเตือน Slack พื้นฐานโดยใช้คำสั่ง curl อย่างง่ายภายในกระบวนการทำงาน ตัวอย่างนี้ใช้ URL เว็บฮุกที่จัดเก็บไว้ในข้อมูลลับชื่อ SLACK_WEBHOOK_URL
ตัวอย่างนี้จะแจ้งเตือนคุณทุกครั้งที่มีการส่งโค้ดไปยัง main
name: Slack Notification Demo
on:
push:
branches:
- main
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Send Slack Notification
run: |
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"GitHub Actions workflow *${{ github.workflow }}* for commit `{{ github.sha }}` by _${{ github.actor }}_ on branch `${{ github.ref_name }}` has completed!"}' \
${{ secrets.SLACK_WEBHOOK_URL }}ทำให้ง่ายขึ้นด้วยการดำเนินการจาก Marketplace
แม้ curl จะใช้งานได้ แต่การผสานรวมจำนวนมากทำได้ง่ายขึ้นด้วย การดำเนินการสำเร็จรูปจาก GitHub Marketplace การดำเนินการเหล่านี้จะรวมตรรกะสำหรับติดต่อกับบริการเฉพาะไว้ให้ ทำให้กระบวนการทำงานของคุณเป็นระเบียบและอ่านง่ายขึ้น
คุณสามารถค้นหาการดำเนินการที่เชื่อมต่อกับบริการที่ต้องการได้ใน GitHub Marketplace ตัวอย่างเช่น มีการดำเนินการมากมายสำหรับ Slack, JIRA, Microsoft Teams และบริการอื่น ๆ
JIRA: ทำให้การติดตามปัญหาเป็นอัตโนมัติ
การผสานรวมกับระบบติดตามปัญหาอย่าง JIRA ช่วยทำให้งานต่าง ๆ เป็นอัตโนมัติ เช่น:
- สร้างรายการปัญหาข้อบกพร่องใหม่เมื่อกระบวนการทำงานล้มเหลว
- เพิ่มความคิดเห็นในปัญหาที่มีอยู่ตามเหตุการณ์ของคำขอดึงโค้ด
- อัปเดตสถานะของปัญหาเมื่อโค้ดดำเนินไปตามไปป์ไลน์
วิธีนี้ช่วยให้ทีมพัฒนาและทีมปฏิบัติการทำงานสอดคล้องกันโดยไม่ต้องดำเนินการด้วยตนเอง
กระบวนการทำงานสำหรับปัญหาใน JIRA
ตัวอย่างนี้ใช้การดำเนินการยอดนิยมจาก Marketplace เพื่อสร้างปัญหาใน JIRA หากกระบวนการทำงานที่กำหนด (เช่น กระบวนการทำงาน CI ของคุณ) ล้มเหลว โปรดสังเกตว่าตัวอย่างนี้ใช้ข้อมูลลับของ GitHub สำหรับการตรวจสอบสิทธิ์
ทริกเกอร์ workflow_run ช่วยให้กระบวนการทำงานนี้ตอบสนองต่อการทำงานเสร็จสิ้นของกระบวนการทำงานอื่น
name: JIRA Issue on Failed Workflow
on:
workflow_run:
workflows: ["Your CI Workflow Name Here"]
types:
- completed
jobs:
create_issue:
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
runs-on: ubuntu-latest
steps:
- name: Create JIRA Bug Ticket
uses: atlassian/github-jira-action@v2.1.0
with:
jira-base-url: ${{ secrets.JIRA_BASE_URL }}
jira-user-email: ${{ secrets.JIRA_USER_EMAIL }}
jira-api-token: ${{ secrets.JIRA_API_TOKEN }}
project: 'DEV'
issue-type: 'Bug'
summary: 'Workflow failed: ${{ github.event.workflow_run.workflow_name }}'
description: 'Workflow run URL: ${{ github.event.workflow_run.html_url }}\nFailed commit: ${{ github.event.workflow_run.head_sha }}'เชื่อมต่อกับการตรวจสอบและบันทึกการทำงาน
นอกเหนือจากการแจ้งเตือนและการติดตามปัญหาแล้ว คุณยังสามารถผสานรวมกับเครื่องมือตรวจสอบและบันทึกการทำงานขั้นสูง เช่น Datadog, Splunk, New Relic หรือเครื่องมือรวบรวมบันทึกแบบกำหนดเอง
- ตัวชี้วัด: ส่งตัวชี้วัดแบบกำหนดเองเกี่ยวกับเวลาสร้างหรือผลการทดสอบ
- บันทึกการทำงาน: ส่งต่อบันทึกการทำงานของกระบวนการเพื่อวิเคราะห์ที่ศูนย์กลาง
- การติดตามร่องรอย: เชื่อมโยงเหตุการณ์การนำไปใช้งานจริงเข้ากับประสิทธิภาพของแอปพลิเคชัน
การผสานรวมเหล่านี้มักต้องใช้ API เฉพาะหรือการดำเนินการจาก Marketplace ที่ผู้จำหน่ายเครื่องมือจัดเตรียมไว้
รักษาความปลอดภัยให้การผสานรวมของคุณ
เมื่อผสานรวมกับบริการภายนอก ความปลอดภัยถือเป็นสิ่งสำคัญสูงสุด คุณมักต้องจัดการกับคีย์ API โทเคน และ URL เว็บฮุกที่ให้สิทธิ์เข้าถึงบัญชีภายนอกของคุณ
ใช้ ข้อมูลลับของ GitHub เพื่อจัดเก็บข้อมูลรับรองที่มีความละเอียดอ่อนเหล่านี้เสมอ อย่าฝังข้อมูลเหล่านี้ไว้โดยตรงในไฟล์กระบวนการทำงาน วิธีนี้จะช่วยป้องกันการเปิดเผยโดยไม่ตั้งใจและรักษาข้อมูลรับรองของคุณให้ปลอดภัย
ตรวจสอบอย่างรวดเร็ว: ความปลอดภัยในการผสานรวม
คุณต้องเชื่อมต่อกระบวนการทำงานของ GitHub Actions กับระบบจัดการเหตุการณ์ภายนอกโดยใช้คีย์ API วิธีใดปลอดภัยและแนะนำมากที่สุดสำหรับจัดการคีย์ API นี้ในกระบวนการทำงานของคุณ
ทบทวน: กระบวนการทำงานที่ผสานรวม
คุณได้เรียนรู้วิธีผสานกระบวนการทำงานของ GitHub Actions เข้ากับบริการภายนอกต่าง ๆ แล้ว
- เว็บฮุก เป็นกลไกที่ใช้กันทั่วไปสำหรับการเชื่อมต่อเหล่านี้
- Slack และ JIRA เป็นตัวอย่างยอดนิยมสำหรับการแจ้งเตือนและการติดตามปัญหา
- การดำเนินการจาก GitHub Marketplace ช่วยลดความซับซ้อนของการผสานรวมที่ซับซ้อน
- ใช้ ข้อมูลลับของ GitHub เพื่อจัดการข้อมูลรับรองที่มีความละเอียดอ่อน เช่น คีย์ API และ URL เว็บฮุกอย่างปลอดภัยเสมอ
การผสานรวมเหล่านี้ทำให้ไปป์ไลน์ CI/CD ของคุณมีประสิทธิภาพมากขึ้น และเชื่อมต่อกับระบบนิเวศที่กว้างขึ้นของทีมได้ดียิ่งขึ้น
คำถามที่พบบ่อย
บทเรียน “การผสานรวมกับบริการภายนอก” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การผสานรวมกับบริการภายนอก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส CI/CD with GitHub Actions & DevOps Pipelines ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CI/CD with GitHub Actions & DevOps Pipelines มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การผสานรวมกับบริการภายนอก”
เชื่อมต่อเวิร์กโฟลว์ GitHub Actions กับเครื่องมือติดตาม การบันทึกข้อมูล และการจัดการเหตุการณ์จากผู้ให้บริการภายนอก คุณปฏิบัติ CI/CD with GitHub Actions & DevOps Pipelines ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน CI/CD with GitHub Actions & DevOps Pipelines หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน CI/CD with GitHub Actions & DevOps Pipelines บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การผสานรวมกับบริการภายนอก” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน CI/CD with GitHub Actions & DevOps Pipelines นี้ได้ไหม
ได้ บทเรียน CI/CD with GitHub Actions & DevOps Pipelines ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- กลยุทธ์การติดตามไปป์ไลน์
- การผสานรวมกับบริการภายนอก
- การตั้งค่าการแจ้งเตือน
- การบันทึกแบบมีโครงสร้างและการติดตามแบบกระจาย