

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon S3 交付的運作方式
<a name="data-delivery-s3-about"></a>

 使用此主題來了解 Amazon S3 交付如何將記錄從 Amazon Kinesis Data Streams 串流傳送至一般用途的 Amazon Simple Storage Service 儲存貯體，包括儲存組態、壓縮、儲存類別、記錄格式和加密。

## 交付的運作方式
<a name="data-delivery-s3-how-it-works"></a>

 Amazon S3 交付會在下列步驟中將記錄傳送至一般用途的 Amazon S3 儲存貯體：

1.  **讀取** – 交付會從 Kinesis Data Streams 串流中的所有碎片讀取記錄。

1.  **緩衝** – 記錄會緩衝，直到達到資料更新間隔為止。

1.  **驗證** – 當記錄格式為 時`STRING`，每個記錄都會驗證為有效的 UTF-8 字串；當記錄格式為 時`JSON`，每個記錄都會驗證為有效的 JSON 承載。未通過驗證的記錄會傳送至無效字母佇列。

1.  **壓縮和格式** – 根據設定的輸出格式格式化記錄，並使用指定的壓縮演算法進行壓縮。

1.  **傳遞** – 產生的物件會使用設定的金鑰範本寫入目的地 Amazon S3 儲存貯體。

1.  **無效字母佇列** – 失敗驗證的記錄會寫入具有錯誤內容的無效字母佇列。

## 儲存組態
<a name="data-delivery-s3-storage-configuration"></a>

 當您建立 Amazon S3 交付時，您可以指定下列儲存組態：
+  **BucketARN** – 目的地 Amazon S3 儲存貯體的 ARN。
+  **ExpectedBucketOwner** – 目的地儲存貯體預期擁有者的 12 位數 AWS 帳戶 ID。此值為必要值，有助於防止在擁有權變更時交付到非預期的儲存貯體。
+  **CompressionType** – 套用至已交付物件的壓縮類型。此值為必要值；請指定 `NONE` 在沒有壓縮的情況下交付物件。請參閱 [壓縮選項](#data-delivery-s3-compression)。
+  **StorageClass** – 交付物件的 Amazon S3 儲存類別 （選用）。請參閱 [儲存類別](#data-delivery-s3-storage-class)。
+  **OutputKeyTemplate** – 用來建構 Amazon S3 物件金鑰的範本 （選用）。請參閱 [Amazon S3 交付的 S3 輸出金鑰範本](data-delivery-s3-key-template.md)。

## 壓縮選項
<a name="data-delivery-s3-compression"></a>

 您必須指定壓縮類型，才能交付至一般用途的 Amazon S3 儲存貯體。若要在不壓縮的情況下交付物件，請選擇 `NONE`。選擇下列其中一個壓縮類型：
+ **GZIP** – 標準 gzip 壓縮。壓縮比率和速度的良好平衡。
+ **ZSTD** – Zstandard 壓縮。壓縮率越高，解壓縮速度越快。
+ **NONE** – 未套用壓縮。記錄會以未壓縮的方式交付。

## 儲存類別
<a name="data-delivery-s3-storage-class"></a>

 您可以選擇性地指定已交付物件的 Amazon S3 儲存類別。如果未指定，預設儲存類別為 STANDARD。支援的儲存類別：
+ **STANDARD** – 常用資料的一般用途儲存體。
+ **INTELLIGENT\_TIERING** – 根據用量模式，在存取層之間自動移動資料。
+ **GLACIER\_IR** – 資料需要立即擷取的低成本儲存。

 如需 Amazon S3 儲存類別的詳細資訊，請參閱《*Amazon S3 使用者指南*》中的[了解和管理儲存類別](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html)。

## 輸出金鑰範本
<a name="data-delivery-s3-key-template-about"></a>

 您可以設定輸出金鑰範本，以控制交付檔案的 Amazon S3 物件金鑰結構。範本支援日期、時間和交付中繼資料的動態預留位置，以整理目的地儲存貯體中的資料。如需預設範本、支援的變數和範例，請參閱 [Amazon S3 交付的 S3 輸出金鑰範本](data-delivery-s3-key-template.md)。

## 資料新鮮度
<a name="data-delivery-s3-data-freshness"></a>

 資料新鮮度會定義傳送記錄之前的最大緩衝時間。您可以在 300 到 900 秒 (5 到 15 分鐘） 之間設定此值。預設為 300 秒。較低的值提供更快的交付，而較高的值會產生較少、較大的物件。

## 無效字母佇列
<a name="data-delivery-s3-dead-letter-queue"></a>

 無效字母佇列可選擇性交付至一般用途的 Amazon S3 儲存貯體。如果您未指定無效字母佇列組態，則交付預設為將錯誤資訊寫入具有錯誤字首的相同目的地儲存貯體。

 如果您指定無效字母佇列，請提供下列項目：
+  **BucketARN** – Amazon S3 儲存貯體的 ARN，接收無法交付之記錄的相關資訊。
+  **ExpectedBucketOwner** – 無效字母佇列儲存貯體預期擁有者的 12 位數 AWS 帳戶 ID （指定無效字母佇列時需要）。
+  **ErrorOutputPrefix** – 用於組織儲存貯體中失敗中繼資料物件的選用字首。

## 記錄格式
<a name="data-delivery-s3-record-formats"></a>

 Amazon S3 交付支援下列記錄格式，以便交付至一般用途的 Amazon S3 儲存貯體：
+ **JSON** – 純 JSON 記錄。
+ **STRING** – UTF-8 字串記錄。
+ **BYTE\_ARRAY** – 原始二進位記錄。

**注意**  
 不支援將`GSR_JSON`記錄格式交付至一般用途的 Amazon S3 儲存貯體。它僅支援交付到 Apache Iceberg 上的串流資料表，這需要 AWS Glue 結構描述登錄檔。

## 跨帳戶交付
<a name="data-delivery-s3-cross-account"></a>

 Amazon S3 交付支援跨帳戶交付到一般用途的 Amazon S3 儲存貯體。來源串流和目的地儲存貯體必須位於相同的 中 AWS 區域。設定目的地儲存貯體政策，授予交付 IAM 角色寫入物件的許可。

## 加密
<a name="data-delivery-s3-encryption"></a>

 對於交付到一般用途 Amazon S3 儲存貯體的物件，Amazon S3 交付支援使用客戶受 AWS KMS 管金鑰的伺服器端加密。您可以指定客戶受管 AWS KMS 金鑰來加密交付的物件。

**重要**  
 您無法使用`aws/kinesis` AWS KMS 別名進行目的地加密。您必須使用客戶受管 AWS KMS 金鑰。

 如果您的來源 Kinesis 資料串流已加密，則適用其他考量。不支援使用 AWS 受管金鑰 （別名） `aws/kinesis` 加密的串流，且服務執行角色需要解密來源記錄的 AWS KMS 許可。如需來源串流加密需求，請參閱 [來源串流加密](data-delivery-security.md#data-delivery-security-source-stream-encryption)。如需 AWS KMS 服務執行角色所需的許可，請參閱 [資料交付的 IAM 許可](data-delivery-iam.md)。