如何在GitHub Actions中配置/使用AWS CLI?

问题描述

我想在GitHub Actions中运行aws amplify start-job之类的命令。我知道AWS CLI已预先安装,但不确定如何配置。

尤其是,我不确定如何为所有配置选项命名环境变量,因为some docs仅提及AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY,而没有提及区域和输出设置。 / p>

解决方法

我可以提供以下机密和环境变量,然后使用以下命令:

env:
  AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
  AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  AWS_DEFAULT_REGION: us-east-1
  AWS_DEFAULT_OUTPUT: json

例如

  deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Deploy
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        AWS_DEFAULT_REGION: eu-west-1
        AWS_DEFAULT_OUTPUT: json
      run: aws amplify start-job --app-id xxx --branch-name master --job-type RELEASE
,

我建议使用此AWS操作在GitHub Actions环境中设置所有AWS区域和凭证环境变量。它不会设置输出env var,因此您仍然需要这样做,但是它具有很好的功能,可以确保凭据env var在输出中被屏蔽为秘密,支持承担角色,并在需要时提供您的帐户ID其他动作。

https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions

,

以我的经验,动作运行器提供的现成的AWS CLI工具很好用。

但是有时候您会更喜欢使用凭证文件(例如terraform AWS提供程序),并且它是example

这将对编码的文件进行base64解码,并用于以下步骤。

      - name: Write into file
        id: write_file
        uses: timheuer/base64-to-file@v1.0.3
        with:
          fileName: 'myTemporaryFile.txt'
          encodedString: ${{ secrets.AWS_CREDENTIALS_FILE_BASE64 }}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...