Jav*_*dez 5 amazon-web-services aws-lambda graphql aws-amplify
我有一个 React Web 应用程序,它使用 aws amplify 来构建其后端。该后端由一个 graphql api 和一个 dynamodb 表作为数据源(由我的 graphql 模式中声明的模型创建)和一个 lambda 函数组成,该函数从第 3 方 api 获取信息并将结果保存到 dynamodb 表中以使其可用于该应用程序。
按照本教程操作:
https://docs.amplify.aws/cli/function#graphql-from-lambda
我创建了运行“amplify add function”命令的 lambda 函数。当我被问及 lambda 是否应该有权访问其他放大资源时,我回答“是”,并且我为 lambda 提供了对我的 graphql api 的写入和更新访问权限,以便我可以从 lambda 执行突变。
当我完成创建过程时,amplify 通知我 lambda 中有两个可用的新环境变量:
API_<MY_APP>_GRAPHQLAPIENDPOINTOUTPUT
API_<MY_APP>_GRAPHQLAPIIDOUTPUT
Run Code Online (Sandbox Code Playgroud)
然而问题是,我还需要 api 密钥才能执行突变(我的 graphql api 将“api 密钥”作为主要 id 方法)。
本教程使用 process.env.API_KEY。然而他们没有解释这个变量来自哪里,因为在我的例子中它的值是未定义的。
您知道如何使 api 密钥可供我的 lambda 使用吗?
PS:硬编码不是一个选择,因为我有几个后端环境。
环境变量称为API_<APP_NAME>_GRAPHQLAPIKEYOUTPUT. 仅当您为 GraphQL API 启用 API KEY 身份验证时,它才会出现。
以下是当您为 Lambda 函数添加访问 GraphQL API 的访问权限时打印到控制台的示例:
You can access the following resource attributes as environment variables from your Lambda function
API_AMPLIFYTEST_GRAPHQLAPIENDPOINTOUTPUT
API_AMPLIFYTEST_GRAPHQLAPIIDOUTPUT
API_AMPLIFYTEST_GRAPHQLAPIKEYOUTPUT
Run Code Online (Sandbox Code Playgroud)
此外,Amplify CLI 会在 Lambda 函数索引文件顶部生成一条注释,其中包含有用的环境变量列表。
我使用 Amplify CLI 版本 4.36.0 对此进行了测试。
| 归档时间: |
|
| 查看次数: |
2166 次 |
| 最近记录: |