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包

在这里插入图片描述

目录
相关文章
|
2月前
|
算法 编译器 C++
【C++】—— c++11新特性之 lambda
【C++】—— c++11新特性之 lambda
|
10月前
|
Java 开发者
lambda让代码更优雅
Lambda表达式是Java 8中引入的一个重要特性,它允许开发者以更简洁的方式编写匿名函数,使得代码更加紧凑和易读。Lambda表达式是函数式编程的一种体现,可以将函数作为方法的参数传递,并且可以使用更简洁的语法实现函数式接口(只有一个抽象方法的接口)的实例化。Lambda表达式的语法形式为 (参数列表) -> {表达式或语句块}。
53 0
|
11月前
|
JSON 监控 JavaScript
|
11月前
|
JSON 安全 前端开发
AWS Lambda从入门到精通
AWS Lambda从入门到精通
|
11月前
|
Python
使用 AWS Lambda 的 Layer
使用 AWS Lambda 的 Layer
218 0
|
Python
Python编程:lambda替代品-operator模块
代码中不是很推荐使用 lambda表达式 取而代之的是 operator模块,提供了很多简单函数实现
51 0
|
存储 监控 JavaScript
5.1 软件服务 亚马逊 AWS Lambda|学习笔记
快速学习5.1 软件服务 亚马逊 AWS Lambda
339 0
5.1 软件服务 亚马逊 AWS Lambda|学习笔记
|
存储 弹性计算 API
【AWS系列】什么是Lambda
Lambda 是一项计算服务,可使您无需预置或管理服务器即可运行代码。Lambda 在可用性高的计算基础设施上运行您的代码,执行计算资源的所有管理工作,其中包括服务器和操作系统维护、容量调配和弹性伸缩和记录。您可以使用 Lambda API 调用 Lambda 函数,或者 Lambda 也可以运行函数来响应来自其他AWS服务的事件。只有在需要时 Lambda 才运行您的函数,并且能自动扩展,从每天几个请求扩展到每秒数千个请求。借助 Lambda,您可以为几乎任何类型的应用程序或后端服务运行代码。
373 0
【AWS系列】什么是Lambda
|
开发者
编写自己的dapper lambda扩展-使用篇
编写自己的dapper lambda扩展-使用篇
229 0
|
消息中间件 SQL 分布式计算
Lambda架构
Lambda架构
264 0