AWS_Lambda LAB1 By Python
Lambda 是AWS 推出 Serverless (無伺服器)服務。與EC2 一樣同屬於運算部分,若要建立一個Application Server ,在EC2上需要部署服務器相關設定及code 等,資源不夠時也要自個設定擴展EC2運算資源或是設定 ELB 將流量負載均衡等;AWS Lambda 與 EC2不同,只需要將運算的 Application code 上傳到AWS Lambda,其他服務設定及資源擴展等等都是由 AWS 做好。
建立 AWS Lambda
建立名為: lambdaLAB1
選擇application code 運算平台(runtime ,中文翻譯不好稱為執行時間) : Python 3.9
其他項目預設即可: 預設上會給予將 Lambda 運算Log 上傳到 CloudWatch 的權利
上傳 code: 隨即系統開啟簡易編輯器,附上Python 範例程式, 檔名為 : lambda_function , 這邊小幅修改如下,再按Deploy
Function code Handler: lambda_function.lambda_handler
1
2
3
4
5
6
7
8
9
10
11import json
def lambda_handler(event, context):
print('First... Post Event: {}'.format(event))
print('Get Key2: {}'.format(event["key2"]))
print('Get Key3: {}'.format(event["key3"]))
print(context)
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda! {}'.format(event["key1"]))
}建立 Test
在AWS Lambda 主控台介面有一個 Test Tool ,簡單對 Function Code 使用 post 方法輸入一個 json 格式的資料, 來驗證上述的Function Code 是否合乎預期。上述 Function Code 第一個參數 event object, 資料是JSON 格式, 外部輸入的資料都由event object 所接收。
Test event 名為: TestPost1
Event JSON
1
2
3
4
5{
"key1": "AWS",
"key2": "GCP",
"key3": "Azure"
}其他預設即可
查看AWS Lambda 運算結果
於Lambda 主控台看到 response結果
於AWS CloudWatch 看到 response結果