aws-cli 相当于 eb 部署?

aws-cli equivalent of eb deploy?

我正在尝试将一个应用程序从一个 ElasticBeanstalk 实例部署到另一个实例。 运行 pip install awsebcli --upgrade --user 由于某些奇怪的原因没有在 EC2 机器上安装 eb cli 工具。

有谁知道仅使用 aws cli 选项就相当于 eb deploy

读书好难...

Linux 要求您 "[a]dd the path to the executable file to your PATH variable"

export PATH=~/.local/bin:$PATH

eb --version 现在有效

这个问题有点绕。您是否尝试在 Beanstalk 环境中的 EC2 实例之间移动代码?

如果我的假设正确,您 pulled/changed 您的代码在一台 Beanstalk 主机上。现在您正在尝试使用 EB CLI 将该更改传播到其他实例。 这不是最佳实践。 Beanstalk 有一种机制可以将您的代码部署到所有实例。

EB CLI 旨在从您的工作站 运行 将代码从您的 IDE/editor 推送到 AWS 中的 Beanstalk 主机。

Beanstalk 在 S3 中保留该代码修订的副本。如果 Beanstalk 环境是负载平衡的,那么所有实例都将 运行 在发生扩展事件或部署时使用相同的应用程序版本,因为它将从公共源中提取代码。

但是要回答你的问题:

Does anyone know the equivalent of eb deploy using only the aws cli options?

您想要将您的代码压缩并上传到 S3,并记下它所在位置的 S3 密钥和存储桶值。

然后创建一个新的应用程序版本。

% aws elasticbeanstalk create-application-version --application-name="<APPLICATION_NAME>" --version-label="<NEW_VERSION_LABEL>" --source-bundle="{\"S3Bucket\": \"<S3_BUCKET_NAME>\",\"S3Key\": \"<S3_KEY>\"}"

然后将您的新应用程序版本部署到 运行ning 环境。

% aws elasticbeanstalk update-environment --environment-id="<ENVIRONMENT_ID>" --version-label="<NEW_VERSION_LABEL>"