ALBの後ろにLambdaを置いてみる

ALBの後ろにLambdaを置いてみたメモ。

手順

マネコンでLambda関数を作成する。以下を設定しその他はデフォルトを選択。

項目 備考
作成方法 一から作成
関数名 myHelloWorld
ランタイム Python 3.7

関数の内容は以下としてデプロイする。

import json

def lambda_handler(event, context):
    response = {
        "statusCode": 200,
        "statusDescription": "200 OK",
        "isBase64Encoded": False,
        "headers": {
            "Content-Type": "text/html; charset=utf-8"
        }
    }

    response['body'] = """<html>
    <head>
    <title>Hello World!</title>
    <style>
    html, body {
        margin: 0; padding: 0;
        font-family: arial; font-weight: 700; font-size: 3em;
        text-align: center;
    }
    </style>
    </head>
       <body>
          <p>Hello World!</p>
      </body>
    </html>"""
    return response

先にALBを作成して、ターゲットグループでLambda関数を指定する。

f:id:sotoiwa:20201215101828p:plain

f:id:sotoiwa:20201215101842p:plain

f:id:sotoiwa:20201215101856p:plain

f:id:sotoiwa:20201215101912p:plain

f:id:sotoiwa:20201215101929p:plain

上記の設定ではターゲットグループがデフォルトの転送先となる。

Lambdaのページからトリガーを追加することもでき、その場合はリスナーとパスを指定してあげると、ターゲットグループが自動的に作成され、ルールが作られる。Lambdaのページからの場合はエイリアスやバージョンの指定はできなそう。

f:id:sotoiwa:20201215101947p:plain

f:id:sotoiwa:20201215102002p:plain