amazon-web-services - 当 AppSync/Aurora 中发生查询/突变时发送推送通知/电子邮件

标签 amazon-web-services aws-lambda aws-appsync aws-aurora-serverless

我正在将 AppSync 与 Aurora/RDS 结合使用。 我希望在某些情况下,当查询/突变发送到数据库时,然后,之后,我想发送电子邮件和推送通知,但这应该与查询/突变分离,也就是说,它确实无论失败还是有效。 目前我看到所有这些选项: 你能告诉我应该使用哪一个吗?

  1. 创建一个调用 lambda 函数的查询,该函数发送 推送/电子邮件并在实际发送后从客户端调用它 查询/变异完成。我不喜欢这个,因为逻辑是 客户端而不是服务器。看起来很容易实现,我 猜测很容易忽略第二个操作的结果 客户的观点。

  2. 前一个的变体。将这两个操作打包在一个操作中 网络请求。使用 GraphQL,这很容易,但我不想要 客户端等待第二次操作。 (是否可以创建 立即返回的 lambda 函数,就像其他函数的触发器一样 功能?)

  3. 将我的查询/突变附加到 lambda 函数而不是 RDS 直接地。然后,这些 lambda 函数调用其他 lambda 函数 用于通知。看起来编程更难,但更多 微服务架构友好。大概这就是最好的了 不确定。

  4. 使用 SQL 触发器并从这些触发器调用 lambda 函数。我 不知道这是否可能。正在研究...

  5. 使用管道解析器。第一个是查询/变异, 第二个是发送推送/电子邮件的 lambda 函数。我会 说这是一个糟糕的选择,因为我不想让客户等待 第二个解析器时的第二个操作或管理逻辑 失败。

  6. Amazon RDS 事件:看来可以附加 lambda 特定 AWS RDS 事件的函数。 https://docs.aws.amazon.com/lambda/latest/dg/services-rds.html它 似乎是关于创建数据库、恢复......以及诸如此类的 事物。我没有看到任何像创建行、更新行之类的东西...... 所以,除非我错了,否则我会放弃这个。

  7. 使用 Aurora MySQL 存储过程调用 Lambda 函数 调用 mysql.lambda_async ( lambda_function_ARN,lambda_function_input ) https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Lambda.html “例如,您可能想使用 Amazon 发送通知 每当插入行时简单通知服务 (Amazon SNS) 进入数据库中的特定表。”这正是我的意思 寻找。我喜欢这个想法,但不知道是否可行 使用 Aurora 无服务器。研究中……好像不可能 使用无服务器时: https://www.reddit.com/r/aws/comments/a9szid/aurora_serverless_call_lambda/

  8. 使用步骤函数:不知道如何使用它。

  9. 以某种方式将此 lambda 通知函数附加到 GraphQL/AppSync 而不是数据库,但我想这不是一个好主意,因为我 需要读取数据库到推送通知 token 和 将接收通知的用户的电子邮件。

您推荐我哪种方法?我正在使用 amplify cli。 非常感谢。

最佳答案

目前,AWS AppSync 只能在应用程序处于事件状态时发送通知。我们正在研究非活跃案例的实现。

如果您想在应用程序未激活时发送通知,您可以使用 iOS 上的推送通知:静默推送/交互式推送或 Android 上的推送通知。

如果您想在应用程序未激活时在手机上发送电子邮件、语音/短信或通知,您可以与 Amazon Pinpiont 集成.

关于amazon-web-services - 当 AppSync/Aurora 中发生查询/突变时发送推送通知/电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59556232/

相关文章:

amazon-web-services - Docker 容器中的 Elasticsearch、AWS 中的集群发现

aws-appsync - 运行事务 - AppSync Aurora 无服务器解析器 RDS

amazon-web-services - DynamoDB 中具有超过 2 列的复合键?

php - 使用 PHP 读取 Amazon Cloudfront API 结果

node.js - 来自 AWS Lambda 的 MongoDB 连接

amazon-web-services - Route53 路由子域到 AWS Lambda?

reactjs - 没有 Websockets 的 AWS AppSync 订阅

amazon-web-services - 使用 ALB 创建 Elastic Beanstalk 应用程序时覆盖运行状况检查端口

java - AWS lambda + spring boot = 不连接组件