ヤマムギ

growing hard days.

*

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アドレスを表示する処理でした。

requestsを使っていますが、これは、requirements.txtに”requests==2.20.0″と記載があるので、ビルドのときに含まれているようです。

API Gatewayもデプロイまで自動でされました。

CloudFormationのスタックの出力に、APIエンドポイントが出力されているのでブラウザからアクセスします。
アクセス元のIPアドレスが表示されれば成功です。

とてもとても便利ですね。

PyCharmだけで開発からビルド、デプロイまでの作業をすべて行えるようになりました。
新規プロジェクトを作ったときに、AWS CodeCommitのリポジトリもできたらいいのにとも思います。
方法があるかもしれませんので、またできれば別の記事で公開したいと思います。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

ad

ad

  関連記事

Developers Summit 2018 「AWSのフルマネージドな環境でCI/CDをやってみよう!AWS Cloud9からAWS Fargateへの継続的デプロイをご紹介」を聞きました

※写真は展示のAmazon Echoです。 以下は、思ったことや気になったことを …

Amazon Location Service入門ワークショップ-トラッカー

トラッカーでデバイスの位置や移動履歴を追跡できます。 関連記事 Amazon L …

JAWS-UG 大阪 関西女子合同 Amazon Personalizeハンズオンやってみました

久しぶりに大阪でJAWS-UGに参加です。 Amazon Personalize …

Amazon ECSサービスでAWS App Meshを使用

AWS App MeshユーザーガイドのAWS App Mesh とAmazon …

Amazon S3オブジェクトロック

S3のオブジェクトロックを確認しました。 オブジェクトロックの有効化 現在、既存 …

EKS「現在の IAM プリンシパルは、このクラスター上の Kubernetes オブジェクトにアクセスできません」

マネジメントコンソールでクラスターのオブジェクトを見ようと、リソースの名前空間や …

S3オブジェクトロックを試しました

S3オブジェクトロックが必要になる要件に今のところ、出会ってないのでまだ設定した …

TwilioからのリクエストをAPI Gateway+LambdaでTwimlを返して処理する

Twilioで着信した時のリクエスト先としてTwimlをWebサーバやS3で用意 …

macOSにAWS Schema Conversion Toolをインストール

環境 macOS BigSur バージョン11.5(20G71) MacBook …

AWS LambdaでS3 Select

RDSスナップショットをS3にエクスポートした、Parquetフォーマットのデー …