代码之家  ›  专栏  ›  技术社区  ›  C. Lewis

aws appsync中的测试解析器w/api key?

  •  0
  • C. Lewis  · 技术社区  · 7 年前

    目前,aws appsync提供了一个选项,可以添加测试上下文来测试解析器,以确保一切正常。但是,因为我正在使用API密钥进行身份验证,所以我不确定如何在请求映射模板中设置这个条件,以便测试上下文可以运行,并且我可以测试API的有效性(特别是因为这是唯一的Autho,在测试上下文中没有标识段)。有人能帮忙吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Michael Willingham    7 年前

    事实上,api密钥授权模式并不填充标识,即使是从客户机调用api也是正确的。

    但是,您仍然可以在测试上下文中添加标识对象。为此,您需要:

    1. 获取将来要使用的授权模式(iam、cognoto、oidc)。
    2. 查找授权模式在ctx.identity中提供的字段。你可以在这里找到: Resolver Context Reference
    3. 将这些字段添加到测试上下文中。例如,IAM测试上下文可能如下所示:

      { “身份”:{ “accountid”:“我的aws帐户”, “cognitoidentitypoolid”:“字符串”, “cognitoidentityid”:“字符串”, “sourceip”:[“string”], “username”:“字符串”, “userarn”:“字符串” } “参数”:{}, “源”:{ “lambda”:“你好,世界!”, “testctx”:“你好,世界!” } “result”:“你好,世界!” }

    请求映射模板可能如下所示:

    {
        "account: "$ctx.identity.accountId"
    }
    

    在运行测试上下文时,计算的请求映射模板将如下所示:

    {
        "account: "my aws account"
    }
    

    注意:您可能只想将api切换到计划使用的授权模式,然后以登录用户身份尝试查询。

    推荐文章