zappaでHello Worldしてみた。

aws
スポンサーリンク

先日こちらでもお話した通り、今回はzapaでHello Worldをしてみたいと思います。

 

Hello Worldに向けて、

【windows10】pyenv・pipenvでpythonの仮想環境を構築する

 

windowsでAWS CLIを使用する

 

この2つに記載のある環境を作ってみてくださいー。

 

 

 

 

 

zappaとは

GitHub - Miserlou/Zappa: Serverless Python
Serverless Python. Contribute to Miserlou/Zappa development by creating an account on GitHub.

 

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公開されっぱなしになっちゃうので、

削除するのをお忘れなくー。

 

 

それでは!!

 

 

ブログランキング・にほんブログ村へ
にほんブログ村


人気ブログランキング

コメント

タイトルとURLをコピーしました