AWS Lambda
开发人员指南

使用 AWS Lambda 作为 Android 移动应用程序后端

您可以使用 AWS Lambda 托管移动应用程序的后端逻辑。也就是说,您的某些移动应用程序代码可作为 Lambda 函数运行。这样一来,您可以将最小逻辑放入移动应用程序本身中,从而实现轻松扩展和更新(例如,您只需将代码更新应用于 Lambda 函数,而不必在应用程序客户端中部署代码更新)。

在创建 Lambda 函数后,您可以使用 AWS 移动软件开发工具包(如适用于 Android 的 AWS 软件开发工具包)从移动应用程序调用该函数。有关更多信息,请参阅用于 Amazon Web Services 的工具

注意

您还可以使用 Amazon API Gateway(而不是使用 AWS 开发工具包)通过 HTTP 调用 Lambda 函数。Amazon API Gateway 在移动用户和实现以下功能的应用程序逻辑之间额外添加了一层:

  • 限制单个用户或请求。

  • 防止分布式拒绝服务攻击。

  • 提供缓存层以缓存来自 Lambda 函数的响应。

有关更多信息,请参阅 配合使用 AWS Lambda 和 Amazon API Gateway

请注意有关移动应用程序和 AWS Lambda 集成的工作原理的以下信息:

  • 推事件模型 – 这是一个模型(请参阅AWS Lambda 事件源映射),其中应用程序通过将事件数据作为参数传递来调用 Lambda 函数。

  • 同步或异步调用 – 该应用程序可通过将 RequestResponse 指定为调用类型(或使用用于异步调用的 Event 调用类型)来调用 Lambda 函数并实时获取响应。有关调用类型的信息,请参阅管理权限:使用 Lambda 函数策略

  • 事件结构 – 您的 Lambda 函数接收的事件由应用程序定义,您的 Lambda 函数是为处理特定事件类型而写入的自定义代码。

设置端到端体验时有两种类型的权限策略可供选择:

  • 针对 Lambda 函数的权限 – 无论哪个对象调用 Lambda 函数,AWS Lambda 都将通过担任您在创建 Lambda 函数时指定的 IAM 角色(执行角色)来执行该函数。利用与此角色关联的权限策略,您可以向 Lambda 函数授予其所需的权限。例如,如果 Lambda 函数需要读取某个对象,您可以在权限策略中为相关 Amazon S3 操作授予权限。有关更多信息,请参阅管理权限:使用 IAM 角色 (执行角色)

  • 供移动应用程序调用 Lambda 函数的权限 – 应用程序必须具有有效安全凭证和权限才能调用 Lambda 函数。对于移动应用程序,您可以使用 Amazon Cognito 服务管理用户身份、身份验证和权限。

下图说明了应用程序的流程(此说明假设了一个使用适用于 Android 的 AWS 移动软件开发工具包进行 API 调用的移动应用程序):

  1. 移动应用程序检索来自 Amazon Cognito 身份池的 AWS 凭证。与身份池关联的角色向应用程序授予使用 AWS Lambda 的权限。

  2. 移动应用程序调用 Lambda 函数。

  3. AWS Lambda 向移动应用程序返回结果。