

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# CodeArtifact 이벤트 모니터링
<a name="monitoring-events"></a>

 CodeArtifact는 CodeArtifact 리포지토리 변경을 비롯한 이벤트를 자동화하고 반응하는 서비스인 Amazon EventBridge와 통합되어 있습니다. 이벤트 규칙을 생성하고, 이벤트가 규칙과 일치할 때 일어나는 일을 구성할 수 있습니다. 이전에는 EventBridge를 CloudWatch Events라고 했습니다.

이벤트가 트리거할 수 있는 작업은 다음과 같습니다.
+  AWS Lambda 함수 호출.
+  AWS Step Functions 상태 시스템 활성화.
+  SNS 주제 또는 Amazon SQS 대기열 알림.
+  에서 파이프라인을 시작합니다 AWS CodePipeline.

 CodeArtifact는 패키지 버전이 생성, 수정 또는 삭제될 때 이벤트를 생성합니다. 다음은 CodeArtifact 이벤트의 예제입니다.
+  (`npm publish` 실행 등의 방법을 통한) 새 패키지 버전 게시.
+  (새 JAR 파일을 기존 Maven 패키지로 푸시하는 방법 등을 통한) 기존 패키지 버전에 새 자산 추가.
+  `copy-package-versions`를 사용하여 한 리포지토리의 패키지 버전을 다른 리포지토리로 복사. 자세한 내용은 [리포지토리 간 패키지 복사](copy-package.md) 단원을 참조하십시오.
+  `delete-package-versions`를 사용하여 패키지 버전 삭제. 자세한 내용은 [패키지 또는 패키지 버전 삭제](delete-package.md) 단원을 참조하십시오.
+  `delete-package`를 사용하여 패키지 버전 삭제. 삭제된 패키지의 각 버전에 대해 이벤트 하나가 게시됩니다. 자세한 내용은 [패키지 또는 패키지 버전 삭제](delete-package.md) 단원을 참조하십시오.
+  업스트림 리포지토리에서 가져온 패키지 버전을 다운스트림 리포지토리에 유지. 자세한 내용은 [CodeArtifact에서의 업스트림 리포지토리 작업](repos-upstream.md) 단원을 참조하십시오.
+  외부 리포지토리의 패키지 버전을 CodeArtifact 리포지토리에 수집. 자세한 내용은 [CodeArtifact 저장소를 공용 저장소에 연결하기](external-connection.md) 단원을 참조하십시오.

이벤트는 도메인을 소유한 계정과 리포지토리를 관리하는 계정 모두에 전달됩니다. 예를 들어 계정 `111111111111`이 `my_domain` 도메인을 소유하고 있다고 가정해 보겠습니다. 계정 `222222222222`는 `repo2`라는 이름의 `my_domain`에서 리포지토리를 생성합니다. 새 패키지 버전이 `repo2`에 게시되면 두 계정 모두 EventBridge 이벤트를 수신합니다. 도메인 소유 계정(`111111111111`)은 도메인 내 모든 리포지토리에 대한 이벤트를 수신합니다. 단일 계정이 도메인과 도메인 내 리포지토리를 모두 소유하는 경우 단일 이벤트만 전달됩니다.

다음 주제에서는 CodeArtifact 이벤트 형식을 설명합니다. CodeArtifact 이벤트를 구성하는 방법과 다른 AWS 서비스와 함께 이벤트를 사용하는 방법을 보여줍니다. 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 시작하기](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html)를 참조하세요.

## CodeArtifact 이벤트 형식 및 예제
<a name="service-event-format-example"></a>

다음은 이벤트 필드 및 설명과 CodeArtifact 이벤트 예제입니다.

### CodeArtifact 이벤트 형식
<a name="service-event-format"></a>

 모든 CodeArtifact 이벤트에는 다음 필드가 포함됩니다.


| 이벤트 필드 | 설명 | 
| --- | --- | 
| version | 이벤트 형식의 버전입니다. 현재는 버전 0만 존재합니다. | 
| id | 이벤트의 고유 식별자입니다. | 
| detail-type | 이벤트의 유형입니다. detail 객체의 필드를 결정합니다. 현재 지원되는 유일한 detail-type은 CodeArtifact Package Version State Change입니다. | 
| source | 이벤트의 원본입니다. CodeArtifact의 경우에는 aws.codeartifact입니다. | 
| 계정 | 이벤트를 수신하는 AWS 계정의 계정 ID입니다. | 
| 시간 | 이벤트가 트리거된 정확한 시간입니다. | 
| region | 이벤트가 트리거된 지역입니다. | 
| resources | 변경된 패키지의 ARN이 포함된 목록입니다. 목록에는 항목 하나가 포함되어 있습니다. 패키지 ARN 형식에 대한 자세한 내용은 [패키지에 쓰기 액세스 권한 부여](repo-policies.md#granting-write-access-to-specific-packages) 섹션을 참조하세요. | 
| domainName | 패키지가 포함된 리포지토리가 있는 도메인입니다. | 
| domainOwner | 도메인 소유자의 AWS 계정 ID입니다. | 
| repositoryName | 패키지를 포함하는 리포지토리입니다. | 
| repositoryAdministrator | 리포지토리 관리자의 AWS 계정 ID입니다. | 
| packageFormat | 이벤트를 트리거한 패키지의 형식입니다. | 
| packageNamespace | 이벤트를 트리거한 패키지의 네임스페이스입니다. | 
| packageName | 이벤트를 트리거한 패키지의 이름입니다. | 
| packageVersion | 이벤트를 트리거한 패키지의 버전입니다. | 
| packageVersionState | 이벤트를 트리거한 패키지 버전의 상태입니다. 가능한 값은 Unfinished, Published, Unlisted, Archived, Disposed입니다. | 
| packageVersionRevision | 이벤트가 트리거되었을 때 패키지 버전의 자산 및 메타데이터 상태를 고유하게 식별하는 값입니다. 패키지 버전이 수정되면(예: 다른 JAR 파일을 Maven 패키지에 추가) packageVersionRevision이 변경됩니다. | 
| changes.assetsAdded | 이벤트를 트리거한 패키지에 추가된 자산의 수입니다. 대표적인 자산은 Maven JAR 파일 또는 Python 휠입니다. | 
| changes.assetsRemoved | 이벤트를 트리거한 패키지에서 제거된 자산의 수입니다. | 
| changes.assetsUpdated | 이벤트를 트리거한 패키지에서 수정된 자산의 수입니다. | 
| changes.metadataUpdated | 이벤트에 수정된 패키지 수준 메타데이터가 포함된 경우 true에 설정되는 부울 값입니다. 예를 들어 이벤트는 Maven pom.xml 파일을 수정할 수 있습니다. | 
| changes.statusChanged | 이벤트의 packageVersionStatus가 수정된 경우(예: packageVersionStatus가 Unfinished에서 Published로 변경되는 경우) true에 설정되는 부울 값입니다. | 
| operationType | 패키지 버전 변경의 상위 수준 유형을 설명합니다. 가능한 값은 Created, Updated, Deleted입니다. | 
| sequenceNumber | 패키지의 이벤트 번호를 지정하는 정수입니다. 패키지의 각 이벤트는 sequenceNumber를 증가시키므로, 이벤트를 순차적으로 정렬할 수 있습니다. 이벤트는 sequenceNumber를 아무 정수만큼 증가시킬 수 있습니다.  EventBridge 이벤트가 잘못된 순서로 수신될 수 있습니다. `sequenceNumber`를 사용하면 실제 순서를 결정할 수 있습니다.  | 
| eventDeduplicationId | 중복된 EventBridge 이벤트를 구별하는 데 사용하는 ID입니다. 드물지만 EventBridge는 단일 이벤트 또는 예정된 시간에 대해 동일한 규칙을 두 번 이상 트리거하기도 합니다. 또는 트리거된 규칙에 대해 동일한 대상을 두 번 이상 호출할 수도 있습니다. | 

### CodeArtifact 이벤트 예제
<a name="service-event-sample"></a>

 다음은 npm 패키지가 게시될 때 트리거될 수 있는 CodeArtifact 이벤트 예제입니다.

```
{
      "version":"0",
      "id":"73f03fec-a137-971e-6ac6-07c8ffffffff",
      "detail-type":"CodeArtifact Package Version State Change",
      "source":"aws.codeartifact",
      "account":"123456789012",
      "time":"2019-11-21T23:19:54Z",
      "region":"us-west-2",
      "resources":["arn:aws:codeartifact:us-west-2:111122223333:package/my_domain/myrepo/npm//mypackage"],
      "detail":{
        "domainName":"my_domain",
        "domainOwner":"111122223333",
        "repositoryName":"myrepo",
        "repositoryAdministrator":"123456789012",
        "packageFormat":"npm",
        "packageNamespace":null,
        "packageName":"mypackage",
        "packageVersion":"1.0.0",
        "packageVersionState":"Published",
        "packageVersionRevision":"0E5DE26A4CD79FDF3EBC4924FFFFFFFF",
        "changes":{
          "assetsAdded":1,
          "assetsRemoved":0,
          "metadataUpdated":true,
          "assetsUpdated":0,
          "statusChanged":true
        },
        "operationType":"Created",
        "sequenceNumber":1,
        "eventDeduplicationId":"2mEO0A2Ke07rWUTBXk3CAiQhdTXF4N94LNaT/ffffff="
      }
    }
```