配置 AWS AppConfig 删除保护
AWS AppConfig 提供了一个账户设置,有助于防止用户无意中删除正在使用的环境和配置文件。AWS AppConfig 监控对 GetLatestConfiguration 和 GetConfiguration 的调用,并在 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
为协助您管理删除保护,DeleteEnvironment 和 DeleteConfigurationProfile API 包含一个名为 DeletionProtectionCheck
的参数。此参数支持以下值。
-
BYPASS
:指示 AWS AppConfig 绕过删除保护检查并删除配置文件,即使删除保护本来会阻止该配置文件也是如此。 -
APPLY
:指示运行删除保护检查,即使在账户级别禁用了删除保护也是如此。APPLY
还会强制对过去一小时内创建的资源运行删除保护检查,这些资源通常不在删除保护检查范围内。 -
ACCOUNT_DEFAULT
:默认设置,指示 AWS AppConfig 实现在UpdateAccountSettings
API 中指定的删除保护值。
注意
默认情况下,DeletionProtectionCheck
会跳过在过去一小时内创建的配置文件和环境。默认配置旨在防止删除保护干扰用于创建短期资源的测试和演示。可以通过在调用 DeleteEnvironment
或 DeleteConfigurationProfile
时传递 DeletionProtectionCheck=APPLY
来覆盖此行为。
以下简单演练使用示例命令来说明如何使用 DeletionProtectionCheck
参数。
-
对已部署的配置调用 GetLatestConfiguration。
aws appconfigdata get-latest-configuration --configuration-token $(aws appconfigdata start-configuration-session --application-identifier
ID
--environment-identifierID
--configuration-profile-identifierID
--query InitialConfigurationToken) outfile.txt -
等待 60 秒,让 AWS AppConfig 注册该配置处于活动状态。
-
运行以下命令来调用 DeleteEnvironment 并对环境应用删除保护。
aws appconfig delete-environment --environment-id
ID
--application-idID
--deletion-protection-check APPLY -
如果您在 60 分钟内再次调用
DeleteEnvironment
,则调用会返回如下错误:An error occurred (BadRequestException) when calling the DeleteEnvironment operation: Environment Beta is actively being used in your application and cannot be deleted.
-
运行以下命令,以绕过删除保护并删除环境。
aws appconfig delete-environment --environment-id
ID
--application-idID
--deletion-protection-check BYPASS