View a markdown version of this page

亚马逊 EventBridge 集成到图像生成器中 - EC2 Image Builder

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

亚马逊 EventBridge 集成到图像生成器中

Amazon EventBridge 是一项无服务器事件总线服务,可用于将您的映像生成器应用程序与其他 AWS 服务应用程序的相关数据连接起来。在中 EventBridge,规则匹配传入的事件并将其发送到目标进行处理。一条规则可以将一个事件发送到多个目标,然后这些事件并行运行。

使用 EventBridge,您可以自动执行 AWS 服务 和自动响应系统事件,例如应用程序可用性问题或资源更改。 AWS 服务 近乎实时 EventBridge 地将事件交付给。您可以设置对传入事件做出响应的规则以启动操作。例如,当 EC2 实例的状态从待处理变为正在运行时,向 Lambda 函数发送事件。 EventBridge 将这些匹配的定义称为事件模式。要基于事件模式创建 EventBridge 规则,请参阅亚马逊 EventBridge 用户指南中的创建对事件做出反应的亚马逊规则

图像生成器 EventBridge 在两个独立的方向上运行。选择与你的目标相匹配的那个:

  • 运行管道以响应事件(以映像生成器为目标)。 EventBridge 当事件与规则匹配或触发时间表时,启动管道构建。

  • 对图像生成器报告的内容做出反应(以图像生成器为来源)。Image Builder 将事件发布到默认事件总线,您可以匹配该总线并将其路由到自己的目标。

有关这两个方向的分步过程,请参阅EventBridge 与映像生成器管道一起使用。有关活动目录,请参阅Image Builder 发送的事件消息

可自动触发的操作包括:

  • 调用 AWS Lambda 函数

  • 调用 Amazon EC2 Run Command

  • 将事件中继到 Amazon Kinesis Data Streams

  • 激活 AWS Step Functions 状态机

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

您还可以为默认事件总线设置调度规则,使其定期执行操作,例如运行 Image Builder 管道以每季度刷新一次映像。有两种类型的计划表达式:

  • cron 表达式 — 以下 cron 表达式示例将任务安排在每天中午 (UTC+0) 运行:

    cron(0 12 * * ? *)

    有关将 cron 表达式与一起使用的更多信息 EventBridge,请参阅亚马逊 EventBridge 用户指南中的 Cron 表达式。

  • rate 表达式 — 以下 rate 表达式示例将任务安排为每 12 小时运行一次:

    rate(12 hour)

    有关将费率表达式与一起使用的更多信息 EventBridge,请参阅亚马逊 EventBridge 用户指南中的费率表达式

有关 EventBridge 规则如何与映像生成器图像管道集成的更多信息,请参阅EventBridge 与映像生成器管道一起使用

注意

管道的内置计划和 EventBridge 调度规则是不同的机制:

  • 管道计划 (schedule.scheduleExpression) 是管道资源的一部分。Image Builder 会对其进行评估,可以利用依赖项更新来控制构建pipelineExecutionStartCondition,还可以使用自动禁用失败的管道。autoDisablePolicy

  • EventBridge 计划规则存在于您的账户 EventBridge 中,并始终在计划触发时开始构建;它没有依赖门控,也没有自动禁用行为。

Image Builder 发送的事件消息

当 Image Builder 资源达到其生命周期的重要阶段时(例如,当图像更改状态、扫描完成、工作流步骤暂停输入或管道自动禁用时)时,Image Builder 会将 EventBridge 事件发送到默认事件总线。每个事件都使用源aws.imagebuilder

以下部分描述了每个事件:Image Builder 发送事件的时间detail、事件中的字段以及resources数组中的资源 ARN。要对这些事件采取行动,请参阅对图像生成器发送的事件做出反应。示例中的账户 ID、区域、ARN 和时间戳均为占位符,请将其替换为您自己的占位符。

EC2 Image Builder Image State Change

在映像创建过程中,当映像资源的状态发生变化时,Image Builder 会发送此事件。例如,当映像状态从一种状态变为另一种状态时,如下所示:

  • buildingtesting

  • testingdistribution

  • testingfailed

  • integratingavailable

{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "detail-type": "EC2 Image Builder Image State Change", "source": "aws.imagebuilder", "account": "111122223333", "time": "2024-01-18T17:50:56Z", "region": "us-west-2", "resources": ["arn:aws:imagebuilder:us-west-2:111122223333:image/cmkencryptedworkflowtest-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222/1.0.0/1"], "detail": { "previous-state": { "status": "TESTING" }, "state": { "status": "AVAILABLE" } } }

映像生成器在映像创建期间,每次图像资源更改状态时,Image Builder 都会在上面显示的生成过渡期间发送此事件。

该事件detail包含以下字段:

字段

说明

previous-state.status

更改前的图像状态(例如,TESTING)。

state.status

新的图像状态(例如,AVAILABLE)。

生成过渡状态值为BUILDING、、TESTINGDISTRIBUTINGINTEGRATINGAVAILABLECANCELLED、和。FAILED

resources数组包含更改状态的图像资源的 ARN。

EC2 Image Builder CVE Detected

如果您为映像启用了 CVE 检测,则每当完成映像扫描时,Image Builder 都会发送一条包含扫描结果的消息。

{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "detail-type": "EC2 Image Builder CVE Detected", "source": "aws.imagebuilder", "account": "111122223333", "time": "2023-03-01T16:59:09Z", "region": "us-east-1", "resources": [ "arn:aws:imagebuilder:us-east-1:111122223333:image/test-image/1.0.0/1", "arn:aws:imagebuilder:us-east-1:111122223333:image-pipeline/test-pipeline" ], "detail": { "resource-id": "i-1234567890abcdef0", "finding-severity-counts": { "all": 0, "critical": 0, "high": 0, "medium": 0 } } }

图像生成器在图像扫描完成时发送此事件,并且仅当您为图像启用图像扫描(Amazon Inspector)时才会发送此事件。如果扫描已关闭,映像生成器不会发送此事件。要开启扫描,请参阅在中为 Image Builder 图像配置安全扫描 AWS 管理控制台

该事件detail包含以下字段:

字段

说明

resource-id

映像生成器扫描的亚马逊 EC2 测试实例的 ID。

finding-severity-counts.all

报告的严重性中的发现总数。

finding-severity-counts.critical

严重程度发现的数量。

finding-severity-counts.high

高严重性发现的数量。

finding-severity-counts.medium

中等严重程度发现的数量。

重要

finding-severity-counts报告 criticalhigh,和medium计数加上all总数。它不报告lowuntriaged调查结果。informational要查看全套调查结果,请参阅映像生成器控制台或 Amazon Inspector 中的安全调查结果。

resources数组包含图像资源的 ARN,以及从管道运行扫描时图像管道的 ARN。

EC2 Image Builder Workflow Step Waiting

WaitForAction 工作流步骤暂停以等待异步操作完成时,Image Builder 会发送一条消息。

{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "detail-type": "EC2 Image Builder Workflow Step Waiting", "source": "aws.imagebuilder", "account": "111122223333", "time": "2024-01-18T16:54:44Z", "region": "us-west-2", "resources": ["arn:aws:imagebuilder:us-west-2:111122223333:image/workflowstepwaitforactionwithvalidsnstopictest-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222/1.0.0/1", "arn:aws:imagebuilder:us-west-2:111122223333:workflow/build/build-workflow-a1b2c3d4-5678-90ab-cdef-EXAMPLE33333/1.0.0/1"], "detail": { "workflow-execution-id": "wf-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "workflow-step-execution-id": "step-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "workflow-step-name": "TestAutoSNSStop" } }

WaitForAction工作流程步骤暂停等待您的响应时,Image Builder 会发送此事件。工作流程将保持暂停状态,直到您做出响应或该步骤超时。

该事件detail包含以下字段:

字段

说明

workflow-execution-id

包含已暂停步骤的正在运行的工作流程的 ID。

workflow-step-execution-id

正在等待的特定步骤执行的 ID。

workflow-step-name

WaitForAction步骤的名称,如工作流文档中所定义。

resources数组包含图像资源的 ARN 和工作流程的 ARN。

要做出回应,请SendWorkflowStepAction使用事件发件人和联系action人致电RESUMESTOP以继续或结束构建。workflow-step-execution-id请参阅WaitForAction。要自动将其从事件中移除,请参阅对图像生成器发送的事件做出反应

EC2 映像生成器映像管道自动禁用

如果您已autoDisablePolicy为管道配置了,则 Image Builder 将禁用该管道,并在连续的计划管道执行失败次数超过每个策略允许的最大数量 EventBridge 时向其发送事件消息。

{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "detail-type": "EC2 Image Builder Image Pipeline Automatically Disabled", "source": "aws.imagebuilder", "account": "111122223333", "time": "2025-09-18T16:54:44Z", "region": "us-west-2", "resources": ["arn:aws:imagebuilder:us-west-2:111122223333:image-pipeline/disabled-image-pipeline-name"], "detail": { "consecutive-failures": "5" } }

如果您按照管道的计划autoDisablePolicy进行配置,Image Builder 会计算计划生成的连续失败次数。当计数达到策略时failureCount,Image Builder 会禁用管道并发送此事件。

该事件detail包含以下字段:

字段

说明

consecutive-failures

触发自动禁用的连续计划生成失败次数。

resources数组包含已禁用的管道的 ARN。

注意

只有计划的编译版本才计入总数。失败的手动编译不会增加流量;成功的手动或预定构建(以及创建或更新管道)会将其重置为零。请参阅 autoDisablePolicy EC2 映像生成器 API 参考文档