配置 AWS AppConfig 删除保护 - AWS AppConfig

配置 AWS AppConfig 删除保护

AWS AppConfig 提供了一个账户设置,有助于防止用户无意中删除正在使用的环境和配置文件。AWS AppConfig 监控对 GetLatestConfigurationGetConfiguration 的调用,并在 60 分钟间隔(默认设置)内跟踪这些调用中包含了哪些配置文件和环境。如果您启用删除保护并尝试删除活动的配置文件或环境,则 AWS AppConfig 返回错误。

注意

请注意以下信息。

  • 默认情况下,禁用删除保护。

  • 可以将默认间隔增加到最多 24 小时。

使用以下过程来启用和配置 AWS AppConfig 删除保护。

开始前的准备工作

更新到 AWS CLI 的最新版本。有关更多信息,请参阅《AWS Command Line Interface用户指南》中的 Install or update to the latest version of the AWS CLI

启用 AWS AppConfig 删除保护
  • 使用 UpdateAccountSettings API 来启用删除保护。在 AWS CLI 中运行以下命令。此命令没有为 ProtectionPeriodInMinutes 参数指定值,这意味着该命令将该设置保持不变。

    aws appconfig update-account-settings --deletion-protection Enabled=true

    运行以下命令来指定不同的间隔。

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

要查看当前的删除保护设置,请运行以下命令。如果您尚未为账户配置删除保护,此命令将返回默认设置:

aws appconfig get-account-settings

为协助您管理删除保护,DeleteEnvironmentDeleteConfigurationProfile API 包含一个名为 DeletionProtectionCheck 的参数。此参数支持以下值。

  • BYPASS:指示 AWS AppConfig 绕过删除保护检查并删除配置文件,即使删除保护本来会阻止该配置文件也是如此。

  • APPLY:指示运行删除保护检查,即使在账户级别禁用了删除保护也是如此。APPLY 还会强制对过去一小时内创建的资源运行删除保护检查,这些资源通常不在删除保护检查范围内。

  • ACCOUNT_DEFAULT:默认设置,指示 AWS AppConfig 实现在 UpdateAccountSettings API 中指定的删除保护值。

注意

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

以下简单演练使用示例命令来说明如何使用 DeletionProtectionCheck 参数。

  1. 对已部署的配置调用 GetLatestConfiguration

    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
  2. 等待 60 秒,让 AWS AppConfig 注册该配置处于活动状态。

  3. 运行以下命令来调用 DeleteEnvironment 并对环境应用删除保护。

    aws appconfig delete-environment --environment-id ID --application-id ID --deletion-protection-check APPLY
  4. 如果您在 60 分钟内再次调用 DeleteEnvironment,则调用会返回如下错误:

    An error occurred (BadRequestException) when calling the DeleteEnvironment operation: Environment Beta is actively being used in your application and cannot be deleted.
  5. 运行以下命令,以绕过删除保护并删除环境。

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