由于安全组悬而未决,Elastic Beanstalk 部署失败
Elastic Beanstalk deployment failing because of a dangling security group
使用 Elastic Beanstalk 进行部署时,出现以下错误:
错误:配置验证异常:无效选项值:'sg-fdd33e89'(命名空间:'aws:autoscaling:launchconfiguration',选项名称:'SecurityGroups'):ID 为 'sg-fdd33e89'不存在。
可能相关的事情:
- 我们在 .ebextensions 中为 ELB 设置了自定义安全组
- 我们早些时候从旧的 EB 环境克隆了这个特定的 EB 环境,但由于这个安全组而无法终止旧环境。
(已经解决了这个问题,但分享这个问题以防对其他人有帮助)
我找到了 Derya Sezen 的相关博客 post AWS Elastic Beanstalk the security group having id does not exist problem
- 描述了一个案例,其中旧安全组从以前的环境继承到新环境(我可能也是这种情况)
- 建议使用 AWS CLI 更新 EB 环境的安全组选项
我运行在博客post之后使用AWS CLI进行以下操作:
aws elasticbeanstalk update-environment --environment-name my-env-name --option-settings Namespace=aws:autoscaling:launchconfiguration,OptionName=SecurityGroups,Value=""
之后,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 控制台创建新环境时遇到了同样的错误。
以下是我为避免它所做的事情:
- 确保您的 select 适合实例的 VPC/让您的实例位于适合的 VPC
- 在网络中 ui,select 至少一个实例子网
您可以通过运行eb config
删除有问题的部分。您将收到适用于您环境的可编辑配置,您可以在其中找到不存在的安全组并轻松将其删除。
使用 Elastic Beanstalk 进行部署时,出现以下错误:
错误:配置验证异常:无效选项值:'sg-fdd33e89'(命名空间:'aws:autoscaling:launchconfiguration',选项名称:'SecurityGroups'):ID 为 'sg-fdd33e89'不存在。
可能相关的事情:
- 我们在 .ebextensions 中为 ELB 设置了自定义安全组
- 我们早些时候从旧的 EB 环境克隆了这个特定的 EB 环境,但由于这个安全组而无法终止旧环境。
(已经解决了这个问题,但分享这个问题以防对其他人有帮助)
我找到了 Derya Sezen 的相关博客 post AWS Elastic Beanstalk the security group having id does not exist problem
- 描述了一个案例,其中旧安全组从以前的环境继承到新环境(我可能也是这种情况)
- 建议使用 AWS CLI 更新 EB 环境的安全组选项
我运行在博客post之后使用AWS CLI进行以下操作:
aws elasticbeanstalk update-environment --environment-name my-env-name --option-settings Namespace=aws:autoscaling:launchconfiguration,OptionName=SecurityGroups,Value=""
之后,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 控制台创建新环境时遇到了同样的错误。
以下是我为避免它所做的事情:
- 确保您的 select 适合实例的 VPC/让您的实例位于适合的 VPC
- 在网络中 ui,select 至少一个实例子网
您可以通过运行eb config
删除有问题的部分。您将收到适用于您环境的可编辑配置,您可以在其中找到不存在的安全组并轻松将其删除。