PyCharmにAWS Tool kitをインストールしてサンプルのLambda関数をデプロイして実行しました
2018/12/08
この記事はJetBrainsIDE Advent Calendar 2018に参加した記事です。
先日のre:Invent 2018でPyCharmへのAWS Tool kitのGA版での公開が発表されました。
最近はPyCharmばっかり使っていた自分への超朗報です。
なので、インストールしてみました。
目次
PyCharmの対応バージョンインストールとAWS SAM CLIインストール
とりあえずユーザーガイドから見てみます。
ユーザーガイドにPyCharmのバージョンは2018.3.x以上とありました。
自分のバージョンをPyCharmで確認すると2017系でしたので、最新版をPyCharmの公式からダウンロードします。
以前のバージョンを引き継ぐようにインストールしました。
そしてAWS SAM CLIも必要だとのこと。

これは公式サイトに手順があります。
私の環境はMacなので、公式手順のコマンドを順番に実行します。
あと、環境にアクセスキーIDとシークレットアクセスキーも設定しておきます。
AWS Tool kitインストール
PyCharmを起動して、[Preference]-[Plugins]でAWS Tool kitを検索してインストールしてPyCharmを再起動です。
これでインストールは完了です。
サンプルプロジェクトを試してみました
PyCharmを起動して[New Project]からプロジェクトを新規作成しました。
AWS Serverless Applicationが選択できます。
Templateが選択できたので、AWS SAM Hello Worldを選択しました。
ここで、環境設定を見てみます。
PyCharmの左ペインに[AWS Explorer]が増えているので見てみます。
認証がうまくいっているとデプロイ済みのLambda関数が表示されます。
リージョンやプロフィールもここで選択することができます。
複数のプロファイルを設定しておいて切り替えると便利そうですね。
デプロイしてみます。
template.yamlを右クリックして、[Deploy Serverless Application]を選択します。
(S3バケットは新規作成しました)
ビルドが完了して、デプロイが完了します。
対象のアカウントを確認すると、CloudFormationのスタックが作成されて、Lambda関数、API Gatewayが作成されています。
この内容はtemplate.yamlで指定しますが、今回はそのまま使用しました。
Lambda関数のコードを見てみると、http://checkip.amazonaws.com/にアクセスして、送信元のIPアドレスを表示する処理でした。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
try: ip = requests.get("http://checkip.amazonaws.com/") except requests.RequestException as e: # Send some context about this error to Lambda Logs print(e) raise e return { "statusCode": 200, "body": json.dumps( {"message": "hello world", "location": ip.text.replace("\n", "")} ), } |
requestsを使っていますが、これは、requirements.txtに”requests==2.20.0″と記載があるので、ビルドのときに含まれているようです。
API Gatewayもデプロイまで自動でされました。
CloudFormationのスタックの出力に、APIエンドポイントが出力されているのでブラウザからアクセスします。
アクセス元のIPアドレスが表示されれば成功です。
とてもとても便利ですね。
PyCharmだけで開発からビルド、デプロイまでの作業をすべて行えるようになりました。
新規プロジェクトを作ったときに、AWS CodeCommitのリポジトリもできたらいいのにとも思います。
方法があるかもしれませんので、またできれば別の記事で公開したいと思います。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWSマネジメントコンソールのマルチセッションサポート
AWSマネジメントコンソールにマルチセッションサポートが追加されましたので使いま …
-
-
S3バケットのデフォルト暗号化はデフォルトだったことを確認しました
S3バケットのデフォルト暗号化は名前のとおりだとデフォルトなので、暗号化を指定し …
-
-
AWS Organizations組織でCompute Optimizerを有効にしました
OrganizationsでCompute Optimizerの信頼されたアクセ …
-
-
「JAWS-UG朝会 #18」で主にAWSなブログについて発表をしました
ラジオ体操 いつものラジオ体操から。 今日はラーニングセンターから配信の日でした …
-
-
SIEM on Amazon OpenSearch Serviceを構築
このブログまわりのモニタリングをSIEM on Amazon OpenSearc …
-
-
EFSのマウントターゲットがデフォルトで作成されるようになってました
ひさしぶりにAmazon EFSファイルシステムを作成しました。 作成手順がすご …
-
-
Amazon Elasticsearch ServiceにMySQLのデータを投入してkibanaで可視化してみる
MySQLのデータの可視化にAmazon Elasticsearch Servi …
-
-
AWS OrganizatonsのRCP(リソースコントロールポリシー)を設定しました
2024/11月に発表されましたリソースコントロールポリシーを管理している組織に …
-
-
CodeBuildで執筆原稿データをまとめた
今書いている原稿に対して編集者さんから、「できればで構わないのですが、章ごとにマ …
-
-
ChatGPT APIをTeamsボットから使いました(AWS Lambda(Python) + API Gateway)
ChatGPT APIが有償で利用可能になったので、会社のTeamsボットに実装 …












