

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

# 複寫回填
<a name="replication-backfill"></a>

您可以將 Amazon ECR 私有登錄檔中預先存在的影像複寫到設定的複寫目的地。根據預設，複寫僅適用於套用複寫組態後推送的映像。複寫回填可讓您複寫在設定複寫之前推送的映像。

## 複寫回填的運作方式
<a name="replication-backfill-how-it-works"></a>

當您開始複寫回填時，您可以指定由區域和登錄檔 ID 組成的單一目的地。Amazon ECR 會評估您現有的複寫組態，以判斷登錄檔中的哪些映像符合回填至指定目的地的資格。只有符合您目前複寫組態規則的影像才會包含在回填中。

每個複寫回填都以單一目的地為目標。若要將映像回填至多個目的地，請為每個目的地啟動個別的複寫回填。每個項目都會以`replicationBackfillId`您用來監控進度、檢視結果，並視需要停止的唯一 來識別。

## 複寫回填生命週期
<a name="replication-backfill-lifecycle"></a>

複寫回填會轉換下列狀態：
+ `PREPARING`：Amazon ECR 正在識別您登錄檔中的合格映像。
+ `IN_PROGRESS`：Amazon ECR 正在主動將映像複寫到目的地。
+ `COMPLETE`：已成功複寫所有合格的映像。
+ `FAILED`：如果 50% 或更多的基礎複寫失敗，複寫回填會自動失敗。此閾值只會在處理至少 100 個複寫時評估。
+ `STOPPING`：已請求停止，Amazon ECR 正在等待傳輸中複寫完成。
+ `STOPPED`：您已停止複寫回填，且所有進行中的複寫都已結束。

**注意**  
您只能在複寫回填處於 `PREPARING`或 `IN_PROGRESS` 狀態時停止複寫回填。

## 複寫回填的考量事項
<a name="replication-backfill-considerations"></a>

使用複寫回填時，應考慮下列事項。
+ 回填中只會包含符合指定目的地目前複寫組態的影像。如果您需要將映像回填至不在複寫組態中的目的地，您必須先將該目的地新增至複寫規則。
+ 每個登錄檔最多可以同時執行 10 個複寫回填。如果您啟動更多，Amazon ECR 會傳回`LimitExceededException`錯誤。
+ 對於指定的目的地區域，您一次只能有一個作用中的複寫回填。對相同目的地區域的第二個請求會傳回`ReplicationBackfillInProgressException`錯誤。
+ Amazon ECR 會在完成後將複寫回填保留在終端狀態 (`FAILED`、 `COMPLETE`或 `STOPPED`) 90 天。在此期間，它們會在`ListReplicationBackfills`回應中保持可見。
+ 停止複寫回填不會復原已複寫的影像。這些映像會保留在目的地登錄檔中。
+ 複寫回填使用與 Amazon ECR 在您第一次為私有登錄檔設定複寫時建立的相同服務連結角色。
+ 大多數登錄檔預期會在一小時內完成回填。不過，包含大量資料的登錄檔可能需要數小時甚至數天才能完全回填。
+ 複寫回填會略過其來源儲存庫已刪除的映像。這些影像會在回填結果中顯示 `FAILED` 狀態。
+ 當複寫回填達到終端機狀態時，Amazon ECR 會傳送 EventBridge 事件。如需詳細資訊，請參閱[來自 Amazon ECR 的範例事件](ecr-eventbridge.md#ecr-eventbridge-bus)。

## 開始複寫回填
<a name="replication-backfill-start"></a>

### 開始複寫回填 (AWS 管理主控台)
<a name="replication-backfill-start-console"></a>

1. 在 [https://console.aws.amazon.com/ecr/repositories](https://console.aws.amazon.com/ecr/repositories) 開啟 Amazon ECR 主控台。

1. 從導覽列中，選擇要回填的來源登錄檔區域。

1. 在導覽窗格中，選擇 **Private registry** (私有登錄檔)。

1. 在**私有登錄**頁面上，選擇**設定**，然後選擇**複寫組態**下的**編輯**。

1. 在**複寫**頁面上，選擇**回填任務**索引標籤。

1. 選擇**開始回填任務**。

1. 選擇最多 10 個您要回填的目的地。

1. 選擇**開始回填任務**。

### 開始複寫回填 (AWS CLI)
<a name="replication-backfill-start-cli"></a>
+ 開始複寫回填。

  ```
  aws ecr start-replication-backfill \
      --region {{us-west-2}} \
      --registry-id {{aws_account_id}} \
      --destination region={{destination_region}},registryId={{destination_aws_account_id}}
  ```

## 監控複寫回填進度並檢視結果
<a name="replication-backfill-monitor"></a>

### 監控複寫回填進度並檢視複寫回填結果 (AWS 管理主控台)
<a name="replication-backfill-monitor-console"></a>

1. 在 [https://console.aws.amazon.com/ecr/repositories](https://console.aws.amazon.com/ecr/repositories) 開啟 Amazon ECR 主控台。

1. 從導覽列中，選擇包含複寫回填的區域。

1. 在導覽窗格中，選擇 **Private registry** (私有登錄檔)。

1. 在**私有登錄**頁面上，選擇**設定**，然後選擇**複寫組態**下的**編輯**。

1. 在**複寫**頁面上，選擇**回填任務**索引標籤來監控進度，並檢視複寫回填的結果。

### 監控複寫回填進度並檢視複寫回填結果 (AWS CLI)
<a name="replication-backfill-monitor-cli"></a>

1. 若要監控進度或檢視複寫回填的結果，請執行下列命令。當複寫回填進行中時，回應只會包含進度計數。每個影像結果和分頁只有在完成後才能使用。

   ```
   aws ecr describe-replication-backfill-results \
       --region {{us-west-2}} \
       --registry-id {{aws_account_id}} \
       --replication-backfill-id {{a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}} \
       --max-results 1000 \
       --result-status-filter COMPLETE
   ```

1. 若要檢視所有複寫回填的摘要資訊，請執行下列命令。

   ```
   aws ecr list-replication-backfills \
       --region {{us-west-2}} \
       --registry-id {{aws_account_id}} \
       --max-results 50
   ```

## 停止複寫回填
<a name="replication-backfill-stop"></a>

### 停止複寫回填 (AWS 管理主控台)
<a name="replication-backfill-stop-console"></a>

1. 在 [https://console.aws.amazon.com/ecr/repositories](https://console.aws.amazon.com/ecr/repositories) 開啟 Amazon ECR 主控台。

1. 從導覽列中，選擇包含複寫回填的區域。

1. 在導覽窗格中，選擇 **Private registry** (私有登錄檔)。

1. 在**私有登錄**頁面上，選擇**設定**，然後選擇**複寫組態**下的**編輯**。

1. 在**複寫**頁面上，選擇**回填任務**索引標籤。

1. 選擇您要停止的複寫回填。

1. 選擇**停止回填任務**。

### 停止複寫回填 (AWS CLI)
<a name="replication-backfill-stop-cli"></a>
+ 若要停止複寫回填，請執行下列命令。

  ```
  aws ecr stop-replication-backfill \
      --region {{us-west-2}} \
      --registry-id {{aws_account_id}} \
      --replication-backfill-id {{a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}}
  ```