我有使用amplify建立后端的React Web应用程序。该后端包括一个带有dynamodb表作为数据源的graphql api(由我的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
但是,问题是,我还需要api键才能执行突变(我的graphql api具有“ api键”作为主要id方法)。
本教程使用了process.env.API_KEY。但是,他们没有解释此变量的来源,因为在我看来,它的值是不确定的。
您知道如何使lambda可以使用api密钥吗?
P.S .:由于我有多个后端环境,因此不能选择硬编码。
答案 0 :(得分:0)
环境变量称为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
此外,Amplify CLI还会在Lambda函数索引文件的顶部生成带有有用的环境变量的注释。
我使用Amplify CLI 4.36.0版对此进行了测试。