

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

# 管理 Image Builder 映像的生命周期策略
<a name="manage-image-lifecycles"></a>

创建自定义映像时，重要的是要制定计划，在这些映像过时之前将其停用。Image Builder 管道可自动应用更新和安全补丁。但是，每次构建都会创建映像的新版本及其分配的所有关联资源。早期版本将保留在您的账户中，直到您手动将其删除，或创建脚本来执行任务。

借助 Image Builder 生命周期管理策略，您可以自动执行弃用、禁用和删除过时的映像及其关联资源的过程。关联的资源可以包括您分发给其他人 AWS 账户、组织和组织单位 (OUs) 的输出图像 AWS 区域。您可以定义规则，规定如何以及何时执行生命周期过程中的每个步骤，以及要在策略中包含哪些步骤。

**自动化生命周期管理的优势**  
自动化生命周期管理的总体优势包括：
+ 通过自动停用映像和关联资源的方式，简化自定义映像的生命周期管理。
+ 有助于防止使用过时映像启动新实例所带来的合规风险。
+ 删除过时映像来保持映像库存的新鲜度。
+ 可以选择性删除已删除映像的关联资源，从而降低存储和数据传输成本。

**实现成本节省**  
使用 EC2 Image Builder 创建自定义 AMI 或容器映像，无需任何费用。但是，标准定价仍适用于该过程中使用的其他服务。当您从中移除未使用或过时的图像及其相关资源时 AWS 账户，可以通过以下方式节省时间和成本：
+ 不同时修补未使用或过时的映像时，可以减少修补现有映像所需的时间。
+ 对于您删除的 AMI 图像资源，您可以选择同时移除分布式快照AMIs 及其关联的快照。这种方法可以节省存储快照的成本。
+ 对于您删除的容器映像资源，可以选择删除底层资源。这种方法可以节省存储在 ECR 存储库中 Docker 映像的 Amazon ECR 存储成本和数据传输费率。

**注意**  
Image Builder 无法评估所有可能的下游依赖项（例如自动扩缩组或启动模板）的潜在影响。配置策略操作时，必须考虑映像的下游依赖项。

**Topics**
+ [Image Builder 映像的生命周期管理先决条件](image-lifecycle-prerequisites.md)
+ [列出 Image Builder 映像资源的生命周期管理策略](list-lifecycle-policies.md)
+ [查看生命周期策略详细信息](view-lifecycle-policy.md)
+ [创建生命周期策略](create-lifecycle-policies.md)
+ [生命周期管理规则如何适用于 Image Builder 映像资源](image-lifecycle-rules.md)

# Image Builder 映像的生命周期管理先决条件
<a name="image-lifecycle-prerequisites"></a>

您必须满足以下先决条件，才能为映像资源定义 EC2 Image Builder 生命周期管理策略和规则。
+ 创建一个 IAM 角色，该角色可授予 Image Builder 运行生命周期策略的权限。您可以通过以下方式之一创建此角色：
  + **创建生命周期策略时，使用 Image Builder 控制台中的 “使用服务默认值创建生命周期执行角色**” 选项。这会自动创建一个附加`EC2ImageBuilderLifecycleExecutionPolicy`托管策略的角色。
  + 使用 Image Builder 控制台中的 “**创建新的生命周期执行角色**” 选项，这将打开 IAM，其中包含预先填写的设置，便于一键创建角色。
  + 在 IAM 控制台中手动创建角色。有关 step-by-step说明，请参阅[为 Image Builder 生命周期管理创建 IAM 角色](#image-lifecycle-prereq-role)。
+ 在目标账户中为跨账户分配的关联资源创建 IAM 角色。该角色可授予 Image Builder 在目标账户中对关联资源执行生命周期操作的权限。要创建该角色，请参阅[为 Image Builder 跨账户生命周期管理创建 IAM 角色](#image-lifecycle-prereq-cross-acct-role)。
**注意**  
如果您已为输出 AMI 授予启动权限，则不适用此先决条件。借助启动权限，您与之共享的账户拥有从共享 AMI 启动的实例，但所有 AMI 资源仍保留在您的账户中。
+ 对于容器映像，您必须将以下标签添加到 ECR 存储库，向 Image Builder 授予访问权限，以便对存储在存储库中的容器映像运行生命周期操作：`LifecycleExecutionAccess: EC2 Image Builder`。

## 为 Image Builder 生命周期管理创建 IAM 角色
<a name="image-lifecycle-prereq-role"></a>

要授予 Image Builder 运行生命周期策略的权限，您必须先创建用于执行生命周期操作的 IAM 角色。按照以下步骤创建授予权限的服务角色。

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 从导航窗格中，选择 **Roles**。

1. 选择**创建角色**。此操作将进入流程的第一步**选择可信实体**，以创建您的角色。

1. 对于**可信实体类型**，请选择**自定义信任策略**选项。

1. 复制以下 JSON 信任策略，将其粘贴到**自定义信任策略**文本区域中，从而替换示例文本。此信任策略允许 Image Builder 担任您为运行生命周期操作而创建的角色。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "sts:AssumeRole"
               ],
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "imagebuilder.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

------

1. 从列表中选择以下托管策略：**EC2ImageBuilderLifecycleExecutionPolicy**，然后选择**下一步**。此操作将打开**命名、检查并创建**页面。
**提示**  
筛选 `image` 以简化结果。

1. 输入**角色名称**。

1. 查看设置后，请选择**创建角色**。

## 为 Image Builder 跨账户生命周期管理创建 IAM 角色
<a name="image-lifecycle-prereq-cross-acct-role"></a>

要授予 Image Builder 在目标账户中对关联资源执行生命周期操作的权限，您必须首先创建其用于在这些账户中执行生命周期操作的 IAM 角色。您必须在目标账户中创建角色。

按照以下步骤创建*在目标账户中*授予权限的服务角色。

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 从导航窗格中，选择 **Roles**。

1. 选择**创建角色**。此操作将进入流程的第一步**选择可信实体**，以创建您的角色。

1. 对于**可信实体类型**，请选择**自定义信任策略**选项。

1. 复制以下 JSON 信任策略，将其粘贴到**自定义信任策略**文本区域中，从而替换示例文本。此信任策略允许 Image Builder 担任您为运行生命周期操作而创建的角色。
**注意**  
当 Image Builder 在目标账户中使用该角色对跨账户分配的关联资源进行操作时，其代表目标账户所有者行事。您在信任策略`aws:SourceAccount`中配置的账户是 Image Builder 分发这些资源的账户。 AWS 账户 

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "imagebuilder.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "444455556666"
                   },
                   "StringLike": {
                       "aws:SourceArn": "arn:*:imagebuilder:*:*:image/*/*/*"
                   }
               }
           }
       ]
   }
   ```

1. 从列表中选择以下托管策略：**EC2ImageBuilderLifecycleExecutionPolicy**，然后选择**下一步**。此操作将打开**命名、检查并创建**页面。
**提示**  
筛选 `image` 以简化结果。

1. 输入 `Ec2ImageBuilderCrossAccountLifecycleAccess` 作为**角色名称**。
**重要**  
`Ec2ImageBuilderCrossAccountLifecycleAccess` 必须是该角色的名称。

1. 查看设置后，请选择**创建角色**。

# 列出 Image Builder 映像资源的生命周期管理策略
<a name="list-lifecycle-policies"></a>

您可以获取图像生命周期管理策略列表，其中包括生命**周期策略**列表页面上的关键详细信息列 AWS 管理控制台，或者在 Image Builder API 中获取命令或操作 SDKs、或 AWS CLI。

您可以使用以下方法之一列出您 AWS 账户中的 Image Builder 映像生命周期策略资源。有关 API 操作，请参阅 *EC2 Image Builder API 参考[ListLifecyclePolicies](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListLifecyclePolicies.html)*中的。有关关联的 SDK 请求，请参阅同一页面上的[另请参阅](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListLifecyclePolicies.html#API_ListLifecyclePolicies_SeeAlso)链接。

------
#### [ AWS 管理控制台 ]

控制台中显示了现有策略的以下详细信息。您可以选择任何列来更改结果的排序顺序。策略列表最初按**策略名称**进行排序。当前排序顺序的列名以粗体显示。

如果结果不止一页，则面板右上角的分页箭头将变为活动状态。您可以通过搜索栏按策略名称、策略状态、输出映像类型和映像资源 ARN 筛选结果。
+ **策略名称** – 策略的名称。
+ **策略状态** – 策略处于活动状态还是非活动状态。
+ **类型** – 创建新映像版本（AMI 或容器映像）时 Image Builder 分配的输出映像类型。
+ **上次执行日期** – 生命周期策略上次运行的时间。
+ **创建日期** – 生命周期策略创建以来的时间戳。
+ **ARN** – 生命周期策略资源的 Amazon 资源名称（ARN）。

要在中列出生命周期策略 AWS 管理控制台，请执行以下步骤：

1. 打开 EC2 Image Builder 控制台，网址为[https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)。

1. 在导航窗格中，选择**生命周期策略**。这将显示您账户中的映像生命周期策略列表。

**可用操作**  
您也可以从**生命周期策略**列表页面对生命周期策略执行以下操作。

要创建新的映像生命周期策略，请选择**创建生命周期策略**。有关如何创建策略的更多信息，请参阅[创建生命周期策略](create-lifecycle-policies.md)。

要执行以下所有操作，必须首先选择策略。要选择策略，可以选中**策略名称**旁的复选框。
+ 要关闭或打开策略，请从**操作**菜单中选择**禁用策略**或**启用策略**。
+ 要更改策略，请从**操作**菜单中选择**编辑策略**。
+ 要删除策略，请从**操作**菜单中选择**删除策略**。
+ 要创建使用所选策略作为基准设置的新策略，请从**操作**菜单中选择**克隆策略**。

------
#### [ AWS CLI ]

以下命令示例说明如何使用列 AWS CLI 出特定镜像生命周期策略 AWS 区域。有关可用于此命令的参数和选项的更多信息，请参阅《[list-lifecycle-policies](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-lifecycle-policies.html)命令参考》中的 AWS CLI 命令。

**示例**：

```
aws imagebuilder list-lifecycle-policies \
--region us-west-1
```

**输出**：

```
{
    "lifecyclePolicySummaryList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:111122223333:lifecycle-policy/sample-lifecycle-policy1",
            "name": "sample-lifecycle-policy1",
            "status": "DISABLED",
            "executionRole": "arn:aws:iam::111122223333:role/sample-lifecycle-role",
            "resourceType": "AMI_IMAGE",
            "dateCreated": "2023-11-07T14:57:01.603000-08:00",
            "tags": {}
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:111122223333:lifecycle-policy/sample-lifecycle-policy2",
            "name": "sample-lifecycle-policy2",
            "status": "ENABLED",
            "executionRole": "arn:aws:iam::111122223333:role/sample-lifecycle-role",
            "resourceType": "AMI_IMAGE",
            "dateCreated": "2023-09-06T10:43:21.436000-07:00",
            "dateLastRun": "2023-11-13T04:43:46.106000-08:00",
            "tags": {}
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:111122223333:lifecycle-policy/sample-lifecycle-policy3",
            "name": "sample-lifecycle-policy3",
            "status": "ENABLED",
            "executionRole": "arn:aws:iam::111122223333:role/sample-lifecycle-role",
            "resourceType": "AMI_IMAGE",
            "dateCreated": "2023-10-19T15:16:40.046000-07:00",
            "dateUpdated": "2023-10-21T20:07:15.958000-07:00",
            "dateLastRun": "2023-11-12T09:27:45.830000-08:00"
}]}
```

**注意**  
要使用默认值 AWS 区域，请在不带`--region`参数的情况下运行此命令。

------

# 查看生命周期策略详细信息
<a name="view-lifecycle-policy"></a>

Image Builder 控制台中的生命周期策略详情页包含摘要部分，其他信息分组到选项卡中。页面标题为策略名称。

在 Image Builder 控制台的生命周期策略详细信息页面上，您可以查看特定生命周期策略的详细信息。您还可以在 Image Builder API 中使用命令或操作 AWS CLI 来获取策略详情。 SDKs

**Topics**
+ [在 Image Builder 控制台中查看生命周期策略详细信息](#view-lifecycle-policy-details-console)

## 在 Image Builder 控制台中查看生命周期策略详细信息
<a name="view-lifecycle-policy-details-console"></a>

Image Builder 控制台中的映像详细信息页面包含摘要部分，其他信息按标签页分组。页面标题是创建映像的配方的名称和构建版本。

**Topics**
+ [摘要部分](#view-lifecycle-policy-console-summary)
+ [规则选项卡](#view-lifecycle-policy-console-rules-tab)
+ [“范围”选项卡](#view-lifecycle-policy-console-scope-tab)
+ [RunLog 选项卡](#view-lifecycle-policy-console-runlog-tab)

### 摘要部分
<a name="view-lifecycle-policy-console-summary"></a>

摘要部分跨越页面的宽度，包括以下详细信息。这些详细信息将始终显示。

**策略状态**  
策略处于活动还是非活动状态。

**Type**  
创建新映像版本（AMI 或容器映像）时 Image Builder 分配的输出映像类型。

**Date created (创建日期)**  
生命周期策略创建以来的时间戳。

**修改日期**  
生命周期策略上次更新的时间。

**上次运行日期**  
生命周期策略上次运行的时间。

**IAM 角色**  
Image Builder 用于执行生命周期操作的 IAM 角色。

**ARN**  
生命周期策略资源的 Amazon 资源名称（ARN）。

**描述**  
生命周期策略的描述（如果输入）。

### 规则选项卡
<a name="view-lifecycle-policy-console-rules-tab"></a>

**规则**选项卡显示您为正在查看的策略配置的生命周期规则。该选项卡包含以下详细信息：
+ **名称** – 规则的名称。基于您可以配置的策略操作，这些名称是静态的。
  + `Deprecation rule`
  + `Disable rule`
  + `Deletion rule`
+ **规则** – 为规则配置的操作的简短描述。
+ **规则条件** – 列出关联资源处理的配置、规则的例外情况以及保留设置（如适用）。

有关规则配置的更多信息，请参阅[生命周期规则的工作方式](image-lifecycle-rules.md)。

### “范围”选项卡
<a name="view-lifecycle-policy-console-scope-tab"></a>

**范围**选项卡显示为您正在查看的策略配置的资源选择标准。该选项卡包含以下详细信息：
+ **Filter: *type of filter***-用于定义范围的过滤器类型。筛选条件类型可以是以下类型之一：
  + `recipes` – 用于创建生命周期策略适用映像的配方。
  + `tags` – Image Builder 用于选择生命周期策略适用映像资源的一组标签。
+ 搜索栏 – 您可以按**名称**筛选列表，以简化选项卡中显示的结果。
+ **名称** – 每一行都包含您为筛选标准配置的名称或标签。
+ **版本** – 如果您配置了配方筛选条件，则 Image Builder 会显示配方版本。

### RunLog 选项卡
<a name="view-lifecycle-policy-console-runlog-tab"></a>

每次为配置的资源运行策略时，Image Builder 都会保存运行时详细信息。表中的每一行代表一个运行时实例。该选项卡包含以下详细信息：
+ **执行 ID** – 标识生命周期策略运行时实例。
+ **执行状态** – 运行时状态，可报告策略操作当前是否正在运行、已成功运行、已失败或已取消。
+ **受影响的资源** – 表示运行时实例是否为生命周期操作标识了任何映像资源。
+ **开始日期** – 运行时实例启动时的时间戳。
+ **结束日期** –运行时实例结束时的时间戳。

# 创建生命周期策略
<a name="create-lifecycle-policies"></a>

创建新的 EC2 Image Builder 生命周期策略时，配置取决于该策略适用的映像类型。为 AMI 映像资源和容器镜像资源创建生命周期策略的 API 操作相同 ([CreateLifecyclePolicy](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateLifecyclePolicy.html))。但是，映像资源和关联资源的配置有所不同。本节将介绍如何为两种资源创建生命周期管理策略。

**注意**  
创建生命周期策略之前，请确保您已满足所有 [先决条件](image-lifecycle-prerequisites.md)。

## 创建 Image Builder AMI 映像资源的生命周期管理策略
<a name="create-lifecycle-policy-ami"></a>

您可以使用以下方法之一通过 AWS 管理控制台 或创建 AMI 映像生命周期策略 AWS CLI。您也可以使用 [CreateLifecyclePolicy](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateLifecyclePolicy.html)API 操作。更多有关关联的 SDK 请求的信息，可参阅《*EC2 Image Builder API 参考*》中该命令的[See Also](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateLifecyclePolicy.html#API_CreateLifecyclePolicy_SeeAlso)链接。

------
#### [ AWS 管理控制台 ]

要在中为 AMI 图像资源创建生命周期策略 AWS 管理控制台，请执行以下步骤：

1. 打开 EC2 Image Builder 控制台，网址为[https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)。

1. 在导航窗格中，选择**生命周期策略**。

1. 选择**创建生命周期策略**。

1. 按以下步骤中的描述配置策略设置。

1. 要在配置设置后创建生命周期策略，请选择**创建策略**。

配置策略的**常规**设置。

1. 从**策略类型**中选择 **AMI** 选项。

1. 输入**策略名称**。

1. （可选）输入生命周期策略的**描述**。

1. 默认情况下，**激活**处于开启状态。默认设置会激活生命周期策略并将其立即添加到计划中。要创建最初停用的策略，可以关闭**激活**。

1. 对于 **IAM 角色**，请选择以下选项之一：
   + **使用服务默认值创建生命周期执行角色**-生成附有`EC2ImageBuilderLifecycleExecutionPolicy`托管策略的预配置角色。如果您没有特定的自定义权限要求，则推荐使用此选项。
   + **选择现有角色**-从下拉列表中选择现有 IAM 角色。该列表会筛选出与生命周期策略执行不兼容的服务相关角色 (SLRs)。
   + **创建新的生命周期执行角色** — 打开 IAM 控制台，其中包含预先填写的信任策略和生命周期执行策略设置，便于一键创建角色。有关 step-by-step说明，请参阅[为 Image Builder 生命周期管理创建 IAM 角色](image-lifecycle-prerequisites.md#image-lifecycle-prereq-role)。
**注意**  
服务相关角色与生命周期策略的执行不兼容，并且会自动从角色选择中筛选出来。如果您之前使用服务相关角色创建了生命周期策略，则可以更新该策略以使用兼容的执行角色。

配置策略的**规则范围**。

本部分根据您使用的筛选条件类型配置生命周期策略的资源选择。

1. **筛选条件类型：配方** – 要根据创建映像资源的配方将生命周期规则应用于映像资源，请为该策略选择最多 50 个配方版本。您可以使用分屏浏览器搜索食谱并选择特定版本。

   您还可以为语义版本使用通配符模式，通过单个策略将配方的多个版本作为目标。支持以下通配符模式：
   + `x.x.x`— 匹配食谱的所有版本。
   + `1.x.x`— 匹配主版本 1 中的所有次要版本和补丁版本。
   + `1.0.x`— 匹配版本 1.0 中的所有补丁版本。

   在执行时，通配符模式会解析到所有匹配的配方版本。这意味着在您设置策略后创建的新配方版本将自动包含在下次计划执行中。
**注意**  
在策略执行开始后创建或删除的配方版本要等到下次计划执行时才包括在内。

1. **筛选条件类型：标签** – 要根据资源标签将生命周期规则应用于映像资源，请输入最多包含 50 个键值对的列表，供策略进行匹配。Image Builder 通过标签扫描发现资源，并将生命周期规则应用于匹配的资源。
**注意**  
策略执行开始后标记或未标记的资源要等到下次计划执行时才包括在内。

为您的策略配置**排除规则**（可选）。

排除规则定义生命周期规则的例外情况。符合排除规则所指定标准的资源将被排除在生命周期操作之外。

1. 对于 AMI 映像策略，您可以配置以下 AMI 排除规则：
   + **排除公众 AMIs**-选择此选项可将公众排除在生命周期操作 AMIs 之外。
   + ** AMIs 按区域排除**-指定 AWS 区域 从生命周期操作中排除。
   + **排除与账户 AMIs 共享**-指定生命周期操作中 AMIs 应排除 AWS 账户 谁的共享。
   + **排除最近启动**的实例 AMIs-指定 AMIs 要排除最近用于启动实例的时间段。
   + ** AMIs 按标签排除**-指定 AMIs 应从生命周期操作中排除的标签。

1. 对于基于标签的 Image Builder 图像策略，您可以为生命周期操作中应排除的 Image Builder 图像资源指定标签。

启用以下一条或多条**生命周期规则**，以应用于生命周期策略选择的资源。如果某个资源在策略运行时与多个生命周期规则相匹配，则 Image Builder 将按以下顺序执行规则操作：1) 弃用、2) 禁用、3) 删除。

**弃用规则**  
将 Image Builder 映像资源状态设置为 `Deprecated`。对于已弃用的映像，Image Builder 管道仍会运行。您可以选择为关联设置弃用时间， AMIs 而不会影响您启动新实例的能力。
+ **单位数** – 指定映像资源创建后必须经过的时间段的整数值，然后将其标记为 `Deprecated`。
+ **单位** – 选择要使用的时间范围。该值可以为 `Days`、`Weeks`、`Months` 或 `Years`。
+ **弃用 AMIs** — 选中该复选框可将关联的 Amazon EC2 AMIs 标记为弃用日期。它们 AMIs 仍然可用，您仍然可以从中启动新实例。

**禁用规则**  
将 Image Builder 映像资源状态设置为 `Disabled`。对于该映像，此操作会阻止 Image Builder 管道运行。您可以选择禁用关联的 AMI 以防止启动新实例。
+ **单位数** – 指定映像资源创建后必须经过的时间段的整数值，然后将其标记为 `Disabled`。
+ **单位** – 选择要使用的时间范围。该值可以为 `Days`、`Weeks`、`Months` 或 `Years`。
+ **禁用 AMIs**-选中该复选框可禁用关联的 Amazon EC2 AMIs。您不能再使用它们 AMIs 或从中启动新实例。

**删除规则**  
按使用期限或数量删除映像资源。您可以定义满足您需求的阈值。当 Image Builder 映像资源超过阈值时，会将其删除。您可以选择取消注册关联的快照， AMIs 也可以删除这些 AMIs快照。您还可以为希望保留超过阈值的资源指定标签。

按使用期限配置**删除规则**时，Image Builder 会在您配置的一段时间后删除映像资源。例如，在 6 个月后删除映像资源。按数量配置时，Image Builder 会保留您指定的最新映像数量或尽可能接近该数量，并删除早期版本。
+ 

**按使用期限**
  + **单位数** – 指定映像资源创建后必须经过的时间段的整数值，然后将其删除。
  + **单位** – 选择要使用的时间范围。该值可以为 `Days`、`Weeks`、`Months` 或 `Years`。
  + **每个配方至少保留一个映像** – 选中该复选框，为受此规则影响的每个配方版本保留最新的可用映像资源。

**按数量**
  + **映像计数** – 指定为每个配方版本保留的最新映像资源数量的整数值。
+ **取消注册 AMIs** — 选中该复选框可取消注册关联的 Amazon EC2。 AMIs您不能再使用它们 AMIs 或从中启动新实例。
+ **保留带有关联标签的图像和快照**-选中该复选框可输入要保留的图像资源的标签列表。 AMIs标签适用于图像资源和 Amazon EC2 AMIs。最多可输入 50 个键值对。

**标签（可选）**  
将标签添加到生命周期策略。

------
#### [ AWS CLI ]

要创建新的 Image Builder 生命周期策略，您可以在 AWS CLI中使用 **[create-lifecycle-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/create-lifecycle-policy.html)** 命令。

------

## 创建 Image Builder 容器映像资源的生命周期管理策略
<a name="create-lifecycle-policy-container"></a>

您可以使用以下方法之一通过 AWS 管理控制台 或创建容器映像生命周期策略 AWS CLI。您也可以使用 [CreateLifecyclePolicy](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateLifecyclePolicy.html)API 操作。更多有关关联的 SDK 请求的信息，可参阅《*EC2 Image Builder API 参考*》中该命令的[See Also](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateImage.html#API_CreateLifecyclePolicy_SeeAlso)链接。

------
#### [ AWS 管理控制台 ]

要在中为容器镜像资源创建生命周期策略 AWS 管理控制台，请执行以下步骤：

1. 打开 EC2 Image Builder 控制台，网址为[https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)。

1. 在导航窗格中，选择**生命周期策略**。

1. 选择**创建生命周期策略**。

1. 按以下步骤中的描述配置策略设置。

1. 要在配置设置后创建生命周期策略，请选择**创建策略**。

**策略配置：常规设置**

配置策略的**常规**设置。

1. 从 “**策略类型**” 中选择 “**容器镜像**” 选项。

1. 输入**策略名称**。

1. （可选）输入生命周期策略的**描述**。

1. 默认情况下，**激活**处于开启状态。默认设置会激活生命周期策略并将其立即添加到计划中。要创建最初停用的策略，可以关闭**激活**。

1. 对于 **IAM 角色**，请选择以下选项之一：
   + **使用服务默认值创建生命周期执行角色**-生成附有`EC2ImageBuilderLifecycleExecutionPolicy`托管策略的预配置角色。如果您没有特定的自定义权限要求，则推荐使用此选项。
   + **选择现有角色**-从下拉列表中选择现有 IAM 角色。该列表会筛选出与生命周期策略执行不兼容的服务相关角色 (SLRs)。
   + **创建新的生命周期执行角色** — 打开 IAM 控制台，其中包含预先填写的信任策略和生命周期执行策略设置，便于一键创建角色。有关 step-by-step说明，请参阅[为 Image Builder 生命周期管理创建 IAM 角色](image-lifecycle-prerequisites.md#image-lifecycle-prereq-role)。
**注意**  
服务相关角色与生命周期策略的执行不兼容，并且会自动从角色选择中筛选出来。如果您之前使用服务相关角色创建了生命周期策略，则可以更新该策略以使用兼容的执行角色。

配置策略的**规则范围**。

本部分根据您使用的筛选条件类型配置生命周期策略的资源选择。

1. **筛选条件类型：配方** – 要根据创建映像资源的配方将生命周期规则应用于映像资源，请为该策略选择最多 50 个配方版本。您可以使用分屏浏览器搜索食谱并选择特定版本。

   您还可以为语义版本使用通配符模式，通过单个策略将配方的多个版本作为目标。支持以下通配符模式：
   + `x.x.x`— 匹配食谱的所有版本。
   + `1.x.x`— 匹配主版本 1 中的所有次要版本和补丁版本。
   + `1.0.x`— 匹配版本 1.0 中的所有补丁版本。

   在执行时，通配符模式会解析到所有匹配的配方版本。这意味着在您设置策略后创建的新配方版本将自动包含在下次计划执行中。
**注意**  
在策略执行开始后创建或删除的配方版本要等到下次计划执行时才包括在内。

1. **筛选条件类型：标签** – 要根据资源标签将生命周期规则应用于映像资源，请输入最多包含 50 个键值对的列表，供策略进行匹配。Image Builder 通过标签扫描发现资源，并将生命周期规则应用于匹配的资源。
**注意**  
策略执行开始后标记或未标记的资源要等到下次计划执行时才包括在内。

为您的策略配置**排除规则**（可选）。

排除规则定义生命周期规则的例外情况。符合排除规则所指定标准的资源将被排除在生命周期操作之外。

1. 对于 AMI 映像策略，您可以配置以下 AMI 排除规则：
   + **排除公众 AMIs**-选择此选项可将公众排除在生命周期操作 AMIs 之外。
   + ** AMIs 按区域排除**-指定 AWS 区域 从生命周期操作中排除。
   + **排除与账户 AMIs 共享**-指定生命周期操作中 AMIs 应排除 AWS 账户 谁的共享。
   + **排除最近启动**的实例 AMIs-指定 AMIs 要排除最近用于启动实例的时间段。
   + ** AMIs 按标签排除**-指定 AMIs 应从生命周期操作中排除的标签。

1. 对于基于标签的 Image Builder 图像策略，您可以为生命周期操作中应排除的 Image Builder 图像资源指定标签。

**删除规则**  
对于容器映像，此规则会删除 Image Builder 容器映像资源。您可以选择删除已分配到 ECR 存储库的 Docker 映像，以防止将其用于运行新的容器。

按使用期限配置**删除规则**时，Image Builder 会在您配置的一段时间后删除映像资源。例如，在 6 个月后删除映像资源。按数量配置时，Image Builder 会保留您指定的最新映像数量或尽可能接近该数量，并删除早期版本。
+ 

**按使用期限**
  + **单位数** – 指定映像资源创建后必须经过的时间段的整数值，然后将其删除。
  + **单位** – 选择要使用的时间范围。该值可以为 `Days`、`Weeks`、`Months` 或 `Years`。
  + **至少保留一个映像** – 选中该复选框，为受此规则影响的每个配方版本仅保留最新的可用映像资源。

**按数量**
  + **映像计数** – 指定为每个配方版本保留的最新映像资源数量的整数值。
+ **删除 ECR 容器映像** – 选中该复选框，删除存储在 ECR 存储库中关联的容器映像。无法再将容器映像作为创建新映像或运行新容器的基础。
+ **保留具有关联标签的映像** – 选中该复选框，输入要保留的映像资源的标签列表。

**标签（可选）**  
将标签添加到生命周期策略。

------
#### [ AWS CLI ]

要创建新的 Image Builder 生命周期策略，您可以在 AWS CLI中使用 **[create-lifecycle-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/create-lifecycle-policy.html)** 命令。

------

# 生命周期管理规则如何适用于 Image Builder 映像资源
<a name="image-lifecycle-rules"></a>

映像生命周期策略使用您定义的生命周期规则来实施您的整体资源管理策略。您定义的规则有助于确保可用映像的新鲜度，并最大限度地降低底层基础架构的成本，例如用于输出的 AMIs快照存储或容器映像的 ECR 存储库存储和数据传输速率。

您可以为您的策略配置以下类型的规则。

**弃用规则**  
将 Image Builder 映像资源状态设置为 `Deprecated`。对于已弃用的映像，Image Builder 管道仍会运行。您可以选择为关联设置弃用时间， AMIs 而不会影响您启动新实例的能力。  
弃用某个 AMI 时，常规搜索会将其忽略。例如，如果您在中运行 Amazon EC2 **describe-images** 命令 AWS CLI，则该命令不会AMIs 在结果集中返回已弃用。但是，您仍然可以发现他们的 AMI ID 已被弃用 AMIs 。  
*此规则不适用于容器映像。*

**禁用规则**  
将 Image Builder 映像资源状态设置为 `Disabled`。对于该映像，此操作会阻止 Image Builder 管道运行。您可以选择禁用关联的 AMI 以防止启动新实例。  
禁用某个 AMI 之后，其便会变为私有，无法用于启动新实例。如果您与任何账户、组织或组织单位共享 AMI，则当您的 AMI 变为私有时，他们将失去对该 AMI 的访问权限。  
*此规则不适用于容器映像。*

**删除规则**  
按使用期限或数量删除映像资源。您可以定义满足您需求的阈值。当 Image Builder 映像资源超过阈值时，会将其删除。您可以选择取消注册关联的快照， AMIs 也可以删除这些 AMIs快照。您还可以为希望保留超过阈值的资源指定标签。  
对于容器映像，此规则会删除 Image Builder 容器映像资源。您可以选择删除已分配到 ECR 存储库的容器映像，以防止将其用于运行新的容器。

**Topics**
+ [AMI 生命周期排除规则](#image-lifecle-rules-exclusions)
+ [查看策略的生命周期管理规则详细信息](#image-lifecycle-rule-view)

## AMI 生命周期排除规则
<a name="image-lifecle-rules-exclusions"></a>

以下排除规则定义了生命周期规则的例外情况 AMIs。 AMIs 符合排除规则所指定标准的将被排除在生命周期操作之外。您可以使用 API 和在 AWS 管理控制台 或中配置排除规则 AWS CLI。

以下术语使用 `[LifecyclePolicyDetailExclusionRules](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_LifecyclePolicyDetailExclusionRules.html)` 数据类型中的 API 表示法。排除规则

ami  
包含 `LifecyclePolicyDetailExclusionRulesAmis` 中的设置，如下面的列表所示。

tagMap  
您可以提供多达 50 个标签的列表，这些标签可跳过任何类型资源的生命周期操作。

以下术语使用 `[LifecyclePolicyDetailExclusionRulesAmis](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_LifecyclePolicyDetailExclusionRulesAmis.html)` 数据类型中的 API 表示法。AMI 排除规则

isPublic  
配置是否将公众排除 AMIs 在生命周期操作之外。

lastLaunched  
指定 Image Builder 的配置详细信息，以从生命周期操作中排除最新资源。

区域  
从生命周期操作中排除的配置 AWS 区域 。

sharedAccounts  
指定 AWS 账户 将哪些资源排除在生命周期操作之外。

tagMap  
列出应从包含标签的生命周期操作中排除 AMIs 的标签。

## 查看策略的生命周期管理规则详细信息
<a name="image-lifecycle-rule-view"></a>

规则是在您为 Image Builder 映像资源创建的生命周期管理策略中定义的。在控制台中，生命周期策略详细信息页面中有一个 [规则选项卡](view-lifecycle-policy.md#view-lifecycle-policy-console-rules-tab)，显示了您为策略配置的规则的详细信息。

要在中获取策略详细信息 AWS CLI，可以运行[get-lifecycle-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-lifecycle-policy.html)命令。响应中的策略详细信息包含为策略定义的操作（规则）列表，其中包括已配置的所有设置。