【发布时间】:2021-01-25 06:39:25
【问题描述】:
我是 AWS 的新手,需要建议。我有AppSync 中描述的GraphQL 架构。方案很简单,它只有一个Query,称为getEmployees。作为此查询的解析器,我在 Python 中使用 AWS Lambda 函数。这个 AWS Lambda 函数可以正常工作。日志中没有错误。当我提出请求时,我总是得到空的空值。可能是什么问题呢?我错过了什么?
AppSync 中的 GraphQL 架构:
type Employees {
employeeId: String!
employeeFirstName: String
employeeLastName: String
}
type EmployeesPayload {
pagingState: String
employees: [Employees]
}
type Query {
getEmployees(organizationId: String!, fetchSize: Int!, pagingState: String): EmployeesPayload
}
schema {
query: Query
}
Python 中的 AWS Lambda 函数:
def lambda_handler(event, context):
organization_id = event['arguments']['organizationId']
fetch_size = event['arguments']['fetchSize']
paging_state = event['arguments']['pagingState']
# Business logic
response = json.dumps(
{
"pagingState": "c76f05f9-337d-44dc-b131-c1dfee3ceefb",
"employees": [
{
"employeeId": "bd811630-0d42-49cd-8d63-7679d9eb96bb",
"employeeFirstName": "James",
"employeeLastName": "Bond"
}
]
},
indent=4,
sort_keys=True,
ensure_ascii=False,
default=utils.json_serializer
)
return response
我做了这样的查询:
query MyQuery {
getEmployees(organizationId: "5d354323-8b47-447e-8bc7-67dae57248b0", fetchSize: 5, pagingState: null) {
pagingState
employees {
employeeId
employeeFirstName
employeeLastName
}
}
}
回应:
{
"data": {
"getEmployees": {
"pagingState": null,
"employees": null
}
}
}
P.S.在 AppSync 设置中,我禁用了请求和响应映射模板。
【问题讨论】:
标签: python amazon-web-services aws-lambda graphql aws-appsync