先日こちらでもお話した通り、今回はzapaでHello Worldをしてみたいと思います。
Hello Worldに向けて、
【windows10】pyenv・pipenvでpythonの仮想環境を構築する
この2つに記載のある環境を作ってみてくださいー。
zappaとは
pythonのwebアプリケーションフレームワークである、Flaskを使用する
aws向けサーバーレスフレームワーク
設定ファイルの記述のみで、awsの
lambda + API Gateway + Cloudwatchの構成が一式出来上がり、
API Gateway経由でアクセスできるアプリを比較的簡単に作成することができます。
zappa・Flaskインストール
冒頭で記載した仮想環境であれば、
pipenv shell
で仮想環境に入って、
zappaをpipでインストールします。
pip install zappa pip install Flask
インストール確認は以下で。
zappa --version Flask --version
初期設定
zappaの環境は以下のコマンドでひな形が作成されます。
zappa init
上記コマンド実行で色々聞かれますが、
基本的にはデフォルト設定のまま、進めます。
1つだけデフォルトではいけないので注意が必要です。
Where is your app's function?:
ここだけは何かしら入力しましょう。実行するpythonのfunction名です。
今回は「hello_world」と入力しておけばよいかと思います。
実行が終われば、zappa_settings.jsonという設定ファイルができていればOKです。
実行する関数作成
zappa_settings.jsonと同じディレクトリに、
hello_world.pyを作成して、以下のように記述します。
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'hello world!' if __name__ == '__main__': app.run()
デプロイする
ここまでくると、以下コマンドでデプロイすることができます。
zappa deloy dev 一度デプロイされたあとは zappa update dev
※AWS CLIの設定が済んでいる必要があります。
アクセスキーとシークレットアクセスキーの設定です。
※デプロイできるようにするために実行するawsユーザは
以下のポリシーがあると良いかと思います。
・AWSLambdaFullAccess
・AmazonS3FullAccess
・AmazonAPIGatewayAdministrator
・AWSCloudFormationFullAccess
動作確認
デプロイに成功すると、
Your updated Zappa deployment is live!: https://XXXXXXXXXX.execute-api.ap-northeast-1.amazonaws.com/dev
このような感じでAPI GatewayのURLが返ってきます。
これをブラウザに入力してみると、
Hello World!と表示されているはずです。
まとめ
pythonの仮想環境や、awsユーザのポリシーや、
AWS CLIの設定など下準備はちょっと必要ですが、
このあたりが整っていれば、かなり簡単に
lambdaを外部から使用できるようなアプリができるなーという印象。
今後ちょくちょく利用するかも。
ちなみに個人のawsアカウントで実行してますが、
数回試す程度であれば無料の範囲内なので、
そのあたりも嬉しいですね。
試してみるだけとはいえ、デプロイしたアプリは
そのままだとURL公開されっぱなしになっちゃうので、
削除するのをお忘れなくー。
それでは!!
20代前半までは東京で音楽をやりながら両手の指以上の業種でアルバイト生活をしていましたが、某大手プロバイダのテレアポのバイトでPCの知識の無さに愕然とし、コンピュータをもっと知りたい!と思ったことをきっかけに25歳の時にITの世界に未経験で飛び込みました。
紆余曲折を経て、現在は個人事業主としてお仕事させていただいており、10年ほどになります。
web制作から企業システム構築、ツール開発など、フロントエンドもバックエンドもサーバーもDBAも依頼があれば何でもやってきた雑食系エンジニアです。
今風にいうとフルスタックエンジニアということになるのでしょうか??
→ 詳細プロフィールというか、生い立ちはこちら
→スキルシートをご覧になる場合はこちら
→お仕事のご依頼やお見積りなどお問い合わせはこちらから!