LoginSignup
5
5

AWS LambdaでPython+Flask環境を作成する

Posted at

AWS LambdaでPython+Flask環境を作成する

AWS Lambdaは、サーバーレスコンピューティングサービスであり、アプリケーションやバックエンドサービスをサーバーレスアーキテクチャで実行することができます。この記事では、AWS Lambdaを使用してPython+Flask環境を作成する方法を説明します。

前提条件

  • AWSアカウントを持っていること
  • Python 3.8以上がインストールされていること

1. プロジェクトディレクトリの作成

まず、プロジェクト用のディレクトリを作成し、そのディレクトリ内で作業を行います。

$ mkdir python-flask-lambda
$ cd python-flask-lambda

2. 仮想環境の作成

pipはPythonのパッケージ管理システムで、多くのPythonパッケージを簡単にインストールできます。pipがインストールされていることを確認し、次のコマンドを実行してvirtualenvをインストールします。
プロジェクトディレクトリ内で、Pythonの仮想環境を作成し、アクティベートします。

$ pip install virtualenv
$ virtualenv venv
$ source venv/bin/activate

3. 必要なパッケージのインストール

次に、FlaskとZappaを含む必要なパッケージをインストールします。

$ pip install Flask zappa

4. Flaskアプリケーションの作成

プロジェクトディレクトリにapp.pyという名前のファイルを作成し、以下のコードを記述します。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello from AWS Lambda and Flask!'

if __name__ == '__main__':
    app.run()

ローカルでの起動方法

Flaskがアプリケーションを見つけるために必要な環境変数を設定します。以下のコマンドを実行して環境変数を設定してください。コマンドは、使用しているシェルによって異なります。

  • Bash (Linux/macOS)
$ export FLASK_APP=app.py

以下のコマンドを実行してFlaskアプリケーションをローカルで起動します。

$ flask run

デフォルトでは、アプリケーションは 127.0.0.1(localhost)のポート5000で実行されます。起動が成功すると、以下のようなメッセージが表示されます。

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

5. Zappaの設定

Zappaの設定ファイルzappa_settings.jsonをプロジェクトディレクトリに作成し、以下の内容を記述します。

{
    "dev": {
        "app_function": "app.app",
        "aws_region": "us-west-2",
        "profile_name": "default",
        "project_name": "python-flask-lambda",
        "runtime": "python3.8",
        "s3_bucket": "your-s3-bucket-name"
    }
}

aws_regionとs3_bucketを適切な値に置き換えてください。

6. aws cliの設定

AWS CLI をインストールして設定すると、zappa が自動的に認証情報を読み取ります。まず、AWS CLI をインストールします:

pip install awscli

次に、以下のコマンドを実行して AWS CLI を設定します:

aws configure

これにより、AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY を入力するように求められます。入力後、設定は ~/.aws/credentials ファイルに保存されます。zappa はこのファイルから認証情報を読み取ります。

7. Lambda関数のデプロイ

Zappaを使用して、Lambda関数をデプロイします。

$ zappa deploy dev

正常にデプロイされている場合、「Hello from AWS Lambda and Flask!」というメッセージが表示されます。

8. Lambda関数の更新

アプリケーションを更新した場合、以下のコマンドを実行してLambda関数を更新できます。

$ zappa update dev

9. Lambda関数の削除

プロジェクトを削除する場合、以下のコマンドを実行してLambda関数と関連リソースを削除できます。

$ zappa undeploy dev

まとめ

この記事では、AWS LambdaでPython+Flask環境を作成する方法を紹介しました。AWS LambdaとZappaを使用することで、簡単にサーバーレスなWebアプリケーションをデプロイできます。この方法を試して、サーバーレスアーキテクチャの利点を活用してみてください。

以下のサイトでは他にもpythonとFlaskとAWSについて解説しています。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5