기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EventBridge와 AWS DevOps 에이전트 통합
조사 및 완화 수명 주기 동안 발생하는 이벤트를 사용하여 이벤트 기반 애플리케이션과 AWS DevOps 에이전트를 통합할 수 있습니다. AWS DevOps 에이전트는 조사 또는 완화 상태가 변경될 때 Amazon EventBridge에 이벤트를 전송합니다. 그런 다음 이러한 이벤트를 기반으로 조치를 취하는 EventBridge 규칙을 생성할 수 있습니다.
예를 들어 다음 작업을 수행하는 규칙을 생성할 수 있습니다.
조사가 완료되면 AWS Lambda 함수를 호출하여 조사 결과를 처리합니다.
조사가 실패하거나 시간이 초과되면 Amazon SNS 알림을 보냅니다.
새 조사가 생성되면 티켓팅 시스템을 업데이트합니다.
완화 작업이 완료되면 AWS Step Functions 워크플로를 시작합니다.
EventBridge가 AWS DevOps 에이전트 이벤트를 라우팅하는 방법
AWS DevOps Agent는 EventBridge 기본 이벤트 버스로 이벤트를 전송합니다. 그런 다음 EventBridge는 생성한 규칙을 기준으로 이벤트를 평가합니다. 이벤트가 규칙의 이벤트 패턴과 일치하면 EventBridge는 이벤트를 지정된 대상으로 보냅니다.
다음 다이어그램은 EventBridge가 AWS DevOps 에이전트 이벤트를 라우팅하는 방법을 보여줍니다.
AWS DevOps Agent는 조사 또는 완화 수명 주기 상태가 변경될 때 EventBridge 기본 이벤트 버스로 이벤트를 전송합니다.
EventBridge는 생성한 규칙을 기준으로 이벤트를 평가합니다.
이벤트가 규칙의 이벤트 패턴과 일치하면 EventBridge는 규칙에 지정된 대상으로 이벤트를 보냅니다.
AWS DevOps 에이전트 이벤트
AWS DevOps Agent는 다음 이벤트를 EventBridge로 전송합니다. 모든 이벤트는 소스를 사용합니다aws.aidevops.
AWS DevOps Agent는 조사의 완화 단계를 포함하여 조사를 위해 이러한 이벤트를 내보냅니다. 인시던트 방지 평가 및 사용자 지정 에이전트 호출과 같은 다른 종류의 에이전트 작업은 이러한 이벤트를 내보내지 않습니다.
각 이벤트의 time 필드는 EventBridge가 이벤트를 수신한 시간이 아니라 조사 또는 완화가 마지막으로 업데이트된 시간입니다. 값이 없는 필드는 로 설정detail되지 않고에서 생략됩니다null.
지원되는 조사 이벤트
| detail-type | 설명 |
|---|---|
Investigation Created |
에이전트 공간에 조사가 생성되었습니다. |
Investigation Priority Updated |
조사의 우선 순위가 변경되었습니다. |
Investigation In Progress |
조사가 활성 분석을 시작했습니다. |
Investigation Completed |
조사 결과가 성공적으로 완료되었습니다. |
Investigation Failed |
조사에서 오류가 발생하여 완료할 수 없습니다. |
Investigation Timed Out |
조사가 허용되는 최대 기간을 초과했습니다. |
Investigation Cancelled |
완료 전에 조사가 취소되었습니다. |
Investigation Pending Triage |
조사는 활성 분석이 시작되기 전에 분류를 기다리고 있습니다. |
Investigation Linked |
조사가 관련 인시던트 또는 티켓과 연결되었습니다. |
Investigation Skipped |
스킬에 정의된 건너뛰기 기준과 일치하여 조사를 건너뛰었습니다. 이벤트에는 조사를 건너뛴 이유가 포함되지 않습니다. |
지원되는 완화 이벤트
| detail-type | 설명 |
|---|---|
Mitigation In Progress |
완화 작업이 시작되었습니다. |
Mitigation Completed |
완화 작업이 성공적으로 완료되었습니다. |
Mitigation Failed |
완화 작업에서 오류가 발생하여 완료할 수 없습니다. |
Mitigation Timed Out |
완화 작업이 최대 허용 기간을 초과했습니다. |
Mitigation Cancelled |
완료 전에 완화 작업이 취소되었습니다. |
자세한 필드 설명 및 예제 이벤트는 섹션을 참조하세요AWS DevOps 에이전트 이벤트 세부 정보 참조.
AWS DevOps 에이전트 이벤트와 일치하는 이벤트 패턴 생성
EventBridge 규칙은 이벤트 패턴을 사용하여 이벤트를 선택하고 대상으로 라우팅합니다. 이벤트 패턴은 처리하는 이벤트의 구조와 일치합니다. 이벤트 필드를 기반으로 이벤트 패턴을 생성하여 filter AWS DevOps 에이전트 이벤트를 필터링합니다.
다음 예제에서는 일반적인 사용 사례에 대한 이벤트 패턴을 보여줍니다.
all AWS DevOps 에이전트 이벤트 일치
다음 이벤트 패턴은 AWS DevOps 에이전트의 모든 이벤트와 일치합니다.
{ "source": ["aws.aidevops"] }
조사 이벤트만 일치
다음 이벤트 패턴은 접두사 일치를 사용하여 조사 수명 주기 이벤트만 선택합니다.
{ "source": ["aws.aidevops"], "detail-type": [{"prefix": "Investigation"}] }
완료 및 실패 이벤트만 일치
다음 이벤트 패턴은 완료되거나 실패한 조사 및 완화에 대한 이벤트와 일치합니다.
{ "source": ["aws.aidevops"], "detail-type": [ "Investigation Completed", "Investigation Failed", "Mitigation Completed", "Mitigation Failed" ] }
특정 에이전트 스페이스에 대한 이벤트 일치
다음 이벤트 패턴은 특정 에이전트 공간의 이벤트와 일치합니다.
{ "source": ["aws.aidevops"], "detail": { "metadata": { "agent_space_id": ["your-agent-space-id"] } } }
이벤트 패턴에 대한 자세한 내용은 Amazon EventBridge 사용 설명서에서 Amazon EventBridge 이벤트 패턴을 참조하세요.
조사 또는 완화 요약 검색
Completed 이벤트는 에이전트가 생성한 요약을 식별하지만 요약 텍스트는 포함하지 않습니다. 요약은 저널 레코드로 저장됩니다. 읽으려면 이벤트에서 가져온 값을 사용하여 ListJournalRecords 작업을 호출합니다.
| 이벤트의 값 | `ListJournalRecords` 파라미터 |
|---|---|
detail.metadata.agent_space_id |
agentSpaceId(필수) |
detail.metadata.execution_id |
executionId(필수) |
| 이벤트에 없음 | recordType - 조사 요약 또는 완화 요약mitigation_summary_md에 investigation_summary_md 사용 |
ListJournalRecords는 JournalRecord 객체 목록을 반환합니다. 실행에는 동일한 유형의 요약 레코드가 두 개 이상 있을 수 있습니다. 와 recordId 일치하는 레코드를 선택한 detail.data.summary_record_id다음를 읽습니다content. AWS DevOps 에이전트에는 ID별로 단일 저널 레코드를 반환하는 작업이 없습니다.
를 빌드하기 전에 summary_record_id다음 사항에 유의하세요.
필드는 실행에 대한 요약 레코드가 작성된 경우에만 표시됩니다.
Completed이벤트가 없으면 해당 실행에 대한 요약을 사용할 수 없으므로 해당 이벤트를 처리해야 합니다.Failed,Timed Out및Cancelled이벤트에는 포함되지 않습니다.요약을 검색하려면 이벤트 소비자를 실행하는 계정의
aidevops:ListJournalRecords권한이 필요합니다.
권한에 대한 자세한 내용은 DevOps 에이전트 IAM 권한 섹션을 참조하세요.
AWS CLI를 사용하여 요약 검색
다음 명령은 실행에 대한 조사 요약 레코드를 나열합니다.
aws devops-agent list-journal-records \ --agent-space-id e5f6g7h8-9012-34ab-cdef-example00000 \ --execution-id b2c3d4e5-6789-01ab-cdef-example22222 \ --record-type investigation_summary_md
AWS Lambda에서 완료된 조사 처리
다음 Python 함수는 규칙 대상이 이러한 이벤트를 처리하는 한 가지 방법을 보여줍니다. 필수 구현이 아닌 샘플입니다. EventBridge는 다른 대상 유형을 지원하며 대상은 이벤트로 수행할 작업을 결정합니다. 이 예제에서는 완료된 조사에 대한 요약을 읽고 요약이 없는 이벤트를 무시합니다.
import boto3 devops_agent = boto3.client("devops-agent") INVESTIGATION_SUMMARY = "investigation_summary_md" MITIGATION_SUMMARY = "mitigation_summary_md" def lambda_handler(event, context): detail = event["detail"] metadata = detail["metadata"] data = detail["data"] summary_record_id = data.get("summary_record_id") if not summary_record_id: # A completed task does not always produce a summary. return {"summary": None} record_type = ( MITIGATION_SUMMARY if event["detail-type"].startswith("Mitigation") else INVESTIGATION_SUMMARY ) paginator = devops_agent.get_paginator("list_journal_records") pages = paginator.paginate( agentSpaceId=metadata["agent_space_id"], executionId=metadata["execution_id"], recordType=record_type, ) for page in pages: for record in page["records"]: if record["recordId"] == summary_record_id: return {"summary": record["content"]} return {"summary": None}
detail-type를 사용하여 요청할 레코드 유형을 결정합니다. 조사 이벤트와 완화 이벤트는 모두 data.task_type로 보고INVESTIGATION되므로 task_type는 이를 구분하지 않습니다.
Amazon EventBridge 권한
AWS DevOps Agent는 EventBridge에 이벤트를 전송하는 데 추가 권한이 필요하지 않습니다. 이벤트는 기본 이벤트 버스로 자동으로 전송됩니다.
EventBridge 규칙에 대해 구성하는 대상에 따라 특정 권한을 추가해야 할 수 있습니다. 대상에 필요한 권한에 대한 자세한 내용은 Amazon EventBridge 사용 설명서의 Amazon EventBridge에 대한 리소스 기반 정책 사용을 참조하세요. EventBridge
추가 EventBridge 리소스
EventBridge 개념 및 구성에 대한 자세한 내용은 Amazon EventBridge 사용 설명서의 다음 주제를 참조하세요.