Lambda開発のためのVScode
新卒研修中の森田です。
VScodeを使用してよくコードを書いていたので、LambdaもVScodeを使用して効率良く開発できないかなと思って軽い気持ちで始めたら、少し詰まったので共有します。
行いたいこと
前述した通り、VScodeを使用してLambdaの開発を行うことです。 本記事では、環境構築、ローカルでの実行、デプロイまでを行います!
環境構築
mac OS Catalina にて行います。
Pythonのインストール
今回Lambdaのランタイムは Python とするのでまずは、Pythonをインストールします。
私の場合、Jupyter
もいずれ使用したいのでMinicondaを用いてPythonをインストールします。
以下よりインストーラーをダウンロードしてインストールします。
https://docs.conda.io/en/latest/miniconda.html
bash ./Miniconda3-latest-MacOSX-x86_64.sh
インストール時に色々と聞かれますが、そのまま進めます。
インストールが完了しましたら、ターミナルを再起動し、baseが有効になっていれば問題ありません。
Dockerのインストール
以下よりインストーラーをダウンロードし、インストールを行います。
https://hub.docker.com/editions/community/docker-ce-desktop-mac/
VScodeのインストール
以下よりインストーラーをダウンロードし、インストールを行います。
https://azure.microsoft.com/ja-jp/products/visual-studio-code/
インストール後、VScodeの拡張機能AWS Toolkit
もインストールします。
AWS CLI のインストール
brewを用いてインストールします。
brew install awscli
インストール後、認証まで行います。
aws configure
AWS SAM CLIのインストール
AWS CLI に加えてローカルにて検証、デプロイ行うにあたって必要ですので、brewでインストールします。
brew tap aws/tap brew install aws-sam-cli
ローカルでLambda作成、実行
Lambdaを作成
AWS
の拡張機能を開き、コマンドパレット(command + shift + p )を開きます。
AWS: Connect to AWS
を選択します。
続いて先程作成した認証情報defalut
を選択します。
その後、左側のExplorerからリージョンを選択します。
すると、Lambda
が見えますので、右クリックをして作成します。
ランタイムを選択します。 筆者の場合、baseのPythonが3.8でしたのでpython 3.8
を選択しました。
Application Template
は、Hello World
とし、適当な箇所のフォルダ選択、名前を設定し作成します。(筆者の場合、lambda-python3.8-test
としました)
作成されたフォルダ( lambda-python3.8-test
)を開きます。
すると、このように必要なファイルが作成されていることが確認できます。
ローカルでのLambda実行
下記コマンドを実行することでDocker imageをpullし、検証用のコンテナが起動し、Lambdaがローカルで実行されます。
sam local invoke
ここで私は詰まってしまいました ...
-
詰まったポイント1 : 実行時のエラー
PythonPipBuilder:Validation - Binary validation failed for python, searched for python in following locations : ['/usr/bin/python'] which did not satisfy constraints for runtime: python3.8. Do you have python for runtime: python3.8 on your PATH?
まず、エラーの通りパスが違うようです。しかし、ターミナルでは 3.8
になっています。
調べたところ、 VSCodeのPythonのパスが誤った所が指定されているようですので設定
よりパスをcondaの箇所に設定しました。
which コマンド
でbaseのパスを確認
condaのパスを設定
-
詰まったポイント2 : 以前までの画面と違っている!
私は1つ目の問題を解消する際に、こちらの記事を参考にしました。
この記事を確認してたところ...
Run Locally
というボタンが私の環境では表示されず、 Add Debug Configuration
が表示されていました。
ボタンをポチって動作させたかったので、どうにか出てこないかと調べましたが、どうやら仕様が変更になっているらしく、F5
の実行で行うこととしました。
https://docs.aws.amazon.com/toolkit-for-vscode/index.html
ローカル実行結果
F5
で実行しましたところ、 hello world
が得られていることが確認できます。
デプロイ
コマンドパレット(command + shift + p )でAWS: Deploy SAM Application
を開きます。
template.yaml
の選択
リージョン選択(Tokyo)
S3バケットの選択/作成
スタック名の選択
VSCodeの出力でデプロイが始まり、デプロイが完了すると下図のようになります。
表示されているURLへアクセスすると、正常に動作していることが確認できます。
これで、デプロイまで一通りの作業は完了になります。
最後に
VSCodeにこだわったため、思いのほか時間を要してしまいました...
同じ思いをしないよう、ぜひ参考にしていただければと思います!