

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

# Lambda 事件源映射执行块
<a name="lambda-event-source-mapping-block"></a>

Lambda 事件源映射执行块允许您在恢复操作中启用或禁用 Lambda 事件源映射。事件源映射是从 Amazon Kinesis、亚马逊 DynamoDB Streams、亚马逊简单队列服务和适用于 Apache Kafka 的亚马逊托管流（亚马逊 MSK）等事件源读取 Lambda 资源，并使用批量记录调用 Lambda 函数。

**注意**  
此执行块仅管理事件源映射。该执行区块不支持 Lambda 触发器，即从 Amazon S3、亚马逊简单通知服务和亚马逊简单电子邮件服务等服务端事件驱动的调用。

## 配置
<a name="lambda-event-source-mapping-block-config"></a>

可以将此块配置为一次对一个事件源映射资源执行一项操作（启用或禁用）。

要配置 Lambda 事件源映射执行块，请输入以下值。

**重要**  
在配置执行区块之前，请确保计划的执行角色具有正确的 IAM 策略。有关更多信息，请参阅 [Lambda 事件源映射执行区块示例策略](security_iam_region_switch_lambda_esm.md)。

1. **步骤名称：**输入名称。

1. **步骤描述（可选）：**输入步骤的描述。

1. **操作：**选择在此步骤运行时**是**启用**还是**禁用事件源映射。

1. **在以下情况下启用或禁用的 Lambda 事件源映射 ARN activating/deactivating{{Region-1}}：**输入事件源映射 ARN 以在您时采取行动。 activate/deactivate {{Region-1}}

1. **在以下情况下启用或禁用的 Lambda 事件源映射 ARN activating/deactivating{{Region-2}}：**输入事件源映射 ARN 以在您时采取行动。 activate/deactivate {{Region-2}}

1. **超时：**输入超时值。

1. **不流畅执行：**选择在非正常（计划外）执行期间是否跳过此执行块。

然后，选择**保存步骤**。

事件源映射必须位于计划配置的其中一个区域中。但是，您正在激活的区域和对事件源映射进行操作的区域不需要匹配。

例如，要在激活其他区域时在停用区域中禁用事件处理，请执行以下操作：
+ **激活时要禁用的事件源映射 ARN {{us-west-2}}**:`arn:aws:lambda:{{us-east-1}}:123456789012:event-source-mapping:uuid-1`.
+ **激活时要禁用的事件源映射 ARN {{us-east-1}}**:`arn:aws:lambda:{{us-west-2}}:123456789012:event-source-mapping:uuid-2`.

此块支持优雅和非优雅的执行模式。Ungraceful 模式专为计划外故障转移场景而设计。当该步骤配置为在停用区域中执行操作时，您通常允许在该执行块上不正常执行该步骤时跳过该步骤。在故障转移期间，您可能需要停止处理停用区域中的事件，并在激活区域中开始处理。为实现此目的，您需要按顺序设置两个 Lambda 事件源映射执行块：一个用于在停用区域中禁用事件源映射资源，另一个用于在激活区域中启用事件源映射资源。

## 工作原理
<a name="lambda-event-source-mapping-block-how"></a>

Lambda 事件源映射执行块启用或禁用 Lambda 函数上的事件源映射。在计划执行期间调用区块时，区域交换机调用 Lambda `UpdateEventSourceMapping` API 以对指定的 Lambda 事件源映射执行配置的操作（启用或禁用）。然后，区域切换会等到事件源映射达到目标状态并更新此步骤的状态（已完成或因失败而暂停），然后再继续计划中的下一步。如果映射已经处于所需状态，则区域切换会立即将该步骤标记为完成。当包含为不正常执行而配置的执行块的计划在不正常模式下运行时，该计划会跳过此步骤的执行。