0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【超入門】Pythonで動くAWS LambdaのHelloWorld API

Posted at

はじめに

個人開発始めたての方やAWS、webアプリの勉強してる方向けに、まず挫折しない超シンプルなAPIをAWS環境にPythonで作ってみました。PostmanでHTTPリクエストを送ると'helloworld'が返ってくるというだけのものです。
ぜひ参考になれば。

インフラ構成

まずさっくりしたインフラ構成図はこちらです。
私はmacを使っていますがPostmanのインストール手順が少し変わるだけで環境差分はほぼないです。
AWSのいいところですね。

インフラ構成図.drawio.png

事前準備

構築の流れ

次にStep by StepでAPI構築の流れを追っていきます。
難しいところはほとんどなくサクサクと進めちゃいます。(30分くらいでできました。)

1. Lambda関数の作成

  1. AWS Lambdaコンソールで「関数の作成」をクリック
    Lambda_function1.png

  2. 「一から作成」を選び、以下のように設定する

  3. IAMロールは、既存のものを使用する
    lambda_function2.png

  4. 関数が作成されたら、コードエディタで「helloworld.py」というファイルを新規作成する

  5. 新規作成したファイルに以下のPythonコードを入力して「デプロイ」をクリックする

    def lambda_handler(event, context):
        return {
            'statusCode': 200,
            'body': 'Hello, World!'
        }
    
  6. ランタイム設定のハンドラが今回作ったファイル名.lamnbda_functionであることを確認する
    lambda_function3.png

2. API Gatewayの設定

  1. API Gatewayコンソールで「REST API」を選択し、新しいAPIを作成します

    • API名:HelloWorldAPI(任意)
  2. 作成したAPIで、「アクション」メニューから「リソースの作成」を選択し、以下のように設定する

    • リソース名/helloworld
  3. リソースを選択した状態で「アクション」→「メソッドの作成」→ POST を選択する

  4. 統合タイプで「Lambda関数」を選び、先ほど作成したLambda関数(HelloWorldFunction)を指定する
    apigateway1.png

  5. API Gatewayで「アクション」→「APIのデプロイ」を選択する

  6. 新しいステージ(例:「dev」)を作成し、デプロイを完了させる

  7. デプロイ後、API > ステージでAPIのエンドポイントURLが表示されるのでコピー
    apigateway2.png

4. Postmanで動作確認

  1. Postmanを開き、POSTリクエストを作成する
  2. URLに、API GatewayでコピーしたエンドポイントURLを入力する
  3. 「Send」をクリックし、以下のようなレスポンスが返ってくることを確認する

postman.png

```json
{
    "statusCode": 200,
    "body": "\"Hello from Lambda!\""
}
```

おわりに

今回作ったwebAPIをベースに、DBにレコードを新規登録するAPIや何かしらの値を返却するAPIを作ってもう少し拡張して行くと面白いかもと思います。
ちなみに私は、kintoneがデータを更新するたびにawsのRDSにレコードを登録・更新してくれるAPIを作る予定です。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?