亚马逊AWS官方博客

Amazon Elastic Container Registry 中的 EventBridge 支持

我们的许多客户都需要一个安全且私密的位置来存储其容器镜像,因此这就是他们使用我们完全托管的容器注册表 Amazon Elastic Container Registry 的原因。我们最近添加了对 Amazon EventBridge 的支持,因此您可以在推送或删除图像时触发多项操作。这些操作可以在推送镜像时触发持续集成、持续部署管道,或者在删除镜像后将消息发布到 DevOps 团队的 Slack 频道。

这项新功能甚至可以启用复杂的工作流,例如,客户可以在基础镜像上使用镜像推送事件,进而触发重建在该基础上构建的镜像。在这种情况下,可能会每周重建一次基础镜像,以获取最新的安全补丁程序。来自基础镜像存储库的推送事件可以触发其他构建,因此也会修补所有派生镜像。

为了向您展示如何使用这项新功能,我想打开控制台,并通过一个示例说明所有部件如何组合在一起。

Amazon EventBridge 控制台中,我创建了一个新规则,然后输入唯一的名称和描述。

接下来,我向下滚动到定义模式,然后开始自定义我要使用的事件模式的类型。我保留选择了默认的 事件模式单选按钮,并且我想使用按服务预定义模式。由于 Elastic Container Registry 是 AWS 服务,因此我选择 AWS 作为服务提供商。

服务名称部分,可以选择许多不同的 AWS 服务之一作为事件源。我将选择新添加到此列表中的 Elastic Container Registry (ECR)。最后,在本节中,我选择 ECR 镜像操作作为事件类型。 ECR 镜像操作同时包含 DELETEPUSH 操作类型。

接下来,我需要配置要使用的事件总线。在此示例中,我选择了每个 AWS 账户随附的 AWS 默认事件总线

确定事件的来源后,现在我需要设定它们前往的位置。我们称这些为目标,这里有很多选择。例如,我可以将事件发送到 Lambda 函数、Kinesis 流或各种 AWS 目标中的任何一个。

为简单起见,我将选择调用 Amazon Simple Notification Service (SNS) 主题。该主题称为 ImageAction,我已订阅该主题,因此当该主题收到新消息时,我会收到一封电子邮件。

回到笔记本电脑上,将新版本的容器推送到存储库,进入 Elastic Container Registry

如果转到 Elastic Container Registry 控制台,可以看到 Docker 镜像已成功推送,现在我将选择该镜像,然后单击删除按钮,这将删除新镜像。

同时,这会发送一个 PUSH 和一个 DELETE 事件到我的 SNS 主题,反过来向作为该主题订阅者的我发送两封电子邮件。

 

如果我打开 Outlook,那么我肯定会收到两封(肯定不太漂亮)电子邮件,它们分别具有 PUSHDELETE 两种操作类型。

就是这么多,您现在就可以在 Elastic Container Registry 中连接事件,从而使令人兴奋和奇妙的事情发生。 所有公共 AWS 区域和 GovCloud (US) 中都提供 Amazon Elastic Container Registry 中的 Amazon EventBridge 支持。立即在 Amazon EventBridge 控制台中尝试吧。

祝您部署事件顺利!

Martin