选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

监控 CodeArtifact 事件

聚焦模式
监控 CodeArtifact 事件 - CodeArtifact

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CodeArtifact 与 Amazon 集成 EventBridge,Amazon 是一项自动处理和响应事件(包括 CodeArtifact 存储库中的更改)的服务。您可以为事件创建规则,并配置当事件与规则匹配时会发生什么。 EventBridge 以前叫做 “ CloudWatch 活动”。

事件会触发以下操作:

  • 调用 AWS Lambda 函数。

  • 激活 AWS Step Functions 状态机。

  • 通知 Amazon SNS 主题或 Amazon SQS 队列。

  • 在中启动管道 AWS CodePipeline。

CodeArtifact 在创建、修改或删除软件包版本时创建事件。以下是 CodeArtifact 事件的示例:

  • 发布新的程序包版本(例如,通过运行 npm publish)。

  • 向现有程序包版本添加新资产(例如,通过将新的 JAR 文件推送到现有 Maven 程序包)。

  • 使用 copy-package-versions 将程序包版本从一个存储库复制到另一个存储库。有关更多信息,请参阅 在存储库之间复制程序包

  • 使用 delete-package-versions 删除程序包版本。有关更多信息,请参阅 删除软件包或软件包版本

  • 使用 delete-package 删除程序包版本。为已删除程序包的每个版本发布一个事件。有关更多信息,请参阅 删除软件包或软件包版本

  • 如果程序包版本是从上游存储库获取,则在下游存储库中保留该版本。有关更多信息,请参阅 在中使用上游存储库 CodeArtifact

  • 将软件包版本从外部存储库摄取到存储库中。 CodeArtifact 有关更多信息,请参阅 将 CodeArtifact 仓库连接到公共仓库

事件会同时发送给拥有该域的账户和管理存储库的账户。例如,假设账户 111111111111 拥有域 my_domain。账户 222222222222my_domain 中创建名为 repo2 的存储库。当新的软件包版本发布到时repo2,两个账户都会收到 EventBridge 事件。拥有域的账户 (111111111111) 会收到域中所有存储库的事件。如果一个账户同时拥有域及其中的存储库,则只会传送一个事件。

以下主题描述了 CodeArtifact 事件的格式。它们向您展示如何配置 CodeArtifact事件,以及如何将事件与其他 AWS 服务一起使用。有关更多信息,请参阅《亚马逊 EventBridge 用户指南》 EventBridge中的 “亚马逊入门”。

CodeArtifact 事件格式和示例

以下是事件字段和描述以及 CodeArtifact 事件示例。

CodeArtifact 事件格式

所有 CodeArtifact 事件都包含以下字段。

事件字段 描述
version 事件格式的版本。目前只有一个版本 0
id 事件的唯一标识符。
detail-type 事件类型。这决定了 detail 对象中的字段。目前支持的一个 detail-typeCodeArtifact Package Version State Change
事件的源。因为 CodeArtifact,确实如此aws.codeartifact
账户 接收事件的账户的账户 ID。 AWS
时间 触发事件的确切时间。
region 触发了事件的区域。
resources 一个列表,其中包含了已更改程序包的 ARN。该列表包含一个条目。有关程序包 ARN 格式的信息,请参阅授予对程序包的写入权限
domainName 包含程序包的存储库所在的域。
domainOwner 域名所有者的 AWS 账户 ID。
repositoryName 包含程序包的存储库。
repositoryAdministrator 存储库管理员的 AWS 账户 ID。
packageFormat 触发了事件的程序包的格式。
packageNamespace 触发了事件的程序包的命名空间。
packageName 触发了事件的程序包的名称。
packageVersion 触发了事件的程序包的版本。
packageVersionState 触发事件时程序包版本的状态。可能的值为 UnfinishedPublishedUnlistedArchivedDisposed
packageVersionRevision 一个值,用于唯一地标识在触发事件时程序包版本的资产和元数据的状态。如果修改了程序包版本(例如,向 Maven 程序包添加另一个 JAR 文件),则 packageVersionRevision 会发生变化。
changes.assetsAdded 添加到触发了事件的程序包中的资产数量。资产的示例包括 Maven JAR 文件或 Python Wheel。
changes.assetsRemoved 从触发了事件的程序包中删除的资产数量。
changes.assetsUpdated 触发了事件的程序包中已修改的资产数量。
changes.metadataUpdated 一个布尔值,如果事件包括已修改的程序包级元数据,则设置为 true。例如,一个事件可能会修改 Maven pom.xml 文件。
changes.statusChanged 一个布尔值,如果修改了事件的 packageVersionStatus(例如,如果 packageVersionStatusUnfinished 更改为 Published),则设置为 true
operationType 描述程序包版本更改的概要类型。可能的值为 CreatedUpdatedDeleted
sequenceNumber 一个整数,指定了程序包的事件编号。程序包中的每个事件都会使 sequenceNumber 递增,因此可以按顺序排列事件。事件可以使 sequenceNumber 按任意整数递增。
注意

EventBridge 接收事件的顺序可能不正确。 sequenceNumber可以用来确定它们的实际顺序。

eventDeduplicationId 用于区分重复 EventBridge 事件的 ID。在极少数情况下, EventBridge 可能会在单个事件或预定时间内多次触发相同的规则。或者,EventBridge 可能会为给定的触发规则多次调用同一个目标。

CodeArtifact 事件示例

以下是发布 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=" } }

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。