本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
EventBridge 与映像生成器管道一起使用
AWS 合作伙伴服务几乎实时地将 EventBridge 活动传输到亚马逊活动总线。您也可以发送自己的自定义事件。事件总线使用规则将每个事件路由到一个或多个目标。
图像生成器 EventBridge 在两个独立的方向上运行:
-
根据规则开始管道构建。您可以将 Image Builder 管道设置为规则目标,因此在事件与规则匹配或调度触发时 EventBridge 运行管道。请参阅按计划触发管道构建和根据事件模式触发管道构建。
-
对图像生成器发送的事件做出反应。当发生重大变化时(例如,当图像变成 CVE
AVAILABLE或扫描检测到 CVE 时),Image Builder 会将事件发布到默认事件总线。您可以将这些事件与规则进行匹配,并将它们路由到 Lambda 函数或 Amazon SNS 主题等目标,以启动自己的自动化。请参阅对图像生成器发送的事件做出反应。
有关映像生成器发送的事件以及每个事件中的字段的更多信息,请参阅Image Builder 发送的事件消息。
注意
活动巴士是 Region-specific. 规则及其调用的资源通常位于同一个区域;要跨区域进行路由,请将事件总线设定在目标区域。映像生成器将其事件发布到构建运行区域的默认事件总线。
EventBridge 条款
以下术语可帮助您了解如何与您的映像生成器管道 EventBridge 集成。
- 事件
-
描述环境中可能影响一个或多个应用程序资源的变化。该环境可以是 AWS 环境、SaaS 合作伙伴服务或应用程序,也可以是您的应用程序或服务之一。您还可以在时间线上设置计划的事件。
- 事件总线
-
接收来自应用程序和服务的事件数据的管道。
- 来源
-
将事件发送到事件总线的服务或应用程序。
- Target
-
一种资源或端点,在匹配规则时 EventBridge 调用,将数据从事件传送到目标。
- 规则
-
规则 规则匹配传入事件并将其路由到目标进行处理。一条规则可以将一个事件发送到多个目标,然后这些目标将可并行运行。规则要么基于事件模式,要么基于计划。
- 模式
-
事件模式定义事件结构和规则匹配的字段,以启动目标操作。
- Schedule
-
计划规则在计划中执行操作,例如运行 Image Builder 管道在每个季度刷新映像。有两种类型的计划表达式:
-
Cron 表达式 — 使用可以概述简单条件的 cron 语法匹配特定的调度条件;例如,每周在特定日期运行。您还可以制定更复杂的条件,例如每季度在每月的第五天凌晨 2 点到凌晨 4 点之间运行。
-
rate 表达式-指定调用目标时的固定间隔,例如每 12 小时一次。
-
查看您的映像生成器管道的 EventBridge 规则
Image Builder Image Pipelines 详细信息页面中的EventBridge 规则选项卡显示 EventBridge 您的账户有权访问的事件总线,以及适用于当前管道的所选事件总线规则。此选项卡还直接链接到用于创建新资源的EventBridge 控制台。
链接到 EventBridge 控制台的操作
-
创建事件总线
-
创建规则
要了解更多信息 EventBridge,请参阅亚马逊 EventBridge 用户指南中的以下主题。
按计划触发管道构建
将图像生成器管道设置为 EventBridge 计划规则的目标,以定期刷新图像。以下示例创建了一条规则,该规则每 90 天启动一次管道构建。
注意
管道还可以携带自己的内置调度(存储在流水线上的 cron 或速率表达式)。该时间表由 Image Builder 管理,与任何 EventBridge 规则分开:
-
使用管道计划进行简单的定期重建。它还可以根据依赖项更新来控制构建,并自动禁用失效的管道。请参阅
ScheduleEC2 映像生成器 API 参考文档。 -
使用EventBridge 规则从事件模式开始构建,或者将一个触发器分散到多个目标。
注意
要详细了解本示例中未涵盖的费率表达式规则设置,请参阅亚马逊 EventBridge 用户指南中的费率表达式。
根据事件模式触发管道构建
当事件与模式匹配时,您可以开始管道构建,而不是计划。使用事件模式创建规则,然后将您的管道添加为目标(使用中描述的相同 IAM 角色按计划触发管道构建)。
每当特定的基础映像变为时,以下示例就会开始构建,AVAILABLE例如,在依赖映像的基础映像完成后链接构建。resources前缀将规则范围限定为基础镜像,使其仅匹配该图像,而不匹配依赖管道自己的输出:
{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder Image State Change"], "detail": { "state": { "status": ["AVAILABLE"] } }, "resources": [{ "prefix": "arn:aws:imagebuilder:us-west-2:111122223333:image/my-base-image/" }] }
重要
将事件模式的范围限定为基础镜像,如本示例中的resources前缀所示。匹配账户中每AVAILABLE张图像的模式也会匹配依赖管道自己的输出图像,这会再次启动管道并创建无休止的构建循环。根据特定的基础图像名称或 ARN 前缀进行过滤,使规则仅匹配您想要的图像。
有关您可以匹配的事件及其字段,请参阅Image Builder 发送的事件消息。
对图像生成器发送的事件做出反应
当您的资源达到重要点时(例如,当图像更改状态、扫描完成、工作流步骤暂停输入或管道自动禁用时)时,Image Builder 会将事件发布到默认事件总线。您可以将这些事件与规则进行匹配并将它们路由到目标以启动自己的自动化。常见模式包括:
-
当图像变为
AVAILABLE或FAILED时,通过 Amazon SNS 主题通知团队。 -
调用 Lambda 函数在参数存储中注册新的 AMI、启动外部合规性测试或更新部署管道。
-
当扫描报告关键 CVE 时,将出现安全发现时发出警报。
-
当工作流程步骤暂停生成时,推动批准
WaitForAction工作流程。
要对 Image Builder 发送的事件执行操作,请创建一个事件模式与事件 source (aws.imagebuilder) 相匹配的规则detail-type,并可选择缩小其中的detail字段。然后添加运行自动化的目标。
示例:图像完成时通知(AVAILABLE或FAILED)
{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder Image State Change"], "detail": { "state": { "status": ["AVAILABLE", "FAILED"] } } }
示例:仅在扫描发现关键 CVE 时发出警报
使用数字匹配器,这样干净的扫描就不会触发规则:
{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder CVE Detected"], "detail": { "finding-severity-counts": { "critical": [{ "numeric": [">", 0] }] } } }
注意
当你匹配EC2 Image Builder Workflow Step Waiting事件时,你的目标可以使用事件workflow-step-execution-id中的和RESUME或SendWorkflowStepAction进行action呼叫STOP。请参阅WaitForAction。