首页 > 解决方案 > 尽管已经设置了凭据,但 Github 操作工作流程中的 aws-cli 不断提示输入凭据?

问题描述

我想aws configure在 Github Actions Workflow 中运行以设置部署管道。但是,与此处找到的文档相比,设置环境变量似乎不起作用。

示例作业:

部署:名称:测试 AWS cli 运行:ubuntu-latest

steps:
  - name: Checkout
    uses: actions/checkout@v2

  - name: Configure AWS credentials
    uses: aws-actions/configure-aws-credentials@v1
    with:
      aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
      aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
      aws-region: us-west-2

  - name: Copy files to S3 with the AWS CLI
    run: |
      which aws
      aws configure

结果是

EOF when reading a line
AWS Access Key ID [********************]: 
##[error]Process completed with exit code 255.

在本地复制时,这是因为它提示输入来自 aws-cli 的访问密钥 ID。

为什么它会提示我,根据文档,它应该选择环境变量并相应地设置它?

这些秘密已在 Github 中设置,并使用上面引用的正确命名。

标签: amazon-web-servicesaws-cligithub-actions

解决方案


aws-actions/configure-aws-credentials@v1对我也不起作用。以下是您设置 AWS 凭证的方法。截至 2021 年 7 月 5 日,Ubuntu 最新预装了 Aws CLI,因此您可以使用 Github 操作“环境变量”设置 AWS CLI的变量。使用env:声明您的环境变量,然后选择在哪个系统上运行您的工作流程。尽管我在示例中明确声明了它,但您仍然可以使用您的 GitHub Secrets 以及该区域。

runs-on: ubuntu-latest
env:
  AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
  AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  AWS_DEFAULT_REGION: us-west-1
steps:
- uses: actions/checkout@v2

这将为您设置 AWS CLI 环境变量,不再需要使用aws-actions/configure-aws-credentials@v1来设置您的 AWS 凭证。确保将您的 AWS 凭证放入位于存储库设置中的 GitHub Secrets 中。使用秘密时。在环境变量中,GitHub 会知道在您的存储库中查找与您提供的密码名称匹配的任何密码


推荐阅读