re:invent 2018 のKeyNote内でAWS toolkitにて愛用のPyCharm対応が可能になったので試してました。
ここで、 AWS Toolkit for popular IDEs をアナウンスします!主要な統合開発環境に、AWSの機能を容易に活用できるようにするものです。 #reInvent pic.twitter.com/INyfRFQoga
— AWS / アマゾンウェブサービス (@awscloud_jp) 2018年11月29日
AWSの公式ブログの通りですが一瞬、すっと分からない部分があったので手順を残しておきました。
インストール
プラグインのインストール
IDEA Plugin RepositoryからPyCharmのプラグインとして導入が可能な様なので、早速「Preference..>Plugins」から、AWSで検索すると「AWS Toolkit」があるのでINSTALLボタンをクリックして導入。(下図)
CLIのインストール
前述のプラグインはAWS Serverless Application Model(SAM) CLIなるものを裏で使うようなので、公式サイトを見ると分かりやすくコマンドが書いてあるのでそのままコピペ導入。
私はMacなので、以下のコマンドでインストールしました。
brew tap aws/tap
brew install aws-sam-cli
PyCharmの再起動が必要なのでやっておきましょう。
サンプルプロジェクトの作成
では、必要なツールの導入が終わったので、何か作ってみましょう(というより、ボイラープレートがあるのでそのまま実行してみる)。
- NewProjectを選択すると、AWS Serverless Applicationが出現しているので、選択しプロジェクト名、SAM Templateから好きなの(一旦「AWS SAM Hello World」)を選んで作成。
すると、サーバーレスサプリ構築の最低限のファイルは自動生成(まあIDEなので当然だけと)されている。
下図の様にlambda関数の横っちょにλマークが付いてる。ここからローカル実行するらしい。クリック。
ここでプチトラップがあるので、メモ。
-
当然だがAWSのCredentialを設定しておかないと行けない。PyCharmの右下の隅にAWS Connection Settingなるものがしれっと表示されており、ここからregionやCredentialが簡単に切り替えられる。(普段何が表示されてたっけ・・・)
~/.aws/credentials
を読み込んでいるようで、PyCharm上からも編集出来るが、反映するにはPyCharmを再起動しないと行けないので面倒くさい・・・ -
Docker起動しとかなきゃいけないんですね。MacOS上ので生Dockerは気が進まないけどインストールしておきましょうか。
さあ、そうすると先に進めて、lambda関数の実行時に渡す引数を何にするか選んだりするウィンドウが開く。適当に「AWS Proxy」あたり選んで実行してみましょう。
プチトラップ。
- 多分、動かない。パッケージ足りない場合は、ソース見ると
import requests
とあるので、requests
は入れておきましょう。
でもやっぱり嬉しいのは、DEBUGモードで実行すると、簡単にBREAK実行出来ることですね。
AWSにデプロイしてみる。
つぎは勿論AWSにデプロイしてみたいわけで、既に存在しているtemplate.yml
ファイルを右クリック「Deploy Serverless Application」してみましょう。
AWS CloudFormationのスタック名や、lambda関数の環境変数、デプロイパッケージを保存するS3バケット名(ここでバケット作成可能)などをここで設定しておけるので、よしなに入力してDEPLOYしてみましょう。
1分ほどで、lambda関数がデプロイされます。PyCharmの左下あたりに「AWS Explorer」ウィンドウがあるので、見てみるとlambda関数が作成されています!
右クリックすると、リモート実行ボタンなるものがあるので、クリックすると、デプロイされたlambda関数が実行され、動作確認が可能になります。
所感
lambdaを使ったアプリが業務でも増えていく中で、開発効率向上は間違いなさそう。
でも野良lambda、野良バケットが量産されそうなので、どうやってガバナンスするかは課題ですね。