标签: aws-appsync

用于在 AppSync 中查询一对多关系的“类型不匹配错误,预期类型列表”

架构:

type User {
    id: ID!
    createdCurricula: [Curriculum]
}

type Curriculum {
    id: ID!
    title: String!
    creator: User!
}
Run Code Online (Sandbox Code Playgroud)

查询给定用户的所有课程的解析器:

    {
    "version" : "2017-02-28",
    "operation" : "Query",
    "query" : {
        ## Provide a query expression. **
        "expression": "userId = :userId",
        "expressionValues" : {
            ":userId" : {
                "S" : "${context.source.id}"
            }
        }
    },
    "index": "userIdIndex",
    "limit": #if(${context.arguments.limit}) ${context.arguments.limit} #else 20 #end,
    "nextToken": #if(${context.arguments.nextToken}) "${context.arguments.nextToken}" #else null #end
    }
Run Code Online (Sandbox Code Playgroud)

响应图:

{
"items": $util.toJson($context.result.items),
"nextToken": #if(${context.result.nextToken}) "${context.result.nextToken}" #else null #end
}
Run Code Online (Sandbox Code Playgroud)

查询:

query …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-dynamodb aws-appsync

10
推荐指数
1
解决办法
6136
查看次数

如何从 python 向 AppSync 发送 GraphQL 查询?

我们如何使用 boto 通过 AWS AppSync 发布 GraphQL 请求?

最终,我试图模仿一个移动应用程序访问我们在 AWS 上的无堆栈/云形成堆栈,但使用 python。不是 javascript 或放大。

主要痛点是身份验证;我已经尝试了十几种不同的方法。这是当前的一个,它生成一个带有“UnauthorizedException”和“Permission denied”的“401”响应,考虑到我收到的一些其他消息,这实际上非常好。我现在使用 'aws_requests_auth' 库来完成签名部分。我假设它使用/.aws/credentials我本地环境中存储的来验证我的身份,还是这样?

我对认知身份和池将在何处以及如何进入其中感到有些困惑。例如:说我想模仿注册顺序?

无论如何,代码看起来很简单;我只是不理解身份验证。

from aws_requests_auth.boto_utils import BotoAWSRequestsAuth

APPSYNC_API_KEY = 'inAppsyncSettings'
APPSYNC_API_ENDPOINT_URL = 'https://aaaaaaaaaaaavzbke.appsync-api.ap-southeast-2.amazonaws.com/graphql'

headers = {
    'Content-Type': "application/graphql",
    'x-api-key': APPSYNC_API_KEY,
    'cache-control': "no-cache",
}
query = """{
    GetUserSettingsByEmail(email: "john@washere"){
      items {name, identity_id, invite_code}
    }
}"""


def test_stuff():
    # Use the library to generate auth headers.
    auth = BotoAWSRequestsAuth(
        aws_host='aaaaaaaaaaaavzbke.appsync-api.ap-southeast-2.amazonaws.com',
        aws_region='ap-southeast-2',
        aws_service='appsync')

    # Create an http graphql request.
    response = requests.post(
        APPSYNC_API_ENDPOINT_URL, 
        json={'query': …
Run Code Online (Sandbox Code Playgroud)

python-3.x boto3 aws-appsync

10
推荐指数
3
解决办法
4775
查看次数

如何使用GraphQL将图像上传到AWS S3?

我正在上传一个base64字符串,但GraphQL被挂起了.如果我将字符串切片少于50,000个字符就可以了.在50,000个字符之后,graphQL永远不会使其成为解析函数,但不会产生错误.在较小的字符串上,它工作得很好.

const file = e.target.files[0];
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onloadend = () => {
  const imageArray = reader.result;
  this.context.fetch('/graphql', {
    body: JSON.stringify({
      query: `mutation s3Upload($img: String!) {
        s3Upload(file: $img) {
          logo,
        }
      }`,
      variables: {
        img: imageArray,
      },
    }),
  }).then(response => response.json())
  .then(({ data }) => {
    console.log(data);
  });
}

const s3Upload = {
    type: S3Type,
    args: {
      file: { type: new NonNull(StringType) },
    },
    resolve: (root, args, { user }) => upload(root, args, user),
};

const S3Type …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-s3 reactjs graphql aws-appsync

9
推荐指数
1
解决办法
3332
查看次数

是否可以使用AWS AppSync构建离线优先的移动应用程序?

我想将AWS AppSync用于移动开发(Android/iOS),但我不确定其离线功能.

根据文档,数据将在脱机时访问,并在客户端再次联机时自动同步.但在使用AppSync创建和修改脱机数据之前,我无法找到有关应用客户端是否需要首先连接到AWS的任何信息.

我不熟悉AppSync的底层技术(例如GraphQL),我无法访问公共预览版本来自行测试.

我希望隐私敏感用户能够在不连接到AWS的情况下使用应用程序,同时仍然可以将AppSync用作脱机数据库.只有当用户以后决定在设备上使用备份/同步数据时,他或她才可以选择加入AWS.

AWS AppSync是否可以使用此用例?

不使用任何其他本地存储(如SharedPreferences,SQLite,Realm等)

android amazon-web-services ios amazon-dynamodb aws-appsync

9
推荐指数
1
解决办法
2428
查看次数

公共查询和突变(无身份验证)

文档我们可以通过3种方式授权应用程序与API进行交互,但看起来并不存在拥有公共端点的方法.

例如,如果我希望任何人查询待办事项列表,但只有经过身份验证的用户可以向该列表添加待办事项,我该如何实现?

或者,如果我想允许任何人进行模式内省,但是将所有其他查询限制为经过身份验证的用户,是否可能?

我正在使用cognito进行身份验证.我注意到有一个AppId client regex字段说(Optional) Type a regular expression to allow or block requests to this API.但不幸的是我找不到任何例子.也许这就是我要找的东西?

谢谢

朱利安

amazon-web-services aws-appsync

9
推荐指数
1
解决办法
753
查看次数

React-Apollo Mutation返回空响应

我正在使用AWS Appsync,我希望从成功执行的变异中获得响应.当我在Appsync Graphql控制台中尝试我的设置时,我得到一个填充的"data": { "mutateMeeting" }响应:Appsync突变

当我在我的反应应用程序中尝试相同时,我可以在dynamodb数据库中看到突变发生,但react-apollo不会返回突变响应.正如您在apollo开发工具中看到的那样,"data": { "mutateMeeting" }null:在此输入图像描述

我错过了什么?

相应的graphql架构读取:

input MeetingInput {
  id: String,
  start: String!,
  end: String!,
  agreements: [AgreementInput]!
}

type Meeting {
  id: String!
  start: String!
  end: String!
  agreements: [Agreement]
}

type Mutation { 
  mutateMeeting (
    companyId: String!,
    meeting: MeetingInput!
  ): Meeting!
}
Run Code Online (Sandbox Code Playgroud)

graphql标签突变写着:

import gql from 'graphql-tag'

export default gql`
  mutation mutateMeeting($companyId: String!, $meeting: MeetingInput!) {
    mutateMeeting(companyId: $companyId, meeting: $meeting) {
      id, …
Run Code Online (Sandbox Code Playgroud)

apollo reactjs graphql react-apollo aws-appsync

9
推荐指数
1
解决办法
1900
查看次数

AWS amplify graphql appsync - 不返回已删除的项目?

我将 AWS amplify 与 graphql 和 appsync 结合使用。当我执行标准列表查询时,appsync 在它返回的项目列表中包含已删除的项目。

我该怎么做才能让它只返回未删除的项目?

我尝试了这个查询,但它抛出一个错误:

query MyQuery($filter: ModelFrameFilterInput = {_deleted: {ne: true}}) {
  listFrames(filter: $filter) {
    items {
      _deleted
      name
      id
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

 "message": "Validation error of type BadValueForDefaultArg: Bad default value ObjectValue{objectFields=[ObjectField{name='_deleted', value=ObjectValue{objectFields=[ObjectField{name='ne', value=BooleanValue{value=true}}]}}]} for type ModelFrameFilterInput"
Run Code Online (Sandbox Code Playgroud)

amazon-web-services graphql aws-appsync aws-amplify

9
推荐指数
1
解决办法
2423
查看次数

Aws AppSync 令牌到期日期

我正在使用 AWS Amplify 数据存储。此服务内部使用的应用程序同步令牌。目前,应用程序同步令牌已过期,因此我从Appsync / Settings / API 密钥更改了过期日期。但这允许编辑下一年的最长过期日期。

他们有什么理由将令牌有效期设置为永久或超过 1 年吗?因为我的客户不希望一年后我们需要再次更改到期日期。

datastore amazon-web-services aws-appsync aws-amplify

9
推荐指数
1
解决办法
3224
查看次数

用于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 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
查看次数