【发布时间】:2021-09-13 09:50:46
【问题描述】:
我正在使用 AWS Web 控制台。我正在尝试创建 lambda 函数来运行我的 AppSync GraphQL API 变异查询。我在网上看到了很多答案,但他们都试图先在本地机器上创建 lambda,然后将其推送到 AWS 云。我无法遵循这种方法。我直接在 AWS Web 控制台上工作。
基本上,我在 appsync graphql API 后面有一个 dynamodb 数据库表。我想使用 lambda 函数更新 dynamoDB 中的条目。要更新此条目(在 DynamoDB 中),我需要在 appsync graphql API 上运行突变查询。我想使用 lambda 函数来实现这一点。我想从 lambda 调用(appsync 的)变异查询。
请参阅下面的 lambda 的 node.js 代码:
const appsync = require('aws-appsync');
const gql = require('graphql-tag');
require('cross-fetch/polyfill');
const graphqlClient = new appsync.AWSAppSyncClient({
url: 'APPSYNC_ENDPOINT_URL',
region: process.env.AWS_REGION,
auth: {
type: 'AWS_IAM',
credentials: {
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
sessionToken: process.env.AWS_SESSION_TOKEN
}
},
disableOffline: true
});
const mutation = gql`mutation Test($value: String!) {
test(value: $value)
}`;
await graphqlClient.mutate({
mutation,
variables: {
value: 'test'
}
});
我收到错误:
"errorMessage": "Cannot find module 'aws-appsync'"
lambda 函数正在尝试使用aws-appsync,但找不到它。如何在 AWS lambda Web 控制台上“安装”这个包? 我没有使用本地开发机器。我正在 Web 控制台上直接编写 lambda 函数。
如何仅使用 Web 控制台在 lambda 中启用 aws-appsync 包?
【问题讨论】:
标签: amazon-web-services aws-lambda graphql