

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

# 管理複寫
<a name="manage-outposts-replication"></a>

本節描述 S3 on Outposts 中可用的其他複寫組態選項、如何判斷複寫狀態，以及如何疑難排解複寫。如需核心複寫組態的資訊，請參閱 [設定複寫](outposts-replication-how-setup.md)。

**Topics**
+ [使用複寫指標監控進度](#outposts-enabling-replication-metrics)
+ [取得複寫狀態資訊](#outposts-replication-status)
+ [故障排除複寫](#outposts-replication-troubleshoot)
+ [針對 Outposts 上的 S3 複寫使用 EventBridge](outposts-replication-eventbridge.md)

## 使用複寫指標監控進度
<a name="outposts-enabling-replication-metrics"></a>

Outposts 上的 S3 複寫提供了複寫組態中複寫規則的詳細指標。透過追蹤擱置複寫的位元組、複寫延遲和作業擱置，您可以每 5 分鐘以複寫指標，監控複寫進度。您也可以設定 Amazon EventBridge 以接收複寫失敗通知，協助疑難排解任何組態問題。

啟用複寫指標後，Outposts 上的 S3 複寫會將下列指標發佈至 Amazon CloudWatch：
+ **擱置複寫的位元組** — 針對指定的複寫規則，擱置複寫的物件位元組總數。
+ **複寫延遲** — 針對指定的複寫規則，複寫目的地儲存貯體位於來源儲存貯體後方的秒數上限。
+ **擱置複寫的作業** – 針對指定的複寫規則，擱置複寫的作業數量。作業包含物件、刪除標記和標籤。

**注意**  
Outposts 上的 S3 複寫指標的計費方式與 CloudWatch 自訂指標相同。如需詳細資訊，請參閱 [CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

## 取得複寫狀態資訊
<a name="outposts-replication-status"></a>

複寫狀態可協助您判斷要由 Amazon S3 on Outposts 複寫之物件的目前狀態。來源物件的複寫狀態將會傳回 `PENDING`、`COMPLETED` 或 `FAILED`。複本的複寫狀態將會傳回 `REPLICA`。

### 複寫狀態概觀
<a name="outposts-replication-status-overview"></a>

在複寫中，您有一個來源儲存貯體，您可以在其上設定複寫與 S3 on Outposts 複寫物件的目的地儲存貯體。當您從這些儲存貯體請求物件 (使用 `GetObject`) 或物件中繼資料 (使用 `HeadObject`) 時，S3 on Outposts 會在回應中傳回 `x-amz-replication-status` 標頭，如下所示：
+ 當您從來源儲存貯體請求物件時，如果請求中的物件符合複寫資格，S3 on Outposts 即會傳回 `x-amz-replication-status` 標頭。

  例如，假設您在複寫組態中指定物件前綴 `TaxDocs`，告知 S3 on Outposts 複寫僅具有金鑰名稱前綴 `TaxDocs` 的物件。系統會複寫您上傳且具有此金鑰名稱前綴 (例如 `TaxDocs/document1.pdf`) 的任何物件。針對具有此金鑰名稱前綴的物件請求，S3 on Outposts 會傳回 `x-amz-replication-status` 標頭，以及代表物件複寫狀態的下列其中一個值：`PENDING`、`COMPLETED` 或 `FAILED`。
**注意**  
若物件複寫在您上傳完物件後失敗，則您無法重試複寫。您必須再次上傳物件。對於缺少複寫角色許可或儲存貯體許可等問題，物件會轉換成 `FAILED` 狀態。對於暫時性錯誤，例如，如果儲存貯體或 Outpost 無法使用，複寫狀態不會轉換成 `FAILED`，但會保持 `PENDING`。資源恢復線上狀態後，S3 on Outposts 會繼續複寫這些物件。
+ 當您從目的地儲存貯體請求物件時，如果您請求中的物件是 S3 on Outposts 建立的複本，S3 on Outposts 會傳回值為 `REPLICA` 的 `x-amz-replication-status` 標頭。

**注意**  
在從已啟用複寫的來源儲存貯體中刪除物件之前，您應該先檢查物件的複寫狀態，確保已複寫物件。

### 啟用 Outposts 上的 Amazon S3 複本修改同步時的複寫狀態
<a name="outposts-replication-status-sync"></a>

當您的複寫規則啟用 S3 on Outposts 複本修改同步時，複本可以報告 `REPLICA` 以外的狀態。如果中繼資料變更正在複寫過程中，則複寫 `x-amz-replication-status` 標頭會傳回 `PENDING`。如果複本修改同步無法複寫中繼資料，則複寫標頭會傳回 `FAILED`。如果中繼資料正確複寫，複寫標頭會傳回值 `REPLICA`。

## 故障排除複寫
<a name="outposts-replication-troubleshoot"></a>

在您設定複寫之後，如果物件複本未出現在目的地 Amazon S3 on Outposts 儲存貯體中，請使用這些故障診斷技巧以識別並修正問題。
+ S3 on Outposts 複寫物件所需的時間長短取決於幾個因素，包括來源和目的地 Outposts 的距離，以及物件的大小。

  您可以檢查來源物件的複寫狀態。如果物件複寫狀態為 `PENDING`，表示 S3 on Outposts 尚未完成複寫。如果物件複寫狀態為 `FAILED`，請檢查來源儲存貯體中所設的複寫組態。
+ 在來源儲存貯體中的複寫組態中，驗證下列項目：
  + 目的地儲存貯體的存取點 Amazon Resource Name (ARN) 正確。
  + 金鑰名稱前綴正確。例如，如果您設定組態來複寫具有前綴 `Tax` 的物件，則只會複寫具有 `Tax/document1` 或 `Tax/document2` 等金鑰名稱的物件。不會複寫具有金鑰名稱 `document3` 的物件。
  + 狀態為 `Enabled`。
+ 確認在任何儲存貯體上均沒有已暫停的版本控制。來源與目的地儲存貯體都必須啟用版本控制。
+ 如果目的地儲存貯體由另一個儲存貯體擁有 AWS 帳戶，請確認儲存貯體擁有者在目的地儲存貯體上有儲存貯體政策，允許來源儲存貯體擁有者複寫物件。如需範例，請參閱 [當來源和目的地 Outposts 儲存貯體由不同 擁有時授予許可 AWS 帳戶](outposts-replication-prerequisites-config.md#outposts-rep-prethree)。
+ 如果目的地儲存貯體中未出現物件複本，可能是下列問題阻礙了複寫作業：
  + 如果來源儲存貯體中的物件是由另一個複寫組態所建立的複本，則 S3 on Outposts 不會複寫該複本。例如，如果您將複寫組態從儲存貯體 A 設定到儲存貯體 B，再設定到儲存貯體 C，則 S3 on Outposts 不會將儲存貯體 B 中的物件複本複寫至儲存貯體 C。

    如果您想要將儲存貯體 A 的物件複製到儲存貯體 B 和儲存貯體 C，請在不同的複寫規則中，為來源儲存貯體複寫組態設定多個儲存貯體目的地。例如，在來源儲存貯體 A 上建立兩個複寫規則，其中一個規則可複寫到目的地儲存貯體 B，另一個規則複寫到目的地儲存貯體 C。
  + 來源儲存貯體擁有者可以授予其他上傳物件的 AWS 帳戶 許可。根據預設，來源儲存貯體擁有者不具其他帳戶所建立之物件的任何許可。複寫組態只會複寫來源儲存貯體擁有者具備存取許可的物件。為了避免複寫問題，來源儲存貯體擁有者可以授予其他 AWS 帳戶 許可，以有條件地建立物件，並需要這些物件的明確存取許可。
+ 假設您在複寫組態中新增一個規則，以複寫含特定標籤的物件子集。在此情況下，您必須於建立物件時指派特定標籤金鑰與值，以便 S3 on Outposts 複寫物件。如果您先建立物件，之後才將標籤新增至現有物件，S3 on Outposts 就不會複寫該物件。
+ 如果儲存貯體政策拒絕存取下列任何動作的複寫角色，則複寫會失敗：

  來源儲存貯體：

  ```
  1. "s3-outposts:GetObjectVersionForReplication",
  2. "s3-outposts:GetObjectVersionTagging"
  ```

  目的地儲存貯體：

  ```
  1. "s3-outposts:ReplicateObject",
  2. "s3-outposts:ReplicateDelete",
  3. "s3-outposts:ReplicateTags"
  ```
+ 當物件未複寫至其目的地 Outposts 時，Amazon EventBridge 可以通知您。如需詳細資訊，請參閱[針對 Outposts 上的 S3 複寫使用 EventBridge](outposts-replication-eventbridge.md)。