弹性 Beanstalk 部署: UndefinedModelAttributeError

10

我正在尝试使用CircleCI部署到Elastic Beanstalk,但是我遇到了以下错误:

ERROR: UndefinedModelAttributeError - 在模型的元数据中未定义 "serviceId" 属性:<botocore.model.ServiceModel object at 0x7fdc908efc10>

从我的谷歌搜索结果来看,这是一个Python错误,这很合理,因为Elastic Beanstalk使用的就是Python。但是没有关于这种特定情况的信息。有人知道为什么会出现这种情况吗?


1
我知道这并没有帮助,但是我也遇到了同样的问题。几天前开始出现的。最糟糕的是它返回一个“0”作为错误代码,所以我们的构建已经中断了,但我们认为它们正在工作。 - gfree
同样的问题:(如果我找到了解决方案,我会发布答案。 - ermish
1
今天我也可以证实这一点。看起来aws-cli得到了更新。在CI(Bitbucket Pipelines)上,我得到了以下信息: aws-cli/1.16.10 Python/2.7.13 Linux/4.14.63-coreos botocore/1.12.0(抛出错误) 本地我有: aws-cli/1.15.59 Python/3.6.4 Darwin/17.7.0 botocore/1.10.58(工作正常) - Gregor
2个回答

14

更新

EBCLI 3.14.6 兼容当前最新的 AWS CLI (> 1.16.10)。


以前...

为了解决这个问题:

  1. Upgrade awsebcli to 3.14.5: Upgrade awsebcli to 3.14.6

    pip install awsebcli --upgrade
    

或者

  1. If you must continue using awsebcli < 3.14.5, perform:

    pip install 'botocore<1.12'
    
问题的核心在于awsebcli < 3.14.5允许对botocore开放依赖范围,以便用户始终可以访问最新的AWS CLI命令/AWS API(botocore管理 AWS服务模型)。
当botocore发布版本1.12时,它在EBCLI中创建了不兼容性。EBCLI 3.14.5将对botocore的依赖限制为<1.12。
编辑:顺带提一下,注意EBCLI 3.14.5与AWS CLI 1.16.10不兼容。请使用AWS CLI 1.16.9。

1
pip install --upgrade 'botocore>=1.11,<1.12' 对我有效(今天在 Shippable 上出现了错误)。 - Austin Floyd
1
谢谢...我想也许AWS会让我们知道。看来我们必须在SO上找到真正的答案哈哈。 - Eric Hodonsky
pip install 'botocore<1.12' 对我有用。升级没有起作用... - Eric Hodonsky
很棒,对我来说保持两行代码 pip install awsebcli --upgradepip install --upgrade botocore 解决了问题。 - Joshua Ohana

2

我在安装 awsebcli 之后安装 awscli 后遇到了相同的错误。botocore 依赖项不匹配。

如果您想使用 awsebcli 命令,请确保不要覆盖其依赖关系:

  1. 要么降级 awscli
  2. 要么先安装 awsebcli(适用于我的用例,但可能会随机中断)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接