4

目前 AWS AppSync 只能订阅突变,这是获取实时更新的唯一方法。但是,如果对 AppSync 之外的支持数据进行了更改(例如来自 Lambda 函数的 DynamoDB 更新),那么我们如何通知客户端呢?

我能看到的唯一解决方案是使用“本地”解析器创建一个突变,并让更新 DynamoDB 的 Lambda 调用这个突变。但我的问题是 AppSync 身份验证在我的情况下设置为 Cognito。

我尝试appsync:GraphQL在我的 Lambda 角色中授予 IAM 访问权限,但直到我将 AppSync 中的身份验证类型从 Cognito 更改为 IAM 后才奏效。但是,当然 Cognito 身份验证不适用于 Web 客户端。

我的 Lambda 函数是否必须通过 Cognito 使用用户名和密码进行身份验证才能触发突变?还是有其他方法可以从 Lambda 通知客户?

4

1 回答 1

4

您需要将 AppSync 身份验证类型设置为 IAM,并通过与您的 Cognito 用户池关联的 Cognito Federated Identity 服务获取 AWS 凭证,并使用适当配置的身份验证身份策略。然后,您应该能够将这些凭证用于 IAM 访问 AppSync。

于 2018-05-12T18:36:14.723 回答