如何在 Elastic Beanstalk 中解决托管平台更新错误:分步指南
2024-03-04 22:20:36
解决 Elastic Beanstalk 托管平台更新错误
引言
在配置 Elastic Beanstalk 环境时,您可能会遇到配置验证异常,提示:“无效选项规范(命名空间:'aws:elasticbeanstalk:managedactions',选项名称:'ManagedActionsEnabled'):当你的环境使用服务链接角色'AWSServiceRoleForElasticBeanstalk'时,你无法启用托管平台更新。请选择具有'AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy' 托管策略的服务角色”。本文将引导您逐步解决此问题,并帮助您成功配置 Elastic Beanstalk。
问题
此错误表明您的 Elastic Beanstalk 环境使用服务链接角色“AWSServiceRoleForElasticBeanstalk”。这个角色缺乏必要的权限来启用托管平台更新。为了启用此功能,您需要选择一个具有“AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy”托管策略的服务角色。
解决方法
创建服务角色
- 前往 AWS IAM 控制台并创建一个新的服务角色。
- 确保为该角色附加“AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy”托管策略。
将服务角色附加到环境
- 返回 Elastic Beanstalk 控制台,编辑您的环境。
- 在“配置”选项卡中,向下滚动到“权限”部分。
- 从“服务角色”下拉菜单中选择您新创建的服务角色。
重新部署环境
- 保存更改并重新部署您的环境。这将应用新的服务角色和托管平台更新设置。
代码示例
# 使用 AWS CLI 创建服务角色
aws iam create-role --role-name MyServiceRole --assume-role-policy-document file://trust-policy.json
# 将托管平台更新策略附加到服务角色
aws iam attach-role-policy --role-name MyServiceRole --policy-arn arn:aws:iam::aws:policy/AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy
# 使用 AWS CLI 更新环境的服务角色
aws elasticbeanstalk update-environment --environment-name my-env --service-role MyServiceRole
# 重新部署环境
aws elasticbeanstalk deploy --environment-name my-env
附加信息
- 有关托管平台更新的更多信息,请参阅 AWS 文档。
- 有关服务角色的更多信息,请参阅 AWS IAM 文档。
常见问题解答
-
为什么我需要使用服务角色来启用托管平台更新?
答:Elastic Beanstalk 需要特定的权限才能在您的环境中执行平台更新。服务角色提供这些权限,而无需授予对您的 AWS 账户的完全访问权限。 -
我可以在哪里找到“AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy”托管策略?
答:这个托管策略位于 AWS IAM 控制台中,您可以在“策略”部分找到它。 -
重新部署环境后,如何验证托管平台更新是否已启用?
答:您可以检查 Elastic Beanstalk 控制台中环境的“事件”选项卡,以查看有关平台更新的任何条目。 -
启用托管平台更新有哪些好处?
答:托管平台更新会自动将您的环境更新到 Elastic Beanstalk 平台的最新版本,从而确保您的应用程序保持安全性和最新性。 -
我还可以使用哪些其他方法来管理 Elastic Beanstalk 平台更新?
答:除了托管平台更新之外,您还可以使用以下方法管理平台更新:- 手动部署
- 使用 CodeDeploy