AWS Toolkits for PyCharmでLamda関数をデプロイ

皆さんこんにちは。

アドベントカレンダー2日目ですが忘れていて急いでかきあげました。
そのせいで内容は割とホットなものになっています。

11/30日にAWSから「AWS Toolkit for Pycharm」がリリースされました。
実際にhello world と返すLamdaをawsにデプロイすることで、とても便利だということを実感したので紹介したいと思います。

今日、 AWS Toolkit for PyCharm の一般提供をお知らせします。また、 AWS Toolkits for IntelliJ と Visual Studio Code の開発者プレビューをお知らせします。これら(AWS Toolkits for IntelliJ と Visual Studio Code)は GitHub で活発に開発が進められています。これらオープンソースのツールキットによって、サーバーレス・アプリケーションを簡単に開発することができます。それは、完全な作成、ステップ実行によるデバッグ、そしてあなたが選んだ言語 ― それは Python、Java、Node.js、あるいは .NET ― と IDE におけるデプロイ体験などです

Amazon Web Services ブログ

AWS CLIとSAM CLIのインストール

前準備としてAWS CLIとSAM CLIのインストールをします

aws cliのインストールと設定
SAM CLIのインストールと設定

PyCharmにプラグインをインストール

PyCharmを起動したらプロジェクト選択のwindowの下の方のCoufigureからPluginsを選択します。

AWS Toolkitを検索してInstallします。

プロジェクトの新規作成

Create New ProjectからAWS Serverless Applicationを選択します。

プロジェクトの保存場所を決めてプロジェクトを作成します。
ここではテンプレートとしてAWS SAM Hello Worldを選択しました。

上の画像のようなディレクトリ構成でLamdaアプリケーションのテンプレートが作成されます。

 

またエディタの右下部分からリージョンやプロファイルの選択を切り替えることができます。

 

そして左下のAWS ExplorerからはAWS上に作成してあるLambdaやcloudFormationを確認することができます。
そしてなんとここから実行することができます。

 

Lambda関数のローカル実行

作成したLambda関数(今回はテンプレートから何もいじっていませんが)をローカル環境で実行することができます。
ローカルにDockerコンテナを立ち上げて実行してくれるところまでPyCharmがやってくれるようになります。

このテンプレートでは外部ライブラリのrequestsとpytestを使用しているのでプロジェクトの設定から予めインストールしておきます。

そしてapp.py上などで右クリックのメニューからRunを選択します。

 

Runtimeの設定やリージョンの設定をしたらRunを選択することでコンテナが立ち上がり実行されます。
初回実行時はコンテナイメージのダウンロードが走るので少し時間がかかります。

 

 

AWSへデプロイ

さあローカルで動くことを確認したらAWSへデプロイです。
AWS ToolkitならPyCharmからAWSへデプロイするのも簡単です。

 

プロジェクト上で右クリックをしてDeployメニューを開きます。

作成されるCloudFormationのStack名とS3のバケット名を選択または新規作成してDeployをクリックします。
しばらくするとAWS上にLambda関数が展開され実行できるようになります。

 

いかがでしょうか、AWS toolkitで今まで以上にLambdaの運用が楽になるのではないでしょうか。
現在はpythonのランタイムしか対応していない?ようですが
PyCharmを持っている方は試してみてはいかがでしょうか?

どうやらVScode版もあるみたいです。