目前 AWS AppSync 只能订阅突变,这是获得实时更新的唯一途径。但是,如果对 AppSync 之外的支持数据进行了更改(例如来自 Lambda 函数的 DynamoDB 更新),那么我们如何通知客户端?
我能看到的唯一解决方案是使用“本地”解析器创建突变,并让更新 DynamoDB 的 Lambda 调用此突变。但我的问题是 AppSync 身份验证,在我的情况下设置为 Cognito。
我尝试在我的 Lambda 角色中授予 IAM 对 appsync:GraphQL
的访问权限,但直到我将 AppSync 中的身份验证类型从 Cognito 更改为 IAM 后,这才起作用。但是当然 Cognito 身份验证不适用于 Web 客户端。
我的 Lambda 函数是否必须通过 Cognito 使用用户名和密码进行身份验证才能触发突变?或者还有其他方法可以从 Lambda 通知客户吗?
最佳答案
您需要将 AppSync 身份验证类型设置为 IAM 并通过与您的 Cognito 用户池关联的 Cognito 联合身份服务使用适当配置的身份验证身份策略获取 AWS 凭证。然后,您应该能够使用这些凭证对 AppSync 进行 IAM 访问。
关于aws-appsync - AWS AppSync 使用 Cognito 时如何验证 Lambda 生成的突变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50284376/