AWS Lambda
开发人员指南

使用 AWS Lambda 作为移动应用程序后端(自定义事件源:Android)

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

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

注意

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

  • 限制单个用户或请求。

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

  • 提供缓存层以缓存来自 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 发送了一条请求并在其中附带一个身份池 ID(您在设置的过程中创建身份池)。

  2. Amazon Cognito 将临时安全凭证返回到该应用程序。

    Amazon Cognito 代入与身份池关联的角色来生成临时凭证。应用程序使用该临时凭证可以执行的操作受限于权限策略(与在获取该凭证时使用的角色 Amazon Cognito 关联)中定义的权限。

    注意

    AWS 软件开发工具包可以缓存临时凭证,以便应用程序不必在每次需要调用 Lambda 函数时都向 Amazon Cognito 发送请求。

  3. 移动应用程序使用临时凭证(Cognito 身份)调用 Lambda 函数。

  4. AWS Lambda 代入执行角色以代表您执行您的 Lambda 函数。

  5. Lambda 函数执行。

  6. AWS Lambda 向移动应用程序返回结果(假定该应用程序使用 RequestResponse 调用类型(同步调用)调用了 Lambda 函数)。

有关引导您完成示例设置的教程,请参阅教程:使用 AWS Lambda 作为移动应用程序后端