search
LoginSignup
4

More than 1 year has passed since last update.

posted at

updated at

Aws cli ebcliでエラー、動かない時にはまずpipパッケージのバージョンを確認しよう

なんだかんだ1年以上運用したので
定期的にどんな作業が発生するかというのが溜まってきたのでまとめてみます。

環境周りのコマンドを実行する作業になるので
不安がある場合は仮想環境のコピーを作成するのをお勧めします。

私の個人的な経験ではほとんどが依存関係のバージョンが食い違っているというものが大半でしたので
バージョンアップのメンテナンス内容をメインに書きます。

これから導入を考えている方に
こんな作業が発生するんだとか
こんなスキルセットが必要になるんだとか
参考になれば嬉しいです。

※ここに書いてあることが全てではないのでその点はご注意を

定期的に必要となるお手入れ

コマンドラインツールもそれぞれバージョンアップをしてくれています。
ゆえに突然エラーが出てくるということもしばしば

そんな時はまずは現状確認しましょう。
※pipを使っていることが前提です

piplisto.shell

$ pip list -o

続きましてpip自身のアップグレード

upgrade.pip

$ pip install --upgrade pip

awscliのアップグレード

awscliupgrade.shell

$ pip install awscli --upgrade --user

参考URL
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/installing.html

eb cliのアップグレード

ebcliupgrade.shell

$ pip install awsebcli --upgrade --user

botocoreのアップグレード

aws cliもアップグレードが同時に必要のような状態の場合

piplist.shell

$ pip list -o
Package          Version   Latest     Type 

awscli           1.16.97   1.16.99    wheel
botocore         1.12.87   1.12.89    wheel

以下のコマンドでbotocoreとaws cliの両方がアップデートされた

awscliup.shell


$ pip install awscli --upgrade --user


その他pip管理のプラグインアップデート

pipでプラグインを個別にアップデートしないといけない場合もある。

pipupdate.sh

$ sudo pip install プラグイン名 -U

#以下tabulateというpipパッケージをアップデートする場合
$ sudo pip install tabulate -U

再インストール

運用している中で何度かawscli,ebコマンド自体を再インストールしたら
治ったということがありましたのでそれも書いてみます。

aws cliの再インストール

pythonモジュールのpipが入っていれば以下でアンインストールできます。

uninstallaws.sh

$ pip uninstall awscli

ebコマンドの再インストール

ebコマンドのアンインストール

uninstallaws.sh

$ pip uninstall awscli

再度インストール

installeb.sh

$ pip install awsebcli --upgrade --user

エラーが表示されたら

ebコマンドのデバッグ

debug.sh

$ Eb deploy --debug

pipパッケージのダウングレード

稀に以下のようなエラーが表示されることがあります。

error.sh

ERROR: awscli 1.16.253 has requirement botocore==1.12.243, but you'll have botocore 1.12.253 which is incompatible.
ERROR: awscli 1.16.253 has requirement rsa<=3.5.0,>=3.1.2, but you'll have rsa 4.0 which is incompatible.

これはawscliが使っているパッケージのバージョンがあっていませんよ〜というもので
バージョンをあげる場合は前述のコマンドでいけますが
バージョンを下げろという場合もあります。
ダウングレードということになりますが
コマンド的にはバージョンを指定してインストールという形でダウングレードできます。

downgrade.sh

$ pip install botocore==1.12.243

パッケージのバージョンリストを確認

パッケージのバージョンって具体的にどんなものがあるかを確認したい時は以下のコマンドで表示されます。

verification-version.sh

$ pip install パッケージ名==

#botocoreなら以下
$ pip install botocore==

>>参考にさせていただきました

linuxの時間がずれた時もエラーが出ます。

当方の環境としてCentOS7の仮想環境に置いている状態で
定期的にLinuxの時間がずれるという現象があり
ebコマンドが動かなくなる時があります。
私の環境では以下の方法で解決しています。
>>CentOS7の時間がずれる

備考

pip listで表示されたパッケージを一括アップデートするコマンドはこちらです。
※ただし個人的経験ではaws-cli,eb-cli側で結構細かく指定があることが多いので結局個別にバージョン指定しながらやることが多くなるため一番最後に書いています。


$ pip list -o | tail -n +3 | awk '{ print $1 }' | xargs pip install -U

>>参考にさせていただきました

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4