CircleCI OrbsでAWS CLIを超簡単に導入して使ってみる
CircleCI Orbsを利用して、AWS CLIを超簡単に導入してみました。
おすすめの方
- CircleCIでAWS CLIを使いたい方
CircleCI用のIAMユーザを準備する
IAMユーザの作成
まずは前準備としてCircleCI用のIAMユーザを作成します。
aws iam create-user \ --user-name circleci-test-user
IAMユーザにIAMポリシーをアタッチ
さきほど作成したIAMユーザに対して、S3に対するRead権限を付与します(動作確認用の権限)。
aws iam attach-user-policy \ --user-name circleci-test-user \ --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
なお、実際にCI/CDを構築するときは、AssumeRoleを用いたセキュアな方法を推奨します。
アクセスキーの取得
下記コマンドでアクセスキーを取得します。
aws iam create-access-key \ --user-name circleci-test-user
取得したアクセスキーは、あとでCircleCIの環境変数に設定します。
CircleCIのワークフローを作成する
GitHubの任意リポジトリにCircleCIの設定ファイルを作成します。
mkdir .circleci touch .circleci/config.yml
中身は下記とします。CircleCI Orbsの宣言と使用が簡単に記載できます。
version: 2.1 executors: deploy_container: docker: - image: circleci/python:3.8.7 working_directory: ~/work orbs: aws-cli: circleci/aws-cli@1.3.2 commands: lint_and_unit_test: steps: - run: name: lint and unit test command: | set -x echo "any lint and unit test command" deploy: steps: - run: name: deploy command: | set -x aws --version echo "any deploy command" aws s3 ls jobs: lint_and_unit_test: executor: deploy_container steps: - checkout - lint_and_unit_test deploy: executor: deploy_container steps: - checkout - aws-cli/install - deploy workflows: version: 2 release-workflow: jobs: - lint_and_unit_test: filters: tags: only: /.*/ - deploy: filters: branches: only: /.*/ tags: only: /.*/ requires: - lint_and_unit_test
CircleCIの設定を行う
プロジェクトのセットアップ
リポジトリをPushし、CircleCIでSet Up Project
を選択します。
CircleCIのワークフローが動きますが、環境変数を設定していないので失敗します。
環境変数を設定
下記の環境変数を設定します。
Name | Value |
---|---|
AWS_ACCESS_KEY_ID | 取得したAccessKeyId |
AWS_SECRET_ACCESS_KEY | 取得したSecretAccessKey |
AWS_DEFAULT_REGION | ap-northeast-1 |
動作確認をする
失敗したパイプラインをRerunします。
成功しました!!
無事にS3バケットの一覧が取得できました!!!
aws s3 ls
コマンドが成功すれば、任意のAWS CLIコマンドが実行できますね。
さいごに
CircleC Orbsは便利ですね。いろいろ調べてみたいと思います。