

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 監控 CodeArtifact 事件
<a name="monitoring-events"></a>

 CodeArtifact 與 Amazon EventBridge 整合，Amazon EventBridge 是一種可自動化和回應事件的服務，包括 CodeArtifact 儲存庫中的變更。您可以建立事件的規則，並設定事件符合規則時會發生的情況。EventBridge 之前被稱為 CloudWatch Events。

事件可以觸發下列動作：
+  叫用 AWS Lambda 函數。
+  啟用 AWS Step Functions 狀態機器。
+  通知 Amazon 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`。帳戶會在`my_domain`名為 的 中`222222222222`建立儲存庫`repo2`。當新套件版本發佈至 時`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 事件都包含下列欄位。


| 事件欄位 | Description | 
| --- | --- | 
| version |  事件格式的版本。目前只有單一版本 0。 | 
| id | 事件的唯一識別符。 | 
| 詳細資訊類型 | 事件的類型。這會決定 detail 物件中的欄位。detail-type 目前支援的項目是 CodeArtifact Package Version State Change。 | 
| source | 事件的來源。對於 CodeArtifact，它會是 aws.codeartifact。 | 
| 帳戶 | 接收事件之帳戶 AWS 的帳戶 ID。 | 
| time | 觸發事件的確切時間。 | 
| 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修改true事件的 ，則設定為 的布林值 （例如，如果從 packageVersionStatus變更為 Unfinished Published)。 | 
| 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="
      }
    }
```