【发布时间】:2019-06-04 11:26:33
【问题描述】:
目前,AWS AppSync 提供了一个选项来添加测试上下文来测试您的解析器,以确保一切正确。但是,因为我使用 API Key 进行身份验证,所以我不确定在请求映射模板中设置它以便测试上下文可以运行并且我可以测试我的 API 的有效性(特别是因为这是唯一的在测试上下文中没有身份部分的身份验证)?有人可以帮忙吗?
【问题讨论】:
标签: graphql aws-appsync vtl
目前,AWS AppSync 提供了一个选项来添加测试上下文来测试您的解析器,以确保一切正确。但是,因为我使用 API Key 进行身份验证,所以我不确定在请求映射模板中设置它以便测试上下文可以运行并且我可以测试我的 API 的有效性(特别是因为这是唯一的在测试上下文中没有身份部分的身份验证)?有人可以帮忙吗?
【问题讨论】:
标签: graphql aws-appsync vtl
您是正确的,即使您从客户端调用 API,API 密钥授权模式也不会填充身份。
但是,您仍然可以在测试上下文中添加身份对象。为此,您需要:
将这些字段添加到您的测试上下文中。例如,IAM 测试上下文可能如下所示:
{ “身份”: { "accountId": "我的 aws 帐户", "cognitoIdentityPoolId": "字符串", "cognitoIdentityId": "字符串", “sourceIp”:[“字符串”], “用户名”:“字符串”, “userArn”:“字符串” }, “参数”:{}, “资源”: { "lambda": "你好,世界!", “testCtx”:“你好,世界!” }, “结果”:“你好,世界!” }
请求映射模板可能如下所示:
{
"account: "$ctx.identity.accountId"
}
当您的测试上下文运行时,评估的请求映射模板将如下所示:
{
"account: "my aws account"
}
注意:您可能还只想将 API 切换到您计划使用的授权模式,然后以登录用户身份尝试查询。
【讨论】: