【发布时间】:2019-10-14 09:28:48
【问题描述】:
我一直在使用 AWS Amplify。作为 AWS 的新手,我非常喜欢 Amplify 如何为我在 AWS 上预置必要的资源和 IAM 角色。我的问题是关于使用 Lambda 和 GraphQL。按照文档,我能够创建一个自定义 GraphQL 查询,该查询调用一个 Lambda 函数并返回一个 GraphQL 响应。但是,我在文档中找不到有关如何在此 Lambda 函数中与 其他 AWS 资源进行交互的任何地方。例如,我希望与 DynamoDB 甚至 RDS 服务进行交互。文档提到能够从其他资源(例如 MySQL 数据库)中提取数据,所以我认为这是可能的。
当我尝试与 DynamoDB 交互(例如)时,我收到了“拒绝访问”错误,我假设这是因为 Lambda 函数没有必要的策略/权限来执行此操作。我的一个想法是手动登录到 IAM 控制台并自己附加这些策略,但鉴于 Amplify 会为您生成所有这些并基本上管理您的“云基础设施/状态”,我不确定这是否是正确的方法.我确实注意到了 Amplify 在您为 GraphQL 添加 Lambda 资源时生成的 Cloud Formation 模板,所以我的下一个猜测是在那里添加 DynamoDB 策略,然后运行 amplify push 以让 Amplify 生成和管理策略我。如果这是正确的做法,我想我将不得不学习如何编写 Cloud Formation 模板。最后,我想知道我的大脑是否妨碍了我,我是否能够通过 Lambda 中的 AWS JavaScript SDK 传递 Cognito 身份信息,然后事情就会“正常工作”——但我并不完全确定。如果我没有使用正确的术语,我提前道歉 - 正如我所说,我对 AWS 比较陌生。非常感谢任何帮助或指导。
【问题讨论】:
标签: amazon-web-services aws-lambda aws-sdk aws-amplify