【问题标题】:Lambda functions to query the GraphQL endpoint?用于查询 GraphQL 端点的 Lambda 函数?
【发布时间】:2019-10-11 11:53:21
【问题描述】:

如何使用 Lambda 函数在 Node.js 中查询 GraphQL 端点 (AppSync)?我应该使用哪个 GraphQL 客户端?

我见过AWS AppSync JavaScript SDK,它似乎是用于移动应用程序或反应/前端的。

PS:我不是在谈论 AWS Lambda 解析器。

【问题讨论】:

    标签: node.js amazon-web-services graphql aws-appsync


    【解决方案1】:

    我们使用一个简单的 https 包来查询 graphql。在这种情况下,您可能需要手动形成所有 graphql 查询。如果您想使用处理自动发现和查询对象,您可以使用 apollo-fetch 客户端。简单的 CURL 也可以。

    这里详细介绍了所有方法。

    https://blog.apollographql.com/4-simple-ways-to-call-a-graphql-api-a6807bcdb355

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      如果您使用 AWS_IAM 或 AMAZON_COGNITO_USER_POOLS 作为身份验证类型,我认为 AWS AppSync JavaScript SDK 是一个很大的帮助,您只需按照here 的说明设置您的代码:

      "use strict";
      /**
      * This shows how to use standard Apollo client on Node.js
      */
      
      global.WebSocket = require('ws');
      require('es6-promise').polyfill();
      require('isomorphic-fetch');
      
      // Require exports file with endpoint and auth info
      const aws_exports = require('./aws-exports').default;
      
      // Require AppSync module
      const AUTH_TYPE = require('aws-appsync/lib/link/auth-link').AUTH_TYPE;
      const AWSAppSyncClient = require('aws-appsync').default;
      
      ...
      

      此外,您必须提供凭据

      const AWS = require('aws-sdk');
      AWS.config.update({
          region: aws_exports.REGION,
          credentials: new AWS.Credentials({
              accessKeyId: aws_exports.AWS_ACCESS_KEY_ID,
              secretAccessKey: aws_exports.AWS_SECRET_ACCESS_KEY
          })
      });
      const credentials = AWS.config.credentials;
      

      或者只是检索 Lambda 会话凭据(不要忘记授予 Lambda 执行 GraphQL API 的权限)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-02
        • 2016-06-19
        • 2016-03-24
        • 1970-01-01
        • 2021-07-04
        • 2023-02-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多