0Pricing
DevOps Bootcamp · บทเรียน

การผสานรวมกับบริการภายนอก

เชื่อมต่อเวิร์กโฟลว์ GitHub Actions กับเครื่องมือติดตาม การบันทึกข้อมูล และการจัดการเหตุการณ์จากผู้ให้บริการภายนอก

การผสานรวมกับบริการภายนอก เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 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) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การผสานรวมกับบริการภายนอก”

เชื่อมต่อเวิร์กโฟลว์ GitHub Actions กับเครื่องมือติดตาม การบันทึกข้อมูล และการจัดการเหตุการณ์จากผู้ให้บริการภายนอก คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การผสานรวมกับบริการภายนอก” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. กลยุทธ์การติดตามไปป์ไลน์
  2. การผสานรวมกับบริการภายนอก
  3. การตั้งค่าการแจ้งเตือน
  4. การบันทึกแบบมีโครงสร้างและการติดตามแบบกระจาย
← กลับไปที่ DevOps Bootcamp