graphql - 使用 API 密钥在 AWS AppSync 中测试解析程序?
问题描述
目前,AWS AppSync 提供了一个选项来添加测试上下文来测试您的解析器,以确保一切正确。但是,因为我使用 API Key 进行身份验证,所以我不确定在请求映射模板中设置它以便测试上下文可以运行并且我可以测试我的 API 的有效性(特别是因为这是唯一的在测试上下文中没有身份部分的身份验证)?任何人都可以帮忙吗?
解决方案
您是正确的,即使您从客户端调用 API,API 密钥授权模式也不会填充身份。
但是,您仍然可以在测试上下文中添加身份对象。为此,您需要:
- 获取您将在未来使用的授权模式(IAM、Cognito、OIDC)。
- 在 ctx.identity 中找到授权模式提供的字段。你可以在这里找到:解析器上下文参考
将这些字段添加到您的测试上下文中。例如,IAM 测试上下文可能如下所示:
{ "identity": { "accountId": "my aws account", "cognitoIdentityPoolId": "string", "cognitoIdentityId": "string", "sourceIp": ["string"], "username": "string", "userArn": "string" }, "arguments": {}, "source": { "lambda": "Hello, world!", "testCtx": "Hello, world!" }, "结果": "你好,世界!" }
请求映射模板可能如下所示:
{
"account: "$ctx.identity.accountId"
}
当您的测试上下文运行时,评估的请求映射模板将如下所示:
{
"account: "my aws account"
}
注意:您可能还只想将您的 API 切换到您计划使用的授权模式,然后以登录用户的身份尝试查询。
推荐阅读
- git - 我需要在 git status 中取消看到字符
- c# - 对 Inspector 分配变量的未分配引用
- ios - 如果在 UITableViewCell 中隐藏,如何将 UIView 的大小缩小为零?
- masstransit - 使用快递重试消息
- javascript - 如何在不手动输入数据映射框的情况下从 JSON 文件中检索数据
- django - 我如何在管理员之外复制 admin.TabularInline(在用户端?)
- python - 是否有在机器人关闭之前运行的功能
- javascript - 如何在反应中使用搜索?
- javascript - 如何以 ajax 加载形式检测事件检查的无线电输入
- python - 屏蔽图像时如何避免伪影?