我正在尝试部署到Elastic Beanstalk,特别是使用CircleCI,我遇到了这个错误:
ERROR: UndefinedModelAttributeError - "serviceId" not defined in the metadata of the model: <botocore.model.ServiceModel object at 0x7fdc908efc10>
从我的谷歌搜索中,我发现它是一个Python错误,这是有道理的,因为这是Elastic Beanstalk使用的。但是没有针对这个具体案例的信息。有谁知道为什么会这样?
EBCLI 3.14.6与当前最新的AWS CLI兼容(> 1.16.10)。
要解决这个问题:
pip install awsebcli --upgrade
要么
pip install 'botocore<1.12'
该问题的核心是botocore
上的开放依赖范围,允许awsebcli <3.14.5,以便用户始终可以访问最新的AWS CLI命令/ AWS API(botocore
manages 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。
我在awsebcli之后安装awscli后遇到了同样的错误。 botocore依赖项不匹配。因此,如果您想使用awsebcli命令,请确保不要覆盖其依赖项: