0%

AWS_Lambda LAB1 By Python

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
    11
    import 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結果

參考資料

歡迎關注我的其它發布渠道