我计划使用AWS Appsync在lambda函数中迁移graphQL端点,该函数由POST网关通过API网关触发.我正在研究AppSync主要是因为订阅,我无法使用Lambda函数创建.
我的身份验证机制基于Auth0,使用无密码,我的授权机制基于DynamoDB中几个表的数据,并且嵌入在graphQL解析器中,如Facebook和Apollo所推荐的那样.
更重要的是,它基于请求的每个部分,包括检查调用查询/变异的权限,之后,查询中包含的不同实体,因为正在触发相应的解析器.
据我所知,这远远不能在AWS AppSync中实现,因为它强制使用Cognito.也许某种自定义授权器,如API网关可以完成工作,但它仍然不确定,因为它需要在graphQL请求解析期间执行多次(请记住,除了初始操作检查之外,每个嵌套对象一个).
也许我可以使用通知和刷新查询来解决订阅问题,但我也要研究它.
还有其他人有这个问题吗?你打算怎么做,或者已经解决了?
任何帮助都感激不尽
卡洛斯
lambda amazon-web-services graphql graphql-subscriptions aws-appsync
所以我是这个领域的新手,问题是我正在尝试编译一个带有 graphql 文件的 Typescript 项目(带.graphql
扩展名)。它基于无服务器框架,所以为了编译它,我启动npm start
它cd src/app && tsc
在命令行中启动。
该.ts
文件.graphql
像这样引用文件:
import SchemaDefinition from './schemaDefinition.graphql';
错误是
data/schema/index.ts(2,30): 错误 TS2307: 找不到模块“./schemaDefinition.graphql”。
我认为这里的问题在于tsc
编译,因为它创建了输出目录 (../../built) 但它没有复制.graphql
文件。这是我的tsconfig.json
文件:
{
"compilerOptions": {
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"lib": ["dom", "es6"],
"module": "commonjs",
"allowJs": true,
"moduleResolution": "node",
"noImplicitAny": false,
"removeComments": true,
"preserveConstEnums": true,
"rootDir": "./",
"outDir": "../../built",
"sourceMap": true,
"pretty": true,
"typeRoots": [
"node_modules/@types"
],
"types": [
"@types/node",
"@types/graphql" …
Run Code Online (Sandbox Code Playgroud) 我需要基于四列创建对表的限制,其中两个是互斥的,我的意思是,如果一个是NULL而另一个不是.
理想的脚本是这样的:
ALTER TABLE ONLY t_users_prizes
ADD CONSTRAINT t_user_prize_test_circuit_key
UNIQUE (id_event||':'||id_circuit, id_prize, id_user);
Run Code Online (Sandbox Code Playgroud)
但Postgres不允许这种连接.
我该如何实施这个限制?
graphql ×2
aws-appsync ×1
indexing ×1
lambda ×1
node.js ×1
null ×1
postgresql ×1
sql ×1
tsc ×1
typescript ×1
unique-index ×1