9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS Toolkits for PyCharmを試してみた

Last updated at Posted at 2018-12-01

re:invent 2018 のKeyNote内でAWS toolkitにて愛用のPyCharm対応が可能になったので試してました。

AWSの公式ブログの通りですが一瞬、すっと分からない部分があったので手順を残しておきました。

インストール

プラグインのインストール

IDEA Plugin RepositoryからPyCharmのプラグインとして導入が可能な様なので、早速「Preference..>Plugins」から、AWSで検索すると「AWS Toolkit」があるのでINSTALLボタンをクリックして導入。(下図)
image.png

CLIのインストール

前述のプラグインはAWS Serverless Application Model(SAM) CLIなるものを裏で使うようなので、公式サイトを見ると分かりやすくコマンドが書いてあるのでそのままコピペ導入。
image.png
私はMacなので、以下のコマンドでインストールしました。

brew tap aws/tap
brew install aws-sam-cli

PyCharmの再起動が必要なのでやっておきましょう。

サンプルプロジェクトの作成

では、必要なツールの導入が終わったので、何か作ってみましょう(というより、ボイラープレートがあるのでそのまま実行してみる)。

  • NewProjectを選択すると、AWS Serverless Applicationが出現しているので、選択しプロジェクト名、SAM Templateから好きなの(一旦「AWS SAM Hello World」)を選んで作成。

image.png

すると、サーバーレスサプリ構築の最低限のファイルは自動生成(まあIDEなので当然だけと)されている。
下図の様にlambda関数の横っちょにλマークが付いてる。ここからローカル実行するらしい。クリック。

image.png

ここでプチトラップがあるので、メモ。

  • 当然だがAWSのCredentialを設定しておかないと行けない。PyCharmの右下の隅にAWS Connection Settingなるものがしれっと表示されており、ここからregionやCredentialが簡単に切り替えられる。(普段何が表示されてたっけ・・・)
    ~/.aws/credentialsを読み込んでいるようで、PyCharm上からも編集出来るが、反映するにはPyCharmを再起動しないと行けないので面倒くさい・・・

  • Docker起動しとかなきゃいけないんですね。MacOS上ので生Dockerは気が進まないけどインストールしておきましょうか。

image.png

さあ、そうすると先に進めて、lambda関数の実行時に渡す引数を何にするか選んだりするウィンドウが開く。適当に「AWS Proxy」あたり選んで実行してみましょう。

image.png

プチトラップ。

  • 多分、動かない。パッケージ足りない場合は、ソース見るとimport requestsとあるので、requestsは入れておきましょう。

でもやっぱり嬉しいのは、DEBUGモードで実行すると、簡単にBREAK実行出来ることですね。

image.png

AWSにデプロイしてみる。

つぎは勿論AWSにデプロイしてみたいわけで、既に存在しているtemplate.ymlファイルを右クリック「Deploy Serverless Application」してみましょう。

image.png

AWS CloudFormationのスタック名や、lambda関数の環境変数、デプロイパッケージを保存するS3バケット名(ここでバケット作成可能)などをここで設定しておけるので、よしなに入力してDEPLOYしてみましょう。

1分ほどで、lambda関数がデプロイされます。PyCharmの左下あたりに「AWS Explorer」ウィンドウがあるので、見てみるとlambda関数が作成されています!

image.png

右クリックすると、リモート実行ボタンなるものがあるので、クリックすると、デプロイされたlambda関数が実行され、動作確認が可能になります。

所感

lambdaを使ったアプリが業務でも増えていく中で、開発効率向上は間違いなさそう。
でも野良lambda、野良バケットが量産されそうなので、どうやってガバナンスするかは課題ですね。

9
7
0

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
  3. You can use dark theme
What you can do with signing up
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?