由于安全组悬空,弹性Beanstalk部署失败



在使用Elastic Beanstalk进行部署时,我们得到了以下错误:

错误:配置验证异常:无效选项值:'sg-fdd33e89'(命名空间:'aws:autoscaling:launchconfiguration', OptionName: 'SecurityGroups'): id为'sg-fdd33e89'的安全组不存在

可能相关的事情:

  • 我们在. ebeextensions
  • 中为ELB定制了安全组设置
  • 我们之前从一个旧的EB环境克隆了这个特定的EB环境,并且由于这个安全组而无法终止旧的环境。

(已经解决了这个问题,但是分享这个问题,以防它对其他人有帮助)

我找到了Derya Sezen的相关博客文章AWS Elastic Beanstalk安全组有id不存在的问题

  • 描述了一种情况,旧的安全组从以前的环境被继承到新的环境(可能我也是这种情况)
  • 建议使用AWS CLI
  • 更新EB环境的安全组选项

我使用AWS CLI在博客文章之后运行以下命令:

aws elasticbeanstalk update-environment --environment-name my-env-name --option-settings Namespace=aws:autoscaling:launchconfiguration,OptionName=SecurityGroups,Value=""

在那之后,EB更新了一段时间的环境,之后我能够成功部署。

执行eb config命令可以删除问题部件。您将收到环境的可编辑配置,您可以在其中找到不存在的安全组并轻松删除它。

我在EB环境中使用的被删除的安全组的情况下得到了这个问题/答案。它有一个旧的平台,因此aws客户端无法获取/更改配置-并且也无法从控制台访问它。对我来说,创建一个与删除的安全组名称相同的安全组就足够了——EB开始使用它!

如果您犯了和我一样的错误,并且终止了环境,那么您无法使用AWS CLI来修复此问题。

$ aws elasticbeanstalk update-environment --environment-name my-kick-ass-env --option-settings Namespace=aws:autoscaling:launchconfiguration,OptionName=SecurityGroups,Value=""
A client error (InvalidParameterValue) occurred when calling the UpdateEnvironment operation: No Environment found for EnvironmentName = 'my-kick-ass-env'.

唯一的解决方案是等待被终止的环境被AWS完全删除。终止结束后,通常需要一个小时才能删除。

我在用EB web控制台创建新环境时遇到了同样的错误。

我是这样避免的:

  • 确保为实例选择适当的VPC/将实例置于适当的VPC
  • 在web界面中,至少选择一个实例子网

相关内容

  • 没有找到相关文章

最新更新