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

简介: 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.有第三方依赖包

  1. 设置部署程序包(.zip 文件)的目录结构。
  2. 为具有运行时依赖项的 Lambda 函数创建部署程序包。
  3. 使用 AWS CLI 上传部署程序包并创建 Lambda 函数。
  4. 调用 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包

在这里插入图片描述

目录
相关文章
|
6月前
|
算法 编译器 C++
【C++】—— c++11新特性之 lambda
【C++】—— c++11新特性之 lambda
|
1月前
|
Python
lambda函数简介
lambda函数简介
|
3月前
|
C++ Python
【Azure 应用服务】Azure Function Python函数部署到Azure后遇见 Value cannot be null. (Parameter 'receiverConnectionString') 错误
【Azure 应用服务】Azure Function Python函数部署到Azure后遇见 Value cannot be null. (Parameter 'receiverConnectionString') 错误
|
算法 编译器 容器
lambda
lambda
100 0
|
Java 开发者
lambda让代码更优雅
Lambda表达式是Java 8中引入的一个重要特性,它允许开发者以更简洁的方式编写匿名函数,使得代码更加紧凑和易读。Lambda表达式是函数式编程的一种体现,可以将函数作为方法的参数传递,并且可以使用更简洁的语法实现函数式接口(只有一个抽象方法的接口)的实例化。Lambda表达式的语法形式为 (参数列表) -> {表达式或语句块}。
80 0
|
JSON 监控 JavaScript
|
JSON 安全 前端开发
AWS Lambda从入门到精通
AWS Lambda从入门到精通
|
Python
使用 AWS Lambda 的 Layer
使用 AWS Lambda 的 Layer
280 0
|
Python
Python编程:lambda替代品-operator模块
代码中不是很推荐使用 lambda表达式 取而代之的是 operator模块,提供了很多简单函数实现
64 0
|
存储 监控 JavaScript
5.1 软件服务 亚马逊 AWS Lambda|学习笔记
快速学习5.1 软件服务 亚马逊 AWS Lambda
5.1 软件服务 亚马逊 AWS Lambda|学习笔记