

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

# 管理应用程序版本
<a name="applications-versions"></a>

本主题介绍应用程序版本以及如何创建和管理版本。

只要您上传源代码，Elastic Beanstalk 就会创建应用程序版本。当您使用[环境管理控制台](environments-console.md)或 [EB CLI](eb-cli3.md) 创建环境或上传并部署代码时，通常会出现此情况。Elastic Beanstalk 会根据应用程序的生命周期策略以及当您删除应用程序时删除这些应用程序版本。有关应用程序生命周期策略的详细信息，请参阅[配置应用程序版本生命周期设置](applications-lifecycle.md)。

您也可以上传源包，而无需从[应用程序管理控制台](applications-console.md)或使用 EB CLI 命令 **[**eb appversion**](eb3-appversion.md)** 部署它。Elastic Beanstalk 将源包存储在 Amazon Simple Storage Service (Amazon S3) 中且不自动删除它们。

您可以在创建应用程序版本和编辑现有应用程序版本的标签时向其应用标签。有关更多信息，请参阅 [标记应用程序版本](applications-versions-tagging.md)。

## 创建应用程序版本
<a name="applications-versions.creating"></a>

您还可以使用 EB CLI 创建新的应用程序版本。有关更多信息，请参阅 *EB CLI 命令*章节中的 [**eb appversion**](eb3-appversion.md)。

**注意**  
随着时间的推移，应用程序可能会积累许多应用程序版本。要节省存储空间并避免达到[应用程序版本配额](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_elastic_beanstalk)，最好是删除不再需要的应用程序版本。

您在以下步骤中指定的文件与您的应用程序相关联。您可以将应用程序版本部署到新的或现有环境。

**创建新应用程序版本**

1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

1. 在导航窗格中，选择 **Applications**（应用程序），然后从列表中选择应用程序的名称。

1. 在导航窗格中，找到应用程序的名称，然后选择 **Application versions**（应用程序版本）。

1. 选择**上传**。使用屏幕上的表单上传应用程序的[源包](applications-sourcebundle.md)。
**注意**  
源包的文件大小限制为 500 MB。

1. （可选）提供简要说明，并添加标签键和值。

1. 选择**上传**。

## 删除应用程序版本
<a name="applications-versions.deleting"></a>

您还可以使用 EB CLI 删除应用程序版本。有关更多信息，请参阅 *EB CLI 命令*章节中的 [**eb appversion**](eb3-appversion.md)。

**注意**  
删除应用程序版本不会影响当前正在运行该版本的环境。

您还可以通过配置应用程序版本生命周期设置来将 Elastic Beanstalk 配置为自动删除旧版本。如果您配置了这些应用程序生命周期设置，它们将在您创建新的应用程序版本时应用。例如，如果您配置最多 25 个应用程序版本，那么当您上传第 26 个版本时，Elastic Beanstalk 将删除最旧的版本。如果您设置的最长使用期为 90 天，在上传新版本时，任何超过 90 天的版本都将被删除。有关更多信息，请参阅 [配置应用程序版本生命周期设置](applications-lifecycle.md)。

**删除应用程序版本**

1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

1. 在导航窗格中，选择 **Applications**（应用程序），然后从列表中选择应用程序的名称。

1. 在导航窗格中，找到应用程序的名称，然后选择 **Application versions**（应用程序版本）。

1. 选择要删除的一个或多个应用程序版本。

1. 选择 **Actions (操作)**，然后选择 **Delete (删除)**。

1. （可选）Amazon Simple Storage Service (Amazon S3) 存储桶中保留这些应用程序版本的应用程序源包，请取消选中 **Delete versions from Amazon S3 (从 Amazon S3 中删除版本)** 框。

1. 选择**删除**。

如果您未选择从 Amazon S3 中删除源包，则 Elastic Beanstalk 仍会从其记录中删除该版本。但是，源包保留在您的 [Elastic Beanstalk 存储桶](AWSHowTo.S3.md)中。应用程序版本配额仅适用于 Elastic Beanstalk 跟踪的版本。因此，您可以删除版本以保持在配额内，但将所有源包保留在 Amazon S3 中。

**注意**  
此应用程序版本配额不适用于源包，但您可能仍会产生 Amazon S3 费用，并且在需要个人信息的时间范围之外保留这类信息。Elastic Beanstalk 一定不会自动删除源包。当您不再需要源包时，应将其删除。

# 配置应用程序版本生命周期设置
<a name="applications-lifecycle"></a>

本主题介绍 Elastic Beanstalk 对给定环境中的应用程序版本应用的策略和配额，包括应用程序版本在环境中保留的时间。

每次您使用 Elastic Beanstalk 控制台或 EB CLI 上传应用程序的新版本时，Elastic Beanstalk 都会创建一个[应用程序版本](applications-versions.md)。如果不删除不再使用的版本，您最终会达到[应用程序版本配额](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html#limits_elastic_beanstalk)，并且无法创建此应用程序的新版本。

通过向应用程序应用*应用程序版本生命周期策略*，您可以避免达到配额。生命周期策略可要求 Elastic Beanstalk 删除应用程序的旧版本，或当应用程序的版本总数超过指定数量时删除一些应用程序版本。

Elastic Beanstalk 在您每次创建新的应用程序版本时应用应用程序生命周期策略，并在每次应用生命周期策略时删除最多 100 个版本。Elastic Beanstalk 在创建新版本后删除旧版本，并且不会将新版本计入策略中定义的最大版本数。

Elastic Beanstalk 不删除环境当前正在使用的应用程序版本，或部署到在策略触发之前十周内终止的环境的应用程序版本。

应用程序版本配额适用于区域中的所有应用程序。如果您有多个应用程序，请为每个应用程序配置适当的生命周期策略，以免达到配额。例如，如果一个区域中有 10 个应用程序并且配额为 1000 个应用程序版本，则可考虑为所有应用程序设置配额为 99 个应用程序版本的生命周期策略，或在每个应用程序中设置其他值，只要总数少于 1000 个应用程序版本即可。Elastic Beanstalk 只在应用程序版本创建成功时应用策略，因此，如果您已达到限制，则必须在创建新版本前手动删除一些版本。

默认情况下，Elastic Beanstalk 会在 Amazon S3 中保留应用程序版本[源包](applications-sourcebundle.md)，以防数据丢失。您可以删除源包以节省空间。

你可以通过 Elastic Beanstalk CLI 来设置生命周期设置。 APIs有关详细信息[**eb appversion**](eb3-appversion.md)，请参阅、[CreateApplication](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateApplication.html)（使用`ResourceLifecycleConfig`参数）和[UpdateApplicationResourceLifecycle](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateApplicationResourceLifecycle.html)。

## 在控制台中配置应用程序生命周期设置
<a name="applications-lifecycle-console"></a>

您可以在 Elastic Beanstalk 控制台中指定生命周期设置。

**指定应用程序生命周期设置**

1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

1. 在导航窗格中，选择 **Applications**（应用程序），然后从列表中选择应用程序的名称。

1. 在导航窗格中，找到应用程序的名称，然后选择 **Application versions**（应用程序版本）。

1. 选择**设置**。

1. 使用屏幕上的表单配置应用程序生命周期设置。

1. 选择**保存**。

在设置页上，可以执行以下操作。
+ 根据应用程序版本的总计数或应用程序版本的使用期限配置生命周期设置。
+ 指定在删除应用程序版本时是否从 S3 删除源包。
+ 指定删除应用程序版本的服务角色。要包括版本删除所需的全部权限，请选择名为 `aws-elasticbeanstalk-service-role` 的默认 Elastic Beanstalk 服务角色，或者使用 Elastic Beanstalk 托管服务策略的其他服务角色。有关更多信息，请参阅 [管理 Elastic Beanstalk 服务角色](iam-servicerole.md)。

# 标记应用程序版本
<a name="applications-versions-tagging"></a>

本主题介绍为 Elastic Beanstalk 应用程序版本添加标签的好处以及如何管理标签。

您可以将标签应用于您的 AWS Elastic Beanstalk 应用程序版本。标签是与资源关联的键值对。 AWS 有关 Elastic Beanstalk 资源标记、使用案例、标签键和值约束以及支持的资源类型的信息，请参阅[标记 Elastic Beanstalk 应用程序资源](applications-tagging-resources.md)。

您可以在创建应用程序版本时指定标签。在现有应用程序版本中，您可以添加或删除标签，以及更新现有标签的值。您最多可以为每个应用程序版本添加 50 个标签。

## 在创建应用程序版本期间添加标签
<a name="applications-versions-tagging.create"></a>

在使用 Elastic Beanstalk 控制台[创建环境](environments-create-wizard.md)并选择上传应用程序代码版本时，您可以指定标签键和值以与新应用程序版本关联。

您还可以使用 Elastic Beanstalk 控制台[上传应用程序版本](applications-versions.md)，而无需立即在环境中使用该版本。您可以在上传应用程序版本时指定标签键和值。

对于 AWS CLI 或其他基于 API 的客户端，使用命令中的`--tags`参数添加标签。**[create-application-version](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-application-version.html)**

```
$ aws elasticbeanstalk create-application-version \
      --tags Key=mytag1,Value=value1 Key=mytag2,Value=value2 \
      --application-name my-app --version-label v1
```

使用 EB CLI 创建或更新环境时，将根据您部署的代码创建应用程序版本。通过 EB CLI 创建应用程序版本时，没有标记应用程序版本的直接方法。有关向现有应用程序版本添加标签的信息，请参阅以下部分。

## 管理现有应用程序版本的标签
<a name="applications-versions-tagging.manage"></a>

您可以在现有 Elastic Beanstalk 应用程序版本中添加、更新和删除标签。

**使用 Elastic Beanstalk 控制台管理应用程序版本的标签**

1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

1. 在导航窗格中，选择 **Applications**（应用程序），然后从列表中选择应用程序的名称。

1. 在导航窗格中，找到应用程序的名称，然后选择 **Application versions**（应用程序版本）。

1. 选择要管理的应用程序版本。

1. 选择 **Actions (操作)**，然后选择 **Manage tags (管理标签)**。

1. 使用屏幕上的表单添加、更新或删除标签。

1. 要保存更改，请选择页面底部的 **Apply**（应用）。

如果使用 EB CLI 更新应用程序版本，则可使用 **[eb tags](eb3-tags.md)** 来添加、更新、删除或列出标签。

例如，以下命令会列出应用程序版本中的标签。

```
~/workspace/my-app$ eb tags --list --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

以下命令会更新标签 `mytag1` 并删除标签 `mytag2`。

```
~/workspace/my-app$ eb tags --update mytag1=newvalue --delete mytag2 \
      --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

有关选项和更多示例的完整列表，请参阅 `eb tags`。

对于 AWS CLI 或其他基于 API 的客户端，使用**[list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/list-tags-for-resource.html)**命令列出应用程序版本的标签。

```
$ aws elasticbeanstalk list-tags-for-resource --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

使用 **[update-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-tags-for-resource.html)** 命令可在应用程序版本中添加、更新或删除标签。

```
$ aws elasticbeanstalk update-tags-for-resource \
      --tags-to-add Key=mytag1,Value=newvalue --tags-to-remove mytag2 \
      --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

在 `--tags-to-add` 的 **update-tags-for-resource** 参数中指定要添加的标签和要更新的标签。添加了一个不存在的标签，更新了现有标签的值。

**注意**  
要在 Elastic Beanstalk 应用程序版本中使用某些 EB CLI 和 AWS CLI 命令，您需要该应用程序版本的 ARN。您可以使用下面的命令检索该 ARN。  

```
$ aws elasticbeanstalk describe-application-versions --application-name my-app --version-label my-version
```