

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

# 配置 AWS AppConfig 删除保护
<a name="deletion-protection"></a>

AWS AppConfig 提供了一个帐户设置，以帮助防止用户无意中删除正在使用的环境和配置文件。 AWS AppConfig 监视[GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html)和的呼叫，[GetConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_GetConfiguration.html)并在 60 分钟的时间间隔（默认设置）内跟踪这些呼叫中包含了哪些配置文件和环境。在该时间间隔内被访问的任何配置配置文件或环境将被视为活动状态。如果您尝试删除活动的配置文件或环境，则 AWS AppConfig 会返回错误。如果需要，您可以使用 `DeletionProtectionCheck` 参数绕过此错误。有关更多信息，请参阅 [绕过或强制执行删除保护检查](deletion-protection-check.md)。

**使用控制台配置删除保护**  
使用以下过程通过 AWS Systems Manager 控制台配置删除保护。

**配置删除保护（控制台）**

1. 在 [https://console.aws.amazon.com/systems-manager/appconfig](https://console.aws.amazon.com/systems-manager/appconfig/)/上打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择**设置**。

1. 使用切换开关启用或禁用删除保护。

1. 对于**保护期**，将活动资源的定义设置为 15 到 1440 分钟之间。

1. 单击**应用**。

**使用配置删除保护 AWS CLI**  
使用以下过程通过 AWS CLI配置删除保护。将以下命令*value*中的值替换为要在环境中使用的值。

**注意**  
在开始之前，我们建议您更新到 AWS CLI的最新版本。有关更多信息，请参阅《AWS Command Line Interface User Guide》**中的 [Install or update to the latest version of the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

**配置删除保护（CLI）**

1. 运行以下命令以查看当前删除保护设置。

   ```
   aws appconfig get-account-settings
   ```

1. 运行以下命令以启用或禁用删除保护。指定 `false` 以禁用删除保护，或指定 `true` 以启用它。

   ```
   aws appconfig update-account-settings --deletion-protection Enabled=value
   ```

1. 可以将默认间隔增加到最多 24 小时。运行以下命令以指定新间隔。

   ```
   aws appconfig update-account-settings --deletion-protection Enabled=true,ProtectionPeriodInMinutes=a number between 15 and 1440
   ```

# 绕过或强制执行删除保护检查
<a name="deletion-protection-check"></a>

为了帮助您管理删除保护，[DeleteEnvironment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_DeleteEnvironment.html)和[DeleteConfigurationProfile](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_DeleteConfigurationProfile.html) APIs 包含一个名为的参数`DeletionProtectionCheck`。此参数支持以下值。
+ `BYPASS`: 指示 AWS AppConfig 绕过删除保护检查并删除配置文件，即使删除保护本来会阻止配置文件也是如此。
+ `APPLY`：指示运行删除保护检查，即使在账户级别禁用了删除保护也是如此。`APPLY` 还会强制对过去一小时内创建的资源运行删除保护检查，这些资源通常不在删除保护检查范围内。
+ `ACCOUNT_DEFAULT`：默认设置，指示 AWS AppConfig 实现在 `UpdateAccountSettings` API 中指定的删除保护值。

**注意**  
默认情况下，`DeletionProtectionCheck` 会跳过在过去一小时内创建的配置文件和环境。默认配置旨在防止删除保护干扰用于创建短期资源的测试和演示。可以通过在调用 `DeleteEnvironment` 或 `DeleteConfigurationProfile` 时传递 `DeletionProtectionCheck=APPLY` 来覆盖此行为。

以下 CLI 演练使用示例命令来说明如何使用 `DeletionProtectionCheck` 参数。将以下命令替换*ID*为 AWS AppConfig 工件的 ID。

1. 调[GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html)用已部署的配置。

   ```
   aws appconfigdata get-latest-configuration --configuration-token $(aws appconfigdata start-configuration-session --application-identifier ID --environment-identifier ID --configuration-profile-identifier ID --query InitialConfigurationToken) outfile.txt 
   ```

1. 等待 60 秒钟 AWS AppConfig 以注册配置处于活动状态。

1. 运行以下命令在环境上调用[DeleteEnvironment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_DeleteEnvironment.html)和应用删除保护。

   ```
   aws appconfig delete-environment --environment-id ID --application-id ID --deletion-protection-check APPLY
   ```

   该命令应返回以下错误。

   ```
   An error occurred (BadRequestException) when calling the DeleteEnvironment operation: Environment Beta is actively being used in your application and cannot be deleted.
   ```

1. 运行以下命令，以绕过删除保护并删除环境。

   ```
   aws appconfig delete-environment --environment-id ID --application-id ID --deletion-protection-check BYPASS
   ```