AWS Lambda使用

亚马逊AWS Lambda文档:
https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/welcome.html

AWS Lambda是什么

AWS Lambda 是一项计算服务,可使您无需预配置或管理服务器即可运行代码。AWS Lambda 只在需要时执行您的代码并自动缩放,从每天几个请求到每秒数千个请求。您只需按消耗的计算时间付费 – 代码未运行时不产生费用。

你可以理解为这是一个事件触发的具有特定功能webserver。也就是你把webserver上的代码拆一部分下来交给亚马逊托管了。

  • 费用:根据运行时间和消耗资源计费。
  • 支持语言:您只需要以 AWS Lambda 支持的一种语言 (目前为 Node.js、Java、C#
    和 Python) 提供您的代码。

AWS Lambda 怎么用

亚马逊的引导做的相当的好
文档:https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/programming-model.html

1 创建lambda函数

这里写图片描述

2 配置lambda权限

这里写图片描述

运行语言即:你lambda 函数里托管的代码语言。
最重要的是下面那个权限:
角色 AWS IAM权限,即你要用那个用户身份执行这个lambda。
这里我们自己现创建一个角色并给于下列权限。
重点:给予的权限并不代表它具有该AWS服务所有权限,该权限是否能调用该服务下的某个API 需要自己check
最后点创建函数

3 进入到lambda后台

这里写图片描述

3.1 配置触发器
我们选择aws iot消息作为触发器,选择后下拉配置(当然你用的是gateway 你就应该配置gateway)
这里写图片描述
选择自定义IOT规则,创建新规则。
名称:用来表示你新建的规则。即你下次就可以直接选这个规则了
规则查询语句:

SELECT * FROM '+/faces3path'

即Iot topic +/表示 消息后缀是这faces3path会触发这个lambda表达式。

3.2 配置代码
点击lambda表示名即那个test-AWS-IOT-123321
会自动生成:

exports.handler = (event, context, callback) => {
    // TODO implement
    callback(null, 'Hello from Lambda');
};
  • event - AWS Lambda 使用此参数将事件数据传递到处理程序。
  • context - AWS Lambda使用此参数为您的处理程序提供正在执行的 Lambda 函数的运行时信息。
  • callback -您可以使用可选的回调将信息返回给调用方,否则返回值为 null。

Event 即Iot中的消息可以通过json的形式传递过来
context 对象的示例 Lambda 函数 它可以与 AWS Lambda 进行交互以获取有用的运行时信息
比如:context.getRemainingTimeInMillis()
超时是 Lambda 函数配置之一。当达到超时时间时,AWS Lambda 会终止您的 Lambda 函数。
你可以在// TODO implement 那部分添加你要托管的代码(比如执行某些AWS操作,访问第三方服务等)

sample:

console.log('Loading function');
exports.handler = function(event, context, callback) {
    //console.log('Received event:', JSON.stringify(event, null, 2));
    console.log('value1 =', event.key1);
    console.log('value2 =', event.key2);
    console.log('value3 =', event.key3);
    console.log('remaining time =', context.getRemainingTimeInMillis());
    console.log('functionName =', context.functionName);
    console.log('AWSrequestID =', context.awsRequestId);
    console.log('logGroupName =', context.logGroupName);
    console.log('logStreamName =', context.logStreamName);
    console.log('clientContext =', context.clientContext);
    if (typeof context.identity !== 'undefined') {
        console.log('Cognito
        identity ID =', context.identity.cognitoIdentityId);
    }    
    callback(null, event.key1); // Echo back the first key value
    // or
    // callback("some error type"); 
};

3.3 配置测试
在lambda函数界面上有配置测试,点击可以手动触发该lambda函数并传入预设参数。
你可以在其中添加 触发后event接受到的数据。
这里写图片描述

4 效果

如果配置成功,你可以运行测试进行测试lambda效果,我实现的是如果Iot推送了特定消息,就调用lambda读取消息中S3的路径,对S3数据进行处理后,访问三方服务发起推送通知。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值