AWS Elastic Beanstalk:命令EB列表没有显示任何环境



我正在使用弹性beanstalk,我创建了3种不同的环境。我用了awsebcli。突然之间,命令eb list并没有向我展示我的环境,因为我无法部署环境。我遇到的错误是ERROR: This branch does not have a default environment. You must either specify an environment by typing "eb status my-env-name" or set a default environment by typing "eb use my-env-name".我尝试了eb status 'my-env-name',再次遇到了一个错误:ERROR: The environment name 'my-env-name' could not be found.简而言之:我无法使用任何eb命令。

您是否忘了在eb init之后运行eb create --single

此命令创建一个新的环境。请参阅EB CLI命令参考»

消息本身很清楚。您尚未为正在研究的分支设置环境。

您可以切换到分支的配置,但这意味着您在部署时将无法使用您的当前分支的更改,除非您合并了THOS更改,否命令eb use name-of-your-env。该最后一个也可以在应用程序的弹性beanstalk配置文件中配置。

希望这会有所帮助。

也许这可能会对他人有所帮助。我已经在Beanstalk上有一个现有的环境,并且正在设置新的Mac。

由于某种原因,eb init确实在~/.aws/config中创建了一个文件。但是,它只有关键和秘密。为了使其工作,我也需要添加该区域。

# ~/.aws/config 
[profile eb-cli]
aws_access_key_id = XXX
aws_secret_access_key = XXX
region=us-west-2

接下来,我在应用程序中找到我的beanstalk config文件(即项目/.ebelasticBeanstalk/config.yml),并确保在Global下,它具有个人资料:EB-CLI

# project/.ebelasticbeanstalk/config.yml
global:
  default_region: us-west-2
  profile: eb-cli
  sc: git
  workspace_type: Application

进行这些编辑后,eb list显示了我期望的环境,我可以再次进行eb deploy

我在这里遇到了同样的问题。事实证明是一个与区域有关的技巧。

就我而言,最初似乎与我创建环境的方式有关。我使用以下命令来创建env:

eb create --sample -r ap-southeast-1 -im 2 -ix 4 --vpc.elbpublic --vpc.ec2subnets AppSubA, AppSubB --vpc.dbsubnets DbSubA, DbSubB node-express-dev

请注意,我在新加坡地区创建了ENV。之后,如果我使用" EB列表",则结果为空。为什么?我稍后会访问。

但是,如果我使用这样的命令:

eb create --sample node-express-env

" EB列表"将能够找到创建的Env。

正如我所说,对于第一CMD,它是在新加坡创建的。但是,在创建之前,在" EB Init"中CMD,我没有指定区域。因此," EB CLI"默认情况下在US-West-2中。这就是为什么它无法列出创建的Env。为了修复它,在创建之前,命令 eb init -p "64bit Amazon Linux 2 v5.5.3 running Node.js 16" --region ap-southeast-1应该是完善的。

对于第二个CMD,它是在US-West-2中创建的,并且" EB CLI"也位于同一区域。两者都在默认区域中。结果,它可以显示。

希望这可以帮助某些情况。

在我的情况下,我已经使用AWS Web控制台启动了EB环境。

  • 以前的环境
  • 新环境B

我正在使用EB CLI(以前的环境)。

  • 例如。eb deploy

我想将我的EB CLI环境更改为B(新环境)。但是几个命令对我不起作用(永远不要显示环境B)。

  • eb init
  • eb list

最后,我删除了.elasticbeanstalk目录并成功了eb init。我认为EB的自定义设置有很多不稳定的问题。

最新更新