Amazon web services Circle CI上的AWS CLI工具:配置:未知命令

Amazon web services Circle CI上的AWS CLI工具:配置:未知命令,amazon-web-services,ubuntu-12.04,aws-cli,circleci,Amazon Web Services,Ubuntu 12.04,Aws Cli,Circleci,我正在尝试将docker应用程序部署到Circle CI的Elastic Beanstalk上 mycircle.yml的部署部分是 deployment: hub: branch: [internal, production] commands: - pip install awscli - docker push company/web:$CIRCLE_SHA1 - sudo bash deploy.sh $CIRCLE_SHA1 $C

我正在尝试将docker应用程序部署到Circle CI的Elastic Beanstalk上

mycircle.yml的部署部分是

deployment:
  hub:
    branch: [internal, production]
    commands:
      - pip install awscli
      - docker push company/web:$CIRCLE_SHA1
      - sudo bash deploy.sh $CIRCLE_SHA1 $CIRCLE_BRANCH $CIRCLE_BUILD_NUM
我的deploy.sh调用aws cli如下

aws --version
aws configure set aws_access_key_id $AWSKEY
aws configure set aws_secret_access_key $AWSSECRETKEY
aws configure set default.region us-west-2
aws configure set default.output json

echo "SAVING NEW DOCKERRUNFILE: $DOCKERRUN_FILE"
aws s3 cp $DOCKERRUN_FILE s3://$EB_BUCKET/$DOCKERRUN_FILE
但是我得到了错误

--版本:错贴的元参数

健全性检查:“/root/.awssecret”:缺少文件。(格式:AccessKeyID\nSecretAccessKey\n)

配置:未知命令用法:aws操作[--help]

该脚本在mac os上使用完全相同的密钥和密码在本地运行完全正常


awscli的两个版本(在circle和我的mac上)都是1.7.14

我是CircleCI的Kevin。这里的问题似乎与以下事实有关:当您安装Python依赖项时,CircleCI会将它们安装到virtualenv中。这通常是一件好事,因为它将您的python环境与默认的系统python隔离开来,并支持我们的依赖项缓存。这里的问题是,您正在使用sudo运行
deploy.sh
脚本,这会破坏virtualenv环境并运行默认系统版本(在本例中,它实际上是一个较旧的替代AWS CLI)。放下sudo应该能帮你解决问题。(您最好在“依赖项”阶段运行
pip install awscli==x.x.x
,因为它会被缓存。)

PS:请联系sayhi@circleci.com以便及时回答一般问题