选择您的 Cookie 首选项

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

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

AWS Lambda 用于处理 EventBridge 事件

聚焦模式
AWS Lambda 用于处理 EventBridge 事件 - Amazon EBS

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

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

您可以使用 Amazon EBS 和 Amazon EventBridge 来自动执行数据备份工作流程。这要求您创建 IAM 策略、处理事件的 AWS Lambda 函数以及匹配传入事件并将其路由到 Lambda 函数的 EventBridge规则。

以下过程使用 createSnapshot 事件自动将已完成的快照复制到其他区域,以用于灾难恢复。

将已完成的快照复制到其他区域
  1. 创建一个 IAM 策略(如以下示例所示的策略),以提供使用该CopySnapshot操作和写入 EventBridge 日志的权限。将策略分配给将处理 EventBridge 事件的用户。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "ec2:CopySnapshot" ], "Resource": "*" } ] }
  2. 在 Lambda 中定义一个可在控制台中使用的函数。 EventBridge 下面用 Node.js 编写的示例 Lambda 函数是在亚马逊 EBS 发出匹配createSnapshot的事件(表示快照已完成) EventBridge 时调用的。该函数被调用后,它会将快照从 us-east-2 复制到 us-east-1

    // Sample Lambda function to copy an EBS snapshot to a different Region var AWS = require('aws-sdk'); var ec2 = new AWS.EC2(); // define variables var destinationRegion = 'us-east-1'; var sourceRegion = 'us-east-2'; console.log ('Loading function'); //main function exports.handler = (event, context, callback) => { // Get the EBS snapshot ID from the event details var snapshotArn = event.detail.snapshot_id.split('/'); const snapshotId = snapshotArn[1]; const description = `Snapshot copy from ${snapshotId} in ${sourceRegion}.`; console.log ("snapshotId:", snapshotId); // Load EC2 class and update the configuration to use destination Region to initiate the snapshot. AWS.config.update({region: destinationRegion}); var ec2 = new AWS.EC2(); // Prepare variables for ec2.modifySnapshotAttribute call const copySnapshotParams = { Description: description, DestinationRegion: destinationRegion, SourceRegion: sourceRegion, SourceSnapshotId: snapshotId }; // Execute the copy snapshot and log any errors ec2.copySnapshot(copySnapshotParams, (err, data) => { if (err) { const errorMessage = `Error copying snapshot ${snapshotId} to Region ${destinationRegion}.`; console.log(errorMessage); console.log(err); callback(errorMessage); } else { const successMessage = `Successfully started copy of snapshot ${snapshotId} to Region ${destinationRegion}.`; console.log(successMessage); console.log(data); callback(null, successMessage); } }); };

    为确保您的 Lambda 函数可在 EventBridge 控制台中使用,请在 EventBridge 事件发生的区域创建该函数。有关更多信息,请参见AWS Lambda 开发人员指南

  3. 打开亚马逊 EventBridge 控制台,网址为https://console.aws.amazon.com/events/

  4. 在导航窗格中,选择规则,然后选择创建规则

  5. 对于 Step 1: Define rule detail(步骤 1:定义规则详细信息),请执行以下操作:

    1. Name(名称)和 Description(描述)输入值。

    2. 对于 Event bus(事件总线),保持 default(默认)。

    3. 确保 Enable the rule on the selected event bus(在选定的事件总线上启用该规则)已开启。

    4. 对于 Event type(事件类型),选择 Rule with an event pattern(具有事件模式的规则)。

    5. 选择下一步

  6. 对于 Step 2: Build event pattern(步骤 2:构建事件模式),执行以下操作:

    1. 事件源中,选择AWS 事件或 EventBridge 合作伙伴事件

    2. 事件模式部分中,对于事件源,确保选择了AWS 服务,对于AWS 服务,请选择EC2

    3. 对于事件类型,选择 EBS 快照通知,选择特定事件,然后选择 createSnapshot

    4. 选择特定结果,然后选择已成功

    5. 选择下一步

  7. 对于 Step 3: Select targets(步骤 3:选择目标),请执行以下操作:

    1. 对于目标类型,选择AWS 服务

    2. 对于 Select target(选择目标),选择 Lambda function(Lambda 函数),对于 Function(函数),选择之前创建的函数。

    3. 选择 Next(下一步)。

  8. 对于 Step 4: Configure tags(步骤 4:配置标签),如果需要,为规则指定标签,然后选择 Next(下一步)。

  9. 对于 Step 5: Review and create(步骤 5:查看并创建),查看规则,然后选择 Create rule(创建规则)。

现在,您的规则应该会显示在规则选项卡中。在所示的示例中,当您下次复制快照时,EBS 应该会发送您所配置的事件。

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