AWS Lambda を使ってFizzBuzzしたった
Backgroud
AWS Lambdaを使ったサーバレスアプリケーションについての話を聞く機会が増えたので試しに作ってみた。
Preparetion
Development (lambdaのみ)
import json
def lambda_handler(event, context):
request = "[inner_test]"
num = 30
doc = {
"message":'Hello from Lambda!',
"request":process(num)
}
# TODO implement
return {
'statusCode': 200,
'body': json.dumps(doc)
}
def process(src):
if src % 15 == 0:
return "FizzBuzz"
elif src % 5 == 0:
return "Buzz"
elif src % 3 == 0:
return "Fizz"
else :
return src
import json
def lambda_handler(event, context):
request = "[inner_test]"
num = 30
doc = {
"message":'Hello from Lambda!',
"request":process(num)
}
# TODO implement
return {
'statusCode': 200,
'body': json.dumps(doc)
}
def process(src):
if src % 15 == 0:
return "FizzBuzz"
elif src % 5 == 0:
return "Buzz"
elif src % 3 == 0:
return "Fizz"
else :
return src
と書いたのちに、「Deploy」 -> 「テスト」 を押す。
Development (with API Gateway)
先ほどの構成はlambdaのみだったが、ここではAPI Gatewayを使って外部からリクエストをかけてみる。
まず、トリガーからAPI Gatewayを選ぶ。
セキュリティはお好みで。
「ステージ」→「POST」を選び、URLを取得する。
URL自体の構成はhttps://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/
それで、lambdaにてリクエストされた値を取得し、FizzBuzzする。コードベースで話すとevent["body"]
をjsonでパースして入力値を取得する。
import json
def lambda_handler(event, context):
request = "[inner_test]"
num = 30
#API Gatewayに対応
#ここでリクエストの値を取得
if "body" in event.keys():
request = json.loads(event["body"])
num = request["num"]
doc = {
"message":'Hello from Lambda!',
"request":process(num)
}
# TODO implement
return {
'statusCode': 200,
'body': json.dumps(doc)
}
def process(src):
if src % 15 == 0:
return "FizzBuzz"
elif src % 5 == 0:
return "Buzz"
elif src % 3 == 0:
return "Fizz"
else :
return src
実際にfizzbuzzの値が返ってくるか、Postmanを使ってAPIを叩いてみてみる。
num
の値を変えると、Fizz
Buzz
FizzBuzz
、数字のいずれかが返ってきます。
これでできた。
Future
サーバレス言わずに最小のVPS使って必要なパッケージ落とせばいいと思っていたのですが時間かけずにできた。
lambda処理後にS3とリンクすればデータは残せそうです。
Reference
Author And Source
この問題について(AWS Lambda を使ってFizzBuzzしたった), 我々は、より多くの情報をここで見つけました https://qiita.com/satsukiya/items/f8fae1b4fccae0430985著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .