我已经部署了一个带有appsync的graphQL服务器。问题是,我们的客户更喜欢标准REST。我正在寻找用REST包装graphQL查询的最简单方法。
我正在考虑使用Amazon网关来创建REST端点,并将lambda集成到api网关后面。这样,我就可以让lambda函数发送一个固定的graphQL查询/突变,并修改响应。
但是,从下面的图片中可以看到,我在Amazon网关中找到了AWS服务集成选项。我想知道是否可以直接将appsync集成到api网关,而无需使用lambda。我从aws文档中搜索了它,但是找不到任何相关的信息。
Amazon网关设置捕获:

发布于 2020-03-31 02:27:32
我了解了如何将appsync集成到API网关。您可以通过将AWS服务集成设置为AppSync数据平面来完成它。
在“方法设置”页面中:
https://YOUR_AWS_Subdomain.appsync-api.your-region.amazonaws.com/graphql)
G 214
对我来说效果很好。
发布于 2020-07-27 08:52:57
如果有人使用OpenAPI规范来定义APIGW,请使用以下方法:
/graphql:
post:
x-amazon-apigateway-integration:
type: "AWS"
httpMethod: "POST"
uri: arn:aws:apigateway:<APIGW_REGION>:<APPSYNC_URL_ID>.appsync-api:path/graphql
credentials: <INVOCATION_ROLE_ARN>https://docs.aws.amazon.com/general/latest/gr/appsync.html#appsync_region_data_plane https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#type
发布于 2021-08-02 21:46:59
添加到@BSD的解决方案:
- should grant Trust relationship to ApiGateway { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }- should have policy to allow to access AppSync endpoint { "Version": "2012-10-17", "Statement": [ { "Action": [ "appsync:GraphQL" ], "Resource": [ "arn:aws:appsync:us-east-1:{AWS-Account-Number}:apis/{AppSync-API-ID}/\*" ], "Effect": "Allow" } ] }query MyQuery {
foo(request: {bar: "abc123", baz: "xyz"}) {
a
b
c
}
}此查询转化为以下JSON:
{
"query": "query MyQuery {foo(request: {bar: \"abc123\", baz: \"xyz\"}) {a b c} }"
}https://stackoverflow.com/questions/60827105
复制相似问题