AWS无服务开发Lambda系列之本地上传包至Lambda

本次演示分为2种
1.无第三方依赖包
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包

 

posted @ 2023-01-30 20:47  MR__Wang  阅读(126)  评论(0编辑  收藏  举报