概要
Windows端末の職場で快適にAWS CLIv2を使うための準備
ストレス削減ポイント
zsh
によりll
のエイリアスが効く
bash
, zsh
ともにAWS CLI コマンド補完 が効いている
- 個人的に仕事だと何かと使う
curl
, jq
入り
nc
, iputils(ping)
を追加 /2020.3.2
イケてないポイント
- AmazonLinuxをベースにしたから容量が600MB弱
Dockerfile
https://hub.docker.com/r/bigmuramura/awscliv2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
FROM amazonlinux:2
RUN yum install -y python3 curl jq git zsh nc iputils
RUN python3 -m pip install git+https://github.com/boto/botocore.git@v2
RUN python3 -m pip install git+https://github.com/aws/aws-cli.git@v2
RUN echo $'complete -C /usr/local/bin/aws_completer aws' >> $HOME/.bashrc
RUN echo -e $'\
autoload -Uz compinit\n\
compinit\
'>> $HOME/.zshenv
RUN echo $'source /usr/local/bin/aws_zsh_completer.sh' >> $HOME/.zshrc
WORKDIR /root
|
ビルド
1
|
docker build -t awscliv2:latest .
|
テスト実行
zsh
指定でも実行可
1
|
docker run -it --rm awscliv2 zsh
|
コンテナ内のコマンド例
ll
や、aws s
Tab補完 で候補が表示される
1
2
3
4
5
6
7
8
|
[root@d05a1849b7a7]~# ll
total 0
[root@d05a1849b7a7]~# aws s
s3 savingsplans service-quotas signer sqs storagegateway
s3api sdb servicecatalog sms ssm sts
s3control secretsmanager servicediscovery sms-voice sso support
sagemaker securityhub ses snowball sso-oidc swf
sagemaker-runtime serverlessrepo shield sns stepfunctions
|
bash
に切り替えても Tab補完 が効く
1
2
3
4
5
6
7
|
[root@d05a1849b7a7]~# bash
bash-4.2# aws s
s3 savingsplans service-quotas signer sqs storagegateway
s3api sdb servicecatalog sms ssm sts
s3control secretsmanager servicediscovery sms-voice sso support
sagemaker securityhub ses snowball sso-oidc swf
sagemaker-runtime serverlessrepo shield sns stepfunctions
|
実践向け実行
資格情報をコンテナに渡さないと何も仕事にならない
会社はWindowsなので引数でアクセスキーを直接渡して実行している
docker pull
自分でビルドしてもいいけど面倒くさいので、dockerhubにあげてるからpullしてくる
1
|
docker pull bigmuramura/awscliv2
|
アクセスキー渡して実行
AWS_ACCESS_KEY_ID=
と、AWS_SECRET_ACCESS_KEY=
の=
の後ろにキーを直接入力
1
|
docker run -it --rm -e AWS_ACCESS_KEY_ID=xxx -e AWS_SECRET_ACCESS_KEY=xxx -e AWS_DEFAULT_REGION=ap-northeast-1 bigmuramura/awscliv2 zsh
|
AWSへ接続できるかテスト
コマンドが短いからいつもS3の一覧見れるかでチェックしている
S3のRead権限がない場合はその時々に応じて適当にコマンド入れてる
過去の記事もご参考にしてください
DockerコンテナにAWS資格情報を手軽に渡したい
docker run時にAWS資格情報を渡してCLIやSDKを使う
感想
クセでll
してしまうからzshで概ね満足
bashのalias設定してもいいけど、自分だけの環境ならfishか、zsh使いたい年頃なので
今更ながらalpineをベースで作った方がよかったかな…
参考
https://qiita.com/ikeisuke/items/3a010e7922795eb79d76
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-completion.html