标签: aws-appsync

用于GraphQL的AWS Amplify和Apollo Client之间的区别?

我同意Apollo Client很难设置,因为它有很多样板(尽管在阅读文档之后变得很简单)和诸如AWS Amplify,URQL,Apollo Boost和Micro GraphQL React之类的东西使得在客户端上使用GraphQL变得容易.

我目前正在使用AWS AppSync并希望在AWS Amplify和Apollo Client之间做出选择,而我正考虑进入所有AWS.

那么AWS Amplify和Apollo Client有什么区别?

reactjs graphql apollo-client aws-appsync aws-amplify

8
推荐指数
1
解决办法
1972
查看次数

AWS GraphQL:变量'input'强制为NonNull类型'Input!'强制Null值.

我正在使用ReactJS并aws-amplify执行graphql操作.

码:

import {
   API,
   graphqlOperation
} from 'aws-amplify';

import { UpdateInput } from './mutations.js';

// Call mutation
const input = { /* some values */ };
API.graphql(graphqlOperation(UpdateInput, input)).then(...);
Run Code Online (Sandbox Code Playgroud)

GraphQL变异定义:

export const UpdateInput = `mutation UpdateInput($input: Input!) {
   updateInput(input: $input) {
      id, 
      name
   }   
}`
Run Code Online (Sandbox Code Playgroud)

GraphQL架构:

input Input {
   id: ID!
   name: String
}

type Mutation {
   updateInput(input: Input!): String
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到一个错误:

[Log]变量'input'强制NonNull类型'Input!'的Null值

使用AWS控制台我的突变工作并且input是NonNull(使用调试器)

是什么导致错误?

reactjs graphql aws-appsync aws-amplify

8
推荐指数
1
解决办法
3612
查看次数

使用AWS AppSync vs Firestore进行可扩展聊天应用程序的优缺点是什么?

我打算开发一个可扩展的聊天应用程序作为项目的一部分,该项目是移动应用程序,希望扩展到Web。我来考虑以下选项

目前,我在移动应用程序中将Firebase用于其他用途(身份验证等)。

我的发现:

  • Firebase文档非常友好,并且可以用更少的时间轻松上手。

  • 根据我的计算,使用Firestore似乎比AppSync便宜(AppSync + DynamoDB的成本与Firestore的成本)

  • 根据docs,Firestore中存在某些限制。

  • AppSync使用GraphQL,因此可以更精细地访问数据。

我搜索了AppSync和Cloud Firestore之间的比较,但没有发现任何很好的深入比较。

使用AWS AppSync vs Firestore进行可扩展聊天应用程序的优缺点是什么?

scalability chat google-cloud-firestore aws-appsync

8
推荐指数
0
解决办法
1320
查看次数

可以在没有dynamoDB的情况下使用AWS App-Sync

我对亚马逊的app-sync的离线和同步功能感兴趣,但我想知道它是否可以在没有dynamoDB作为后端的情况下使用.用VTL编写的适用于dynamoDB的graphQL解析器看起来很糟糕.看起来使用mongo后端会好得多.那可能吗?

mongodb amazon-dynamodb graphql aws-appsync

7
推荐指数
1
解决办法
1458
查看次数

AWS Cognito/Amplify - 将新用户注册自动添加到用户组

我正在使用AWS Amplify库为AppSync项目注册并执行Auth.这使用Cognito.但是,当新用户通过Amplify/Cognito注册时,新用户不会分配到cognito池中的任何特定组.我使用Amplify高阶组件进行登录/注册.

import { withAuthenticator } from 'aws-amplify-react';
Run Code Online (Sandbox Code Playgroud)

我将一个组件包裹起来

class Authenticator extends React.Component {
   //... basically empty component, only exists so I can wrap it w/ the HOC
}
export default withAuthenticator(Authenticator)
Run Code Online (Sandbox Code Playgroud)

Amplify在index.js中设置

import config from './aws-exports';
import Amplify from 'aws-amplify';
Amplify.configure(config);
Run Code Online (Sandbox Code Playgroud)

aws-exports.js由AWS Mobile Hub CLI自动生成.好像...

const awsmobile = {
    'aws_app_analytics': 'enable',
    'aws_cognito_identity_pool_id': 'us-west-2:XXX',
    'aws_cognito_region': 'us-west-2',
    'aws_content_delivery': 'enable',
    'aws_content_delivery_bucket': 'flashcards-hosting-mobilehub-XXX',
    'aws_content_delivery_bucket_region': 'us-west-2',
    'aws_content_delivery_cloudfront': 'enable',
    'aws_content_delivery_cloudfront_domain': 'XXX.cloudfront.net',
    'aws_mandatory_sign_in': 'enable',
    'aws_mobile_analytics_app_id': 'XXX',
    'aws_mobile_analytics_app_region': 'us-east-1',
    'aws_project_id': 'XXX',
    'aws_project_name': 'flash-cards',
    'aws_project_region': 'us-west-2',
    'aws_resource_name_prefix': 'flashcards-mobilehub-XXX', …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-mobilehub aws-cognito aws-appsync aws-amplify

7
推荐指数
3
解决办法
3726
查看次数

如何开发和测试AWS AppSync

我们认为这AppSync将是我们React Native应用程序开发的绝佳工具。但是,问题在于开发中的可伸缩性。整日浏览Google,找到一种AppSync离线进行开发的方法,以便任何人都可以自由创建API并将其合并,我意识到没有这样的解决方案。

那么大型团队如何使用来开发本机应用程序AppSync?您是否AppSync为拥有的每个开发人员创建应用程序,以便每个人都可以自由更改自己的API,然后将其合并到生产AppSync应用程序中?

我真的希望有一种本地开发API并使用git合并它们并将代码直接上传到的方法AppSync。据我所知这是不可能的,但是如果您知道某种方法或其他方法,请告诉我。

amazon-web-services aws-appsync

7
推荐指数
1
解决办法
2365
查看次数

解析器中的AppSync GraphQL变异服务器逻辑

我在寻找如何正确地将服务器端验证添加到我的AppSync GraphQL突变方面遇到问题.

本质上,我使用AWS仪表板来定义我的AppSync架构,因此为我创建了DynamoDB表,以及为数据设置的一些基本解析器.

不,我需要实现以下目标:

  1. 我有一个拥有inventory和的球员gold
  2. 玩家称为purchaseItem变异item_id
  3. 一旦调用此突变,我需要在解析器中执行一些检查,即检查是否item_id存在关联DynamoDB的int'Items'表,检查玩家是否有足够的黄金,再次在关联DynamoDB的'Players'表中,如果是,写入PlayersDynamoDB表通过将项目添加到他们的库存和新的减去黄金金额.

我认为实现这一目标的最有效方法是降低成本和延迟,是为AppSync使用"Apache Velocity"模板语言?

很高兴看到这个示例显示如何查询/写入DynamoDB,处理错误并正确解决突变.

vtl amazon-web-services amazon-dynamodb apache-velocity aws-appsync

7
推荐指数
1
解决办法
448
查看次数

如何将已签名的 HTTP 请求从 AWS Lambda 发送到 AppSync GraphQL?

我不确定如何将签名的 http 请求发送到 AppSync GraphQL 端点。AWS 中没有用于执行此操作的库。

  • aws-amplify 不起作用,因为仅适用于浏览器,而不适用于 Lambda 函数。
  • aws-sdk AppSync 仅供管理员使用,它没有调用用户端 api 的方法

是否可以从 AWS Lambda 发出 IAM 签名的 HTTP 请求?(以某种简单的方式)

javascript amazon-web-services aws-lambda graphql aws-appsync

7
推荐指数
1
解决办法
2359
查看次数

为什么在使用 iam 进行身份验证时无法读取关系数据,但在通过 Cognito 用户池进行身份验证时可以读取

我的项目使用 cognito 用户池作为默认身份验证方法,并且还将 iam 用于我的自定义 graphql lambda 解析器。

我一直在使用 AppSync 控制台对我的查询/突变运行测试。

我在这个 schema.graphql 文件中实现了 User 和 Group 类型之间的多对多关系。


type User
  @model
  @auth(
    rules: [
      { allow: owner, ownerField: "id", operations: [create, update, delete] }
      { allow: private, provider: iam, operations: [read, update, delete] }
      { allow: private, provider: userPools, operations: [read] }
    ]
  ) {
  id: ID!
  displayName: String!
  groups: [GroupMemberLink] @connection(keyName: "byMember", fields: ["id"])
}

type Group
  @model
  @auth(
    rules: [
      { allow: owner, ownerField: "members", operations: [create, update, …
Run Code Online (Sandbox Code Playgroud)

aws-appsync aws-amplify

7
推荐指数
1
解决办法
1494
查看次数

AWS AppSync 解析器 Lambda 函数与 Velocity 模板语言 (VTL)

我一直在研究 AWS AppSync 以创建一个使用 DynamoDB 作为数据存储的托管 GraphQL API。我知道 AppSync 可以使用 Apache Velocity 模板语言作为解析器从 dynamoDB 获取数据。但是,这意味着我必须在编程堆栈中引入一种额外的语言,因此我更愿意在 Javascript/Node.js 中编写解析器

使用 lambda 函数从 DynamoDB 获取数据有什么缺点吗?解析器使用 VTL 而不是 lambda 的原因是什么?

amazon-web-services aws-lambda graphql aws-appsync

7
推荐指数
1
解决办法
2019
查看次数