Amazon dynamodb 如何直接订阅AWS AppSync数据源?

Amazon dynamodb 如何直接订阅AWS AppSync数据源?,amazon-dynamodb,graphql,aws-appsync,Amazon Dynamodb,Graphql,Aws Appsync,我有一个连接到step函数的DynamoDB,我正在构建一个UI来显示更改。我将DB连接到AppSync实例,并尝试通过AppSync使用订阅,但他们似乎只观察到当前AppSync中的突变 如何直接订阅数据源更改?您是对的。目前,AppSync订阅仅由GraphQL突变触发。如果从AppSync以外的源对DynamoDB进行了更改,则不会触发订阅 如果要跟踪对DynamoDB表所做的所有更改,并使用AppSync发布这些更改,可以执行以下操作: 1) 设置DynamoDB流以捕获更改并将更改反馈

我有一个连接到step函数的DynamoDB,我正在构建一个UI来显示更改。我将DB连接到AppSync实例,并尝试通过AppSync使用订阅,但他们似乎只观察到当前AppSync中的突变


如何直接订阅数据源更改?

您是对的。目前,AppSync订阅仅由GraphQL突变触发。如果从AppSync以外的源对DynamoDB进行了更改,则不会触发订阅

如果要跟踪对DynamoDB表所做的所有更改,并使用AppSync发布这些更改,可以执行以下操作:

1) 设置DynamoDB流以捕获更改并将更改反馈给AWS Lambda

2) 使用本地(无数据源)解析程序设置AppSync变体。您可以使用它向订阅服务器发布消息,而无需写入数据源

3) 使DynamoDB Stream Lambda函数(步骤1中的设置)调用AWS AppSync函数(步骤2中的设置)


这将允许将对DynamoDB表所做的所有更改发布到AppSync订阅服务器,而不管更改来自何处。

如果需要Cognito登录,如何授权Lambda调用AppSync实例?取决于身份验证类型。对于API密钥,只需添加一个头。OIDC和Cognito用户池也是如此。如果您使用的是AWS_IAM,那么还有更多的工作要做,因为您必须使用AWS AppSync SDK对连接进行签名。@Adrian如果要连接到Cognito池,我应该添加什么标头?添加一个带有承载JWT的授权标头token@AdrianHall您不需要用户名和密码来生成此令牌吗?