swift - AWS APIGateway 和 Lambda - 如何在 iOS 应用程序终止之前立即调用函数?

标签 swift amazon-web-services aws-lambda aws-api-gateway amazon-cognito

我使用 AWS 已经有一段时间了,我开始掌握 APIGateway 和 Lambda 的窍门。我刚刚制作了一个 Lambda 函数,它接收用户输入的用户名,然后使用 AdminDeleteUser 函数从用户池中删除该用户,它工作正常。我什至用 APIGateway 设置它以在 XCode 中使用,它也能很好地工作。

问题
我的问题是,我正在尝试让 Lambda 函数在用户终止 iOS 应用程序时正确运行。我正在使用 NotificationCenter 观察器来观察应用程序何时终止,除了我相信 Lambda 函数的调用在应用程序完全终止后被取消之外,一切都运行良好,这意味着它无法完成完整的请求。我的 lambda 函数主要检查接收到的用户名是否是未经确认的用户,如果未经确认,则将其从用户池中删除。我在屏幕上执行此操作,用户必须确认通过短信发送的确认码

问题
所以我想我的问题是,

  1. 是否可以在应用程序终止时调用 Lambda 函数?
  2. 如果没有,是否可以在 App 退出前,在未确认的情况下从用户池中删除当前用户?

先谢谢你。

最佳答案

听起来正在发生的事情正是您上面所描述的。在与服务建立连接之前,应用程序正在退出。

更好的设计可能是让进程以 X 间隔 (using a Lambda scheduled event) 运行,以自动从您的数据存储中删除任何未确认的用户。

编辑:

当搜索未确认的用户时,您应该能够使用 UserCreateDate 字段来检查用户是否在您指定的时间内注册。如果“createDate”在该时间内,则忽略该用户。

ListUsers API

enter image description here

关于swift - AWS APIGateway 和 Lambda - 如何在 iOS 应用程序终止之前立即调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42937067/

相关文章:

aws-lambda - API 网关无法解码 base64

iOS 在两个导航 Controller 之间切换

Swift 协议(protocol)扩展 `var { get }` 覆盖实现的 `let`

ios - 如何仅模糊 uitableview 滚动的部分

python - 您可以使用 Python 开放对 EC2 实例上的 UDP 端口的访问吗?

C# 列出 amazon S3 文件夹下所有具有文件名的文件

ios - Swift 桥接头文件不适用于 use_frameworks

amazon-web-services - 您知道如何使用 Visual Studio Code 使 cfn-lint 功能正常吗?

aws-lambda - 以编程方式从Lambda上下文中获取帐户ID

c# - aws Lambda 函数中的 Webresponse c#