AWS LambdaのNode.js v0.10 runtime サポート

AWS Lambdaの Node.js v0.10 runtime サポート期限がもうすぐで最近やたらとメールが来るのですが、自分で把握しているfunctionの数と、AWSからお知らせのある数とが一致しなくてイライラしておりました。

どうやら以下のコマンドで対象となるfunctionをリストアップできるようです。

aws lambda list-functions --query 'Functions[*].[FunctionName, Runtime]' | grep -v nodejs4.3 | grep -B1 nodejs| grep , | sort

実行してみたところ、

aws: error: argument command: Invalid choice, valid choices are:

というようなエラーが出てしまいました。 awsのバージョンを確認してみます。

# aws --version
aws-cli/1.4.4 Python/2.6.9 Linux/3.14.27-25.47.amzn1.x86_64

どうやら古いようです。

アップデートがあるか確認してみます。

pip list -o | grep aws
awscli (Current: 1.4.4 Latest: 1.11.66)

アップデートを行います。

pip install awscli -U

アップデートは

pip update

ではなく、

pip install パッケージ名 -U

のように -U オプションをつけるんだそうです。なんか頭悪い感じありますが・・・

参考

http://dragstar.hatenablog.com/entry/2016/09/02/113243

次に

-bash: /usr/bin/aws: そのようなファイルやディレクトリはありません

というエラーが出ました。

パスを確認してみます。

which aws
/usr/local/bin/aws

コマンドパスのハッシュを更新するといいそうです。

hash -r
pip --version
pip 1.5.6 from /usr/lib/python2.6/site-packages (python 2.6)

参考

http://qiita.com/vmmhypervisor/items/e846338b204061040957

次に

You must specify a region. You can also configure your region by running "aws configure".

というエラーが出ました。

aws configure

でリージョンなどの設定をします。