AWS Lambda结合Android应用的初次尝试

Android - 从零开始的AWS Lambda


和传统的应用程序不同,用Lambda函数,结合其他微服务框架一起使用,可以把一个原本很复杂、冗余的应用分解成一个个小的部分。每个框架之间只需要专注于做自己的事情,相互之间是松耦合的。这增加了开发程序的可能性、灵活性。

但是,要从头自己开始学习还是有点点困难的。所以这次记录了一下从头开始学习Lambda函+Cognito与Android配合使用的过程。

“AWS Lambda 是一项计算服务,可使您无需预配置或管理服务器即可运行代码。”
所以,我们只需要关注于代码本身,由AWS Lambda 管理提供内存、CPU、网络和其他资源均衡的计算机群。

实现了啥

​ 创建一个简单的 Android 移动应用程序,通过在本地应用程序中输入字符串并提交,从 Amazon Cognito 身份池检索 AWS 凭证,并使用包含请求数据的事件,调用 Lambda 函数处理请求,记录Cloud Watch日志并向前端返回响应,返回字符串。
在这里插入图片描述

​ 如果这些字连在一起就看不懂了:其实就是输入两个字符串,提交之后触发了Lambda函数;触发成功,返回toast,由Lambda函数记录调用的日志。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-96rMMpZo-1590072707661)(C:\Users\ASUS\Desktop\STEP - 1.assets\image-20200521215306843.png)]
在这里插入图片描述

STEP - 1 创建AWS IAM用户并授予管理员权限

AWS建议 不要使用 AWS 账户根用户执行任务,而是应为需要管理员访问权限的每个人创建新的 IAM 用户。

所以,拥有IAM用户是访问AWS服务的先决条件。

想要通过控制台创建用户,可以下载AWS CLI

1. 进入[AWS IAM console - 用户 - 添加用户]

在这里插入图片描述

2. 添加用户

a. 用户名即之后用于访问服务的用户名

b. 因为之后要通过CLI访问,所以务必要选择编程访问。选择AWS控制台访问的话,之后可以通过 IAM 控制台控制面板中找到账户的登录 URL进行登录。

https://account-ID-or-alias.signin.aws.amazon.com/console

在这里插入图片描述

3. 创建组

筛选策略中,选择AdministratorAccess,即赋予组用户管理员权限。
在这里插入图片描述

4. (可选)输入可跟踪用户信息的键值对

本次实验暂时用不到。接下来的步骤确认信息无误后,拥有管理员权限的IAM用户即可生成。
在这里插入图片描述

5. 返回[AWS IAM console - 用户]

查看创建好的用户,记录用户ARN,用于之后身份验证服务。arn是AWS资源的唯一标识。
在这里插入图片描述

6. 选择[安全证书 - 创建访问密钥]

把密钥下载下来,之后登录AWS CLI需要用。
在这里插入图片描述

STEP - 2 创建AWS IAM执行角色

要让AWS Lambda对我们的资源进行访问、操作,以实现具体功能,就要授予其相对应的权限。

IAM 角色就是信任的实体授予权限的安全方法。实体可以是其他账户的IAM用户、AWS的服务、EC2上的程序代码等。

1. 打开[AWS IAM console - 用户 - 角色]

选择创建角色,使用案例选择Lambda。
在这里插入图片描述

2. 确保当前角色拥有CloudWatch Logs日志写入的权限

这里选择AWSLambdaBasicExecutionRole
在这里插入图片描述

3. 角色名称键入lambda-android-role

在这里插入图片描述
这样,拥有basic权限的角色就配置好了。

STEP - 3 创建函数

接下来的操作会用到shell,编写一个简单的触发器,在本地打包创建成lambda函数并提交。

  • PS😋也可以选择在AWS Lambda的网页端中,通过现成的模板或创作设置想要的函数。 也支持在本地写完Lambda函数,打包之后上传。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-495OgRET-1590072707671)(C:\Users\ASUS\Desktop\STEP - 1.assets\image-20200521185723392.png)]

在这里,我选择用WSL 2(Windows Subsystem for Linux 2) 进行脚本编写创建,如果使用Linux/MacOS直接调用默认shell就可以了。

其实后来我看开发指南,Windows自带的Power Shell也是可以的,被我弄复杂了;但是Power Shell长得丑,算了不亏。
方法有很多,只要是shell能编写程序就OK。

1. 创建index.js文件

Lambda支持很多语言,如:javascript, java, python, c# … 这里按照官方给的教程,我用的是node.js,很简洁。

  • 函数第一个参数event是来自调用程序(即我们的APP上的操作)信息对象。
  • 第二个参数contexts是包含有关调用、函数和执行环境的对象,这里将会获取日志流的名称,然后将其返回到调用方。
  • 第三个参数callback 是一个回调函数,可以用它对调用程序(APP)进行响应(response)。

这里我们简单定义了,调用程序中的函数,在console中记录事件并返回给客户端一个字符串的操作。

exports.handler = function(event, context, callback) {
   
   console.log("Received event: ", event);
   var data = {
   
       "greetings": "Hello, " + event.firstName + " " + event.lastName + "."
   };
   callback(null, data);
}

2. 打包文件

把文件打包成压缩包,并下载aws命令行。

zip function.zip index.js

sudo apt install awscli

在这里插入图片描述
在这里插入图片描述

如果是第一次使用AWS CLI,那么就要设置用户。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值