Amazon web services CircleCi 2.0:未找到aws命令

Amazon web services CircleCi 2.0:未找到aws命令,amazon-web-services,circleci,migrate,Amazon Web Services,Circleci,Migrate,我尝试将circleci从v1.0迁移到v2.0 首先我无法安装awscli,但最终可以使用下面的代码安装它,但出现了另一个找不到aws命令的错误 version: 2 jobs: build: docker: - image: circleci/node:8.9.1 steps: - checkout - restore_cache: key: dependency-cache-{{ c

我尝试将circleci从v1.0迁移到v2.0

首先我无法安装awscli,但最终可以使用下面的代码安装它,但出现了另一个找不到aws命令的错误

version: 2
    jobs:
      build:
        docker:
          - image: circleci/node:8.9.1
    steps:
      - checkout
      - restore_cache:
          key: dependency-cache-{{ checksum "package.json" }}
  - save_cache:
      key: dependency-cache-{{ checksum "package.json" }}
      paths:
        - node_modules
deploy:
    docker:
      - image: circleci/node:8.9.1
steps:
  - checkout
  - run:
      name: Install yarn
      command: yarn install
  - run:
      name: Install awscli
      command: |
        sudo apt-get install python-pip python-dev
        pip install 'pyyaml<4,>=3.10' awscli --upgrade --user
  - run:
      name: AWS S3
      command: aws s3 sync build s3://<URL> --delete

workflows:
  version: 2
  build-and-deploy:
    jobs:
      - build
      - deploy:
          requires:
            - build
          filters:
            branches:
              only: master
版本:2
工作:
建造:
码头工人:
-图:circleci/节点:8.9.1
步骤:
-结帐
-还原U缓存:
键:依赖项缓存-{{checksum“package.json”}
-保存缓存:
键:依赖项缓存-{{checksum“package.json”}
路径:
-节点单元
部署:
码头工人:
-图:circleci/节点:8.9.1
步骤:
-结帐
-运行:
名称:安装纱线
命令:纱线安装
-运行:
名称:安装awscli
命令:|
sudo-apt-get-install-python-pip-python-dev
pip安装'pyyaml=3.10'awscli--升级--用户
-运行:
名称:AWS S3
命令:aws s3同步生成s3://--删除
工作流程:
版本:2
构建和部署:
工作:
-建造
-部署:
要求:
-建造
过滤器:
分支机构:
仅限:船长

它显示“aws:未找到命令”。我不确定我是否做错了什么,但我想知道问题出在哪里以及如何解决。谢谢。

尝试以下步骤(取自他们的v2文档)

步骤:
-运行:
名称:安装PIP
命令:sudo apt get install python pip python dev
-运行:
名称:安装awscli
命令:sudopip安装awscli
-运行:
名称:部署到S3
命令:aws s3同步生成s3://--删除

尝试以下步骤(取自他们的v2文档)

步骤:
-运行:
名称:安装PIP
命令:sudo apt get install python pip python dev
-运行:
名称:安装awscli
命令:sudopip安装awscli
-运行:
名称:部署到S3
命令:aws s3同步生成s3://--删除

我会修改您的配置。每项工作都应该有一个重点。例如,对于部署,您不需要NodeJS,您需要AWS CLI,因此请使用映像

version: 2
    jobs:
      build:
        docker:
          - image: circleci/node:8.9.1
    steps:
      - checkout
      - restore_cache:
          key: dependency-cache-{{ checksum "package.json" }}
  - save_cache:
      key: dependency-cache-{{ checksum "package.json" }}
      paths:
        - node_modules
  - persist_to_workspace:
      root: /home/circleci
      paths: project
deploy:
    docker:
      - image: cibuilds/aws:1.16.1
steps:
  - checkout
  - attach_workspace:
      at: /home/circleci
  - run:
      name: AWS S3
      command: aws s3 sync build s3://<URL> --delete

workflows:
  version: 2
  build-and-deploy:
    jobs:
      - build
      - deploy:
          requires:
            - build
          filters:
            branches:
              only: master
版本:2
工作:
建造:
码头工人:
-图:circleci/节点:8.9.1
步骤:
-结帐
-还原U缓存:
键:依赖项缓存-{{checksum“package.json”}
-保存缓存:
键:依赖项缓存-{{checksum“package.json”}
路径:
-节点单元
-将\u持久化到\u工作区:
root:/home/circleci
路径:项目
部署:
码头工人:
-图:cibuilds/aws:1.16.1
步骤:
-结帐
-附加工作区:
在:/home/circleci
-运行:
名称:AWS S3
命令:aws s3同步生成s3://--删除
工作流程:
版本:2
构建和部署:
工作:
-建造
-部署:
要求:
-建造
过滤器:
分支机构:
仅限:船长

我会修改您的配置。每项工作都应该有一个重点。例如,对于部署,您不需要NodeJS,您需要AWS CLI,因此请使用映像

version: 2
    jobs:
      build:
        docker:
          - image: circleci/node:8.9.1
    steps:
      - checkout
      - restore_cache:
          key: dependency-cache-{{ checksum "package.json" }}
  - save_cache:
      key: dependency-cache-{{ checksum "package.json" }}
      paths:
        - node_modules
  - persist_to_workspace:
      root: /home/circleci
      paths: project
deploy:
    docker:
      - image: cibuilds/aws:1.16.1
steps:
  - checkout
  - attach_workspace:
      at: /home/circleci
  - run:
      name: AWS S3
      command: aws s3 sync build s3://<URL> --delete

workflows:
  version: 2
  build-and-deploy:
    jobs:
      - build
      - deploy:
          requires:
            - build
          filters:
            branches:
              only: master
版本:2
工作:
建造:
码头工人:
-图:circleci/节点:8.9.1
步骤:
-结帐
-还原U缓存:
键:依赖项缓存-{{checksum“package.json”}
-保存缓存:
键:依赖项缓存-{{checksum“package.json”}
路径:
-节点单元
-将\u持久化到\u工作区:
root:/home/circleci
路径:项目
部署:
码头工人:
-图:cibuilds/aws:1.16.1
步骤:
-结帐
-附加工作区:
在:/home/circleci
-运行:
名称:AWS S3
命令:aws s3同步生成s3://--删除
工作流程:
版本:2
构建和部署:
工作:
-建造
-部署:
要求:
-建造
过滤器:
分支机构:
仅限:船长

这种安装awscli的方法似乎在各种系统上都能正常工作。在circleci/openjdk:8-jdk上测试,无需额外安装

编辑 节点映像似乎缺少libpython-dev的安装

##################
# Install AWS CLI
##################

# For node images on Circle, install libpython-dev
sudo apt-get install -y libpython-dev

# Download awscli bundle
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

# Unzip the downloaded bundle
unzip awscli-bundle.zip

# Run the install script and install to ~/bin/aws directory
./awscli-bundle/install -b ~/bin/aws
之后,要运行awscli命令,请指定aws可执行文件的完整路径,例如:

~/bin/aws s3 ls
资源


这种安装awscli的方法似乎在各种系统上都能正常工作。在circleci/openjdk:8-jdk上测试,无需额外安装

编辑 节点映像似乎缺少libpython-dev的安装

##################
# Install AWS CLI
##################

# For node images on Circle, install libpython-dev
sudo apt-get install -y libpython-dev

# Download awscli bundle
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

# Unzip the downloaded bundle
unzip awscli-bundle.zip

# Run the install script and install to ~/bin/aws directory
./awscli-bundle/install -b ~/bin/aws
之后,要运行awscli命令,请指定aws可执行文件的完整路径,例如:

~/bin/aws s3 ls
资源


Hmm。可能在安装PIP之前尝试一个步骤-我已经更新了示例。Hmm。可能在安装PIP之前尝试一个步骤-我已经更新了我的示例。