

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

# 在现有 Firehose 流上启用解压缩功能
<a name="enabling-decompression-existing-stream-console"></a>

本节提供了关于在现有 Firehose 流中启用解压缩的说明。它涵盖了两种场景——禁用 Lambda 处理的流和已经启用 Lambda 处理的流。以下各节概述了每种情况的 step-by-step程序，包括创建或修改 Lambda 函数、更新 Firehose 设置以及监控 CloudWatch 指标，以确保成功实施内置 Firehose 解压缩功能。

## 禁用 Lambda 处理时启用解压缩
<a name="enabling-decomp-exist-stream-lam-disable"></a>

要在禁用 Lambda 处理的情况下对现有 Firehose 流启用解压缩，必须先启用 Lambda 处理。此条件仅对现有流有效。以下步骤说明如何对未启用 Lambda 处理的现有流启用解压缩。

1. 创建一个 Lambda 函数。您可以创建虚拟记录通道，也可以使用此[蓝图](https://github.com/aws-samples/aws-kinesis-firehose-resources/tree/main/blueprints/kinesis-firehose-cloudwatch-logs-processor)创建新的 Lambda 函数。

1. 更新您当前的 Firehose 流以启用 Lambda 处理并使用您创建的 Lambda 函数进行处理。

1. 使用新的 Lambda 函数更新流后，请返回 Firehose 控制台并启用解压缩功能。

1. 禁用您在步骤 1 中启用的 Lambda 处理。现在，您可以删除已在步骤 1 中创建的函数。

## 启用 Lambda 处理时启用解压缩
<a name="enabling-decomp-exist-stream-lam-enable"></a>

如果您已经有带有 Lambda 函数的 Firehose 流，要执行解压缩，可以将其替换为 Firehose 解压缩功能。在继续操作之前，请查看您的 Lambda 函数代码，以确认它仅执行解压缩或消息提取。您的 Lambda 函数的输出应与[图 1 或图 2](Message_extraction.md) 中显示的示例类似。如果输出看起来相似，则您可以使用以下步骤替换 Lambda 函数。

1. 将您当前的 Lambda 函数替换为此[蓝图](https://github.com/aws-samples/aws-kinesis-firehose-resources/tree/main/blueprints/kinesis-firehose-cloudwatch-logs-processor)。新的蓝图 Lambda 函数会自动检测传入的数据是被压缩还是解压缩。它只有在输入数据被压缩时才会执行解压缩。

1. 使用内置的 Firehose 选项开启解压缩功能，以进行解压缩。

1. 如果您的 Firehose 直播尚未启用，请启用该 CloudWatch 指标。监控指标 `CloudWatchProcessorLambda_IncomingCompressedData` 并等待至该指标变为零。这将确认发送到您的 Lambda 函数的所有输入数据均已解压缩，并且不再需要 Lambda 函数。

1. 移除 Lambda 数据转换，因为您不再需要此项来解压缩您的流。