

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

# 在 Amazon ECR 中為儲存庫建立生命週期政策
<a name="lp_creation"></a>

 使用生命週期政策來建立一組過期或封存未使用儲存庫映像的規則。建立生命週期政策後，受影響的映像會在 24 小時內過期或封存。

**注意**  
如果您使用 Amazon ECR 複寫跨不同區域或帳戶複製儲存庫，請注意，生命週期政策只能對建立儲存庫所在區域中的儲存庫採取動作。因此，如果您已開啟複寫功能，您可能需要考慮在複寫儲存庫的每個區域和帳戶中建立生命週期政策。

## 先決條件
<a name="lp-creation-prerequisite"></a>

**最佳實務：**建立生命週期政策預覽，以確認生命週期政策規則已過期或封存的映像是您想要的。如需說明，請參閱[在 Amazon ECR 中建立生命週期政策預覽](lpp_creation.md)。

## 建立生命週期政策 (AWS 管理主控台)
<a name="lp-creation-console"></a>

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

1. 從導覽列上，選擇其中包含要建立生命週期政策的儲存庫之區域。

1. 在導覽窗格中，依序選擇**私有登錄檔**和**儲存庫**。

1. 在**私有儲存庫**頁面中選取儲存庫，然後使用**動作**下拉式清單選擇**生命週期政策**。

1. 在儲存庫生命週期政策頁面中，選擇**建立規則**。

1. 為您的生命週期政策規則輸入下列詳細資訊。

   1. 在 **Rule priority (規則優先順序)** 中，輸入規則優先順序的編號。規則優先順序會決定生命週期政策規則的套用順序。規則優先順序數字越低表示優先順序越高。例如，優先順序為 1 的規則優先於優先順序為 2 的規則。

   1. 在 **Rule description (規則描述)** 中，輸入生命週期政策規則的描述。

   1. 針對**映像狀態**，請選擇**已標記 (萬用字元比對)**、**已標記 (前綴比對)**、**未標記**或**任何**。
**重要**  
若您指定多個標籤，只會選擇含有所有指定標籤的映像。

   1. 如果您在**映像狀態**選擇**已標記 (萬用字元比對)**，可針對**指定萬用字元比對標籤**指定含萬用字元 (**\***) 的映像標籤清單，以透過生命週期政策對其執行動作。例如，若您的映像已標記為 `prod`、`prod1`、`prod2` 等等，您可能需要指定 `prod*` 對所有映像執行動作。若您指定多個標籤，只會選擇含有所有指定標籤的映像。
**重要**  
每個字串最多可有 4 個萬用字元 (`*`)，例如 `["*test*1*2*3", "test*1*2*3*"]` 是有效字串，但 `["test*1*2*3*4*5*6"]` 則為無效。

   1. 如果您在**映像狀態**選擇**已標記 (前綴比對)**，則可針對**指定前綴比對標籤**指定映像標籤清單，以透過生命週期政策對其執行動作。

   1. 針對**相符條件**，選擇**影像建立後天數**、**上次記錄提取時間後天數**、**影像封存後天數**或**影像計數**，然後指定值。

   1. 針對**規則動作**，選擇**過期**或**封存**。

   1. 選擇**儲存**。

1. 重複操作步驟 5-7 來建立其他生命週期政策規則。

## 建立生命週期政策 (AWS CLI)
<a name="lp-creation-cli"></a>

1. 取得要建立生命週期政策的儲存庫名稱。

   ```
   aws ecr describe-repositories
   ```

1. 建立名為 `policy.json` 的本機檔案使用生命週期政策的內容。如需生命週期政策範例，請參閱「[Amazon ECR 中的生命週期政策範例](lifecycle_policy_examples.md)」。

1. 透過指定儲存庫名稱並參考您建立的生命週期政策 JSON 檔案來建立生命週期政策。

   ```
   aws ecr put-lifecycle-policy \
         --repository-name {{repository-name}} \
         --lifecycle-policy-text file://{{policy.json}}
   ```