本次演示分为2种
1.无第三方依赖包
创建 Lambda 用作部署程序包的 .zip 文件。
1.创建函数(myfunc)项目目录,并进入该目录
bash-4.2# mkdir myfunc
bash-4.2# cd myfunc/
2.编写您的lambda函数,此处作为演示
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
3.将 lambda_function.py 文件添加到 .zip 文件的根目录
bash-4.2# zip my-function.zip lambda_function.py
adding: lambda_function.py (deflated 19%)
bash-4.2# ls -l
total 8
-rw-r--r--. 1 root root 165 Sep 18 07:49 lambda_function.py
-rw-r--r--. 1 root root 320 Sep 18 07:51 my-function.zip
4.此处可以用aws cli来创建函数,也可以将zip包直接通过aws console上传(示例如下)
A.AWS Console 上传
B.aws cli创建函数,并 指定zip包
请自行修改对应的参数,如 IAM的ARN
bash-4.2# aws lambda create-function --function-name my-func --zip-file fileb://my-function.zip --handler lambda_function.lambda_handler --runtime python3.6 --role arn:aws:iam::your-account-id:role/lambda-ex
2.有第三方依赖包
- 设置部署程序包(.zip 文件)的目录结构。
- 为具有运行时依赖项的 Lambda 函数创建部署程序包。
- 使用 AWS CLI 上传部署程序包并创建 Lambda 函数。
- 调用 Lambda 函数以返回源代码
创建 Lambda 用作部署程序包的 .zip 文件。
1.创建函数(mylib-func)项目目录,并进入该目录
bash-4.2# mkdir mylib-func
bash-4.2# cd mylib-func
2.编写示例代码lambda_function.py(此处requests为第三方包)
import requests
def main(event, context):
response = requests.get("https://www.baidu.com/")
print(response.text)
return response.text
if __name__ == "__main__":
main('', '')
3.在新的 package 目录中安装请求库。
bash-4.2# pip3 install --target ./package requests
4.使用已安装库在根目录下创建部署程序包(在上级目录创建zip包,将package目录下的东西加入到zip包中)
bash-4.2# cd package/
bash-4.2# zip -r ../mylib-func.zip .
5.将 lambda_function.py 文件添加到 zip 文件的根目录
bash-4.2# zip -g mylib-func.zip lambda_function.py
adding: lambda_function.py (deflated 32%)
bash-4.2#
6.将包上传到AWS Lambda
A.AWS Cli创建函数并选择包(请自行修改对应的参数)
bash-4.2# aws lambda create-function --function-name my-sourcecode-function --zip-file fileb://mylib-func.zip --handler lambda_function.main --runtime python3.8 --role arn:aws:iam::your-account-id:role/lambda-ex
B.使用AWS Console创建函数并上传zip包